Знания нужны те, что соответствуют вашей роли в разработке игры. Если вы программист, то программирование. Если художник - арт, моделирование, дизайн, левел-дизайн, UI/UX. Если менеджер, то навыки управления. А если продюсер, то всего понемногу. И это не полный список.
Компании, которые вы перечислили, это именно компании, т.е. очень много людей. И у всех у них разные специальности. Там никто в одиночку игру не делает. И решение о создании своего движка тоже должно быть взвешенным, когда ни один движок на рынке не удовлетворяет требованиям разработки игры.
Сейчас, в 2019, для нормальной игры лучше брать уже готовый движок. Отлично подойдет Unity, заточенный под 3D, - это шедевр по современным меркам, даже не смотря на редкие кейсы неудобства. Еще можно Unreal. В любом случае, это гораздо дешевле, чем писать свой. Ну а так - дело вкуса, смотрите, сравнивайте, выбирайте, движков много, 2000-е годы уже прошли.