Судя по вопросу, Вы ещё не программист, по этому вот -
Если бы Вы спросили "какие языки учить, чтобы делать сайты и что для этого нужно", то получили бы стандартный ответ - "html5 + css3 + js + php + angular + lareval". И да, это был бы правильный ответ, так как этого достаточно. Всякий раз, при посещении какого-либо сайта, когда у Вас возникал вопрос - "как это сделать", получали ответ - "вот готовое решение, не тратьте время на сооружения велосипеда".
Согласитесь, как все просто?
А вот как дела в gemdev'у -
Физика - да, существуют готовые физические движки, но это "автомобиль", который принесет пользу тем, кто имеет "водительские права" или сломает его разум. Так же для мобильных платформ физ. движки очень тяжелые, по этому нужно писать все законы физического мира - самому.
Анимация - Вы должны понимать её работу так, словно узнали Вы о ней в раньше чем родились.
Но на самом деле нужна она не так часто, что не означает, что Вас будет ждать коллектив, пока Вы точную траекторию кривой Безье третьего порядка рассчитаете.
Я сказал "рассчитать"? Да, это Вам нужно делать на уровне школьного золотого медалиста.
Уравнения, геометрия, алгебра, ранее упомянутая физика... И думаете это все?
Нет, потому-что ещё есть же отображение!
Вы должны разбираться в цветах лучше художника, должны уметь создавать различные эффекты с применением не самопридуманных технологий, а с вполне естественными для всего мира алгоритмами. Их очень много. А алгоритмы поиска путей и прочих столкновений?
Да, есть много готового, даже можно сказать, что уже все создали.
Но настоящий gamedev'овиц, должен знать все.
Это то, что не касается программирования.
А для того, чтобы осуществить все, что я описал выше, нужно знать всю архитектуру, которая существует + знать все о оптимизации кода на языке, на котором пишете.
А язык, как Вам уже сказали, почти любой.