Если это 2D игра, то её можно написать практически на любом языке программирования высокого уровня.
Если же это 3D игра или 2D игра с очень сложной графикой,
(Например 2D игра с использованием 3D технологий. Это, к примеру, игры, где используется 3D графика, но можно смотреть на игру только с одной точки, сверху или сбоку, отчего кажется что это 2D игра).
то тогда язык программирования С++ тут вне конкуренции.
Просто под язык С++ больше всего разных библиотек с функциями.
А самые сложные игры делают вообще на движках, потому что без движка делать всё это очень долго и сложно.
Движками тоже управляют с помощью языка программирования С++.
Плюс понадобится программа 3Ds Max, либо какая-то другая программа по созданию 3D объектов (это если хотите сделать сложную 3D игру).