Il y a plusieurs possibilités, mais en gros, pour les jeux, il faut utiliser OpenGL.
Les API d'OpenGL sont écrites en C et donc tu peux programmer ton jeu en C, C++ ou ObjC. La plupart des langages possèdent une adaptation pour utiliser OpenGL, alors tu pourrais aussi utiliser Python, Ruby, RealBasic, Java
Par ailleurs, pour gagner du temps, il peut être intéressant d'utiliser un moteur 2D tout fait (par ex.
Cocos2D, mais il y en a plein d'autres).
Ma réponse est vague, parce que les possibilités sont nombreuses.