Tahle otázka tu byla řešena už několikrát, stačí hledat. V podstatě máš tři možnosti: použít engine / framework / API.
Engine - rychlý vývoj, odchytané chyby, výkonné. Nevýhodou je že jsou zpravidla zpoplatněné, a z většiny enginů dostaneš jen těžko něco jiného než střílečku. Příklad: Crytek engine, Unreal engine. viz http://en.wikipedia.org/wiki/List_of_game_engines
Framework - neobtěžuješ se psaním stejného kodu pořád dokolečka. Relativně rychlý vývoj. Výkonnost zpravidla pokulhává, ale záleží také hodně na programátorovi. Příklad: Unity3D, Microsoft XNA a na to navazující MonoGame
Samostatné API - brutální výkon a vše si uděláš podle svých představ. Nevýhodou je pomalý výkon, kvantum znalostí které člověk musí mít a PC za tebe nic neudělá, vše si musíš naprogramovat sám.
Jsi "dítě" co se rádo hraje, nechce se ti učit se a chceš se chlubit hrou typu Call of Duty? -> engine
Jsi sám a chceš vydat nějakou open-source nenáročnou hru, zpravidla 2D, kde nepotřebuješ super výkon? -> framework
Chceš využít plnou sílu PC, vytvořit AAA hru, mít povědomí o tom jak se to tam dole všechno točí? -> API
Diskuze typu OpenGL vs DirectX tady řešit nebudu. Na netu najdeš přímo hustodémonský krutopřísný počet článků na toto téma. V podstatě DirectX=výkon; OpenGL=přenositelnost, rozhodnutí je na tobě...