Ну, есть несколько способов думать об этом. Один из них состоит в том, чтобы перечислить специфические функции, которые должен иметь движок (о чем вы просили здесь.) Однако другой способ - просто начать создавать игры, не слишком заботясь о «движке», и затем найденные вами функции повторно используются между несколькими В играх (в частности, функциях, используемых в каждой игре) вы должны мигрировать из исходного кода для конкретной игры в общую кодовую базу под названием «движок».
Потому что, в конце концов, вам нужна конкретная функция в движке, а не в игре, потому что она используется несколькими играми. Обычно это такие вещи, как команды рисования, контроллеры ввода и сетевой код. Движок 2D-игр будет иметь множество функций 2D-графики, таких как загрузка изображений, иерархия отображения в z-порядке, обработка таблиц спрайтов, анимация движения и т. Д. Во многих играх требуется физическое моделирование, хотя, с другой стороны, многим это не нужно. Между тем, больше «скрытых» вещей, используемых почти в каждой игре, включают таймеры, обмен сообщениями о событиях и даже математические функции, специфичные для разработки игр (например, distanceToTarget ()
Короче:
A) Движок должен иметь функции, общие для большинства игр.
Б) Вы узнаете, какие функции являются общими, создав кучу игр.
just start making games without worrying too much about the "engine"