in der reihenfolge:
C/C++ grundlagen
Windows API
2D-Windows Game
evt. 3D-OpenGL
COM
2D-DirectX
3D-DirectX
Grundlagen ist klar, die braucht man einfach.. WindowsAPI gehöhrt eigendlich auch noch zu den grundlagen...
für winapi siehe
http://www.germandevnet.de unter tutorials
Dann fängste mal an einfache 2D spiele mit windows zu realisieren...beispiele und tutorials gibts auf
http://www.gamedev.net
wenn du 2d spiele in windows ordendlich machen kannst, kannst du eventuell 3D graphik in OpenGL einlegen,,, das OpenGL api ist relativ einfach...aber beachte bitte das 3d graphik sehr stark in die mathematik geht.. (Maxtrix-rechnungen und ähnliches)
Tja, bevor du mit DirectX anfängst, gibts noch eine kleinigekeit die du unbedingt kernen musst, die du als grundlage für DirectX braucht... Die rede ist von COM .. denn DirectX wird komplett über COM gesteuert..
Hierzu guckste dich am besten durch die DirectX dokumentation und die DirectX tutorials von GameDev.net dann lernste das eigendlich von alleine... du braucht nur wissen wie man die interfaces anwendet, vor allem die funktionalität von IUnknowen sollte dir bekannt sein, weil du release und queryInterface brachen wirst.
Wenn du COM soweit verstanden hast, dann kannst du anfangen mit 2D graphiken mit DirectDraw, DirectInput, DirectSound und so weiter...
und wenn du DDraw soweit beherscht, kannst du es mal mit IDirect3D versuchen ...Aber bis es so weit ist, wird einige zeit vergehen...
Wovon ich dir hier auf jedenfall abraten will, ist MFC... du kannst MFC zwar natürlich bei einfachen sachen benutzen und es schadet auch nicht wenn dus kannst, vor allem wenn du fremden source lesen und ändern musst, aber wenn du komplexere spiele machen willst, und vieleicht dann sogar DirectX benutzen, so ist MFC auf keinen fall angebracht, wie ich selbst schonmal feststellen musste.... Vor allem weil du wenn du mit DirectX arbeitest, keine MFC klassen mehr zur verfügung hast die dir hier noch weiter helfen, und selbst die fenster klasse muss für einen IDirectDrawClipper zum HWND werden.