Кажется, это действительно должен быть CW ...
Я сейчас прохожу курс по программированию игрового движка, и они придерживаются подхода игрового цикла. Конечно, это не значит, что это единственное / лучшее решение, но оно, безусловно, логично. Использование цикла позволяет вам убедиться, что все игровые системы запускаются, не запрашивая свои собственные прерывания по времени или что-то еще. Управление может быть централизованным: в моем текущем проекте у меня есть класс GameManager
, который в каждом кадре циклически выполняет функцию Update(float deltaTime)
для каждого зарегистрированного объекта по очереди. Мне не нужно отлаживать систему событий или настраивать синхронизированные сигналы, я просто использую цикл для вызова ряда функций. Нет суеты, нет суеты.
Чтобы ответить на ваш вопрос о том, что я больше всего ненавижу, циклический подход логично поддается либеральному использованию наследования и полиморфизма, который может раздуть размер / сложность ваших объектов. Если вы не будете осторожны, это может быть легкой до ужасной ловушки. Если вы осторожны, это может вообще не быть проблемой.