Di solito si utilizza c/c++, visto che le performances sono tutto nel mondo dei vg.
In più ti devi affidare a delle librerie grafiche. Sicuramente avrai sentito parlare di directX* (solo su win) o openGL (multipiattaforma).
Inoltre potresti utilizzare degli engine già fatti, tipo unity3D, in modo da non dover crearti il tuo engine (cosa che ritengo molto difficile da affrontare)

Cmq nessuno ti vieta di usare altri linguaggi (tipo java) ... come ti hanno detto dipende da cosa vuoi fare e come vuoi farlo

* Con direct x non si intendono solo le librerie grafiche (direct 3D) ma tutta una serie di librerie per audio, input, network, etc. Al contrario OpenGL sono solo librerie per la grafica

Piccola nota: tempo fa c'era XNA di microsoft, che ti permetteva di creare il tuo gioco (per PC ed XBOX) in c# appoggiandoti a tal framework... non so che fine abbia fatto, ma credo sia morto come progetto