Тут все очень просто. Игры не пишутся с нуля и работа с продвинутой графикой - это уже не игрушки. Вам не придется писать, что точка (x,y) меняет цвет с зеленого на красный, не надо знать тригонометрию, хотя ее "под капотом" вагон и маленькая тележка, не будете заботиться об угле падения тени и областях полу-тени. Все это обеспечивают игровые движки.
Есть 2 топ игровых движка:
Unreal Engine
Unity
В первом случае нужны знания С++, во втором - есть варианты, но в основном применяется C#, менее популярен JavaScript, далее еще 5 языков, названия которых знает только Google.
Определиться с языком помогут вакансии в игровой индустрии. Я считаю, что надо отталкиваться от того, где вы хотели бы работать в гейм-деве или найти игру подобную, которой вы хотите написать, и выяснить на чем она написана. На сегодня основные вакансии в Android области, как самой активной. Там заправляет Unity.
Подавляющее большинство игр пишутся в игровых движках - это специальные "фреймворки" (библиотеки, навязывающие архитектуру) в которых разработка игр более удобна.
На PC (personal computer) самые известные движки - это Unity (язык C#) и Unreal Engine (язык C++).
Про движки на мобильные пратформы - я увы не в курсе.
Современные 3D-игры разрабатываются на языке, с помощью которого, можно управлять памятью без "непредвиденных ситуаций". Хорошо для этого подойдет C/C++.
Статичная память, обязательный параметр в огромных проектах. Вы всегда должны контролировать расход ресурсов Вашей машины и ресурсами машин Ваших клиентов.
Unity написан на C#, там нельзя управлять памятью вручную