Я отношусь к архитекторам игрового кода с уважением: игры - это сложные системы с появляющимися свойствами во время выполнения, необычно интенсивными требованиями к взаимодействию (пользовательский интерфейс, элементы управления), что делает сомнительной ценность теории ООП.Может быть трудно повторно использовать игровой код.И многие предварительные работы по планированию - это пустая трата времени.
Большинство известных мне программистов, начинающих или опытных, преуспевают в итеративном процессе «просто сделай это».например,
1) написать минимальный прототип.получить очень простую систему, работающую, используя простейшую, наиболее очевидную архитектуру, какую вы только можете придумать.(мой парень может бегать по экрану).Максимум 5 или 10 объектов
2) добавляет функциональность (очки, правила, ловушки, поведение NPC и т. Д.) И тестирование, снова и снова.Этот хак на хак может сделать плохо структурированный код, но большинство кодеров может заставить его работать.
3) переписать.Программисты скрипят зубами при взломе, который они должны были сделать в (2), и захотят выбросить все это и переписать.Не поддавайтесь этому побуждению до тех пор, пока игра не станет тестируемой (например, иногда это может понравиться игрокам), или новая функция потребует переписывания.Затем переписать практически все с нуля.Это идет намного быстрее, чем вы ожидаете, и приводит к прочному, хорошо структурированному коду.
Игровые кодеры проводят тестирование, но комплексное тестирование ВСЕГО кода происходит редко.две причины: появление и культура.Игры имеют всплывающие свойства во время выполнения («да, но очки МОГУТ становиться отрицательными, когда NPC убивают, когда ....»).Поскольку игры обычно предназначены для развлекательных целей, существует культура быстрого тестирования.Игры не так важны, как, скажем, код управления ракетами.
Я ожидаю, что другие с большим опытом программирования ответят на это.(Я написал немало кода, но я стремлюсь к быстрому и грязному стилю кодирования типов сценариев - я знаю много кодеров, которые намного лучше меня.)