Inwiefern bist Du mit den Begriffen der Spieleprogrammierung vertraut? Weißt Du, was eine Engine ist? Es ist (eigentlich) nicht empfehlenswert, diese selbst zu schreiben, weil man dann quasi nur den Motor eines Spieles programmiert hat, aber nicht das Spiel selbst, was das eigentliche Ziel sein soll.
http://scientificninja.com/advice/write-games-not-engines
Ja, Du kannst "DirectX direkt ansprechen". DirectX besteht ja aus mehreren Komponenten und für die grafische Ausgabe benötigst Du nur Direct3D (es gibt noch DirectDraw für 2D, was aber sehr veraltet ist und seit DirectX 7 nicht mehr weiterentwickelt wird.)
Um mit Direct3D anzufangen, kannst Du dir dies mal anschauen: http://www.directxtutorial.com/tutorial9/b-direct3dbasics/dx9B.aspx
Solltest Du dich für DirectX entscheiden, wirst Du jedoch nicht plattformunabhängig programmieren können. Deine Spiele werden also nur unter Windows laufen.
Ein 3D-fähiges Rollenspiel wird für den Anfang auch ziemlicher Overkill sein, weshalb Du dich auf kleinere Dinge konzentrieren solltest. Du kannst natürlich auch gleich in die 3D-Welt gehen, dann wäre ein einfaches Spielprinzip aber sicher von Vorteil, denn bei einem Rollenspiel gibt es so einige Elemente.
Das von E122 empfohlene Buch von David Scherfgen dürfte für dich interessant sein, solltest Du Direct3D (bzw. DirectX) nutzen wollen. In dem Buch wird vorrangig die TriBase-Engine benutzt, so dass Du nicht auf DirectX alleine angewiesen bist.
Update
Ja, solltest Du wirklich noch (fast) keine Erfahrung haben, was Objektorientierung angeht, dann wäre das Buch 'C++ für Spieleprogrammierer' von Heiko Kalista wirklich sehr empfehlenswert. Dort wird, wie gesagt, am Ende mittels der SDL programmiert. Du kannst das ganze aber auch mittels der SFML machen, was meiner Meinung nach viel flexibler ist, weil SFML in C++ geschrieben ist, SDL hingegen in C.
Solltest Du in Zukunft auch weitere Fragen haben, kannst Du dich ebenso gerne an mich wenden (Xfire, ICQ, MSN…)