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