Новичку лучше всего не лезть в такую сложную область, и начинать с умения ИСПОЛЬЗОВАТЬ движки, а потом уже их писать садиться.
Ну а если уж так хочется... Обязательно нужно оочень хорошее знание ЯП (чтобы не мешать выражать свою мысль), знание алгоритмов и структур данных, паттернов. Естественно и тоже на высоком уровне надо знать математику - особенно геометрию, ну и все что связано с комп.графикой - те же матрицы например. Крайне не лишним будет знание и понимание работы отдельных платформ, под которые может писаться движок, граф.АПИ. Ну и дальше уже прикладное, может и не понадобиться - сеть, оси, звук, и проч.
ВОт можете начать с чтения десятка книг отсюда -
https://github.com/miloyip/game-programmer