К сожалению, нигде нет более менее полной публикации на тему проектирования архитектуры в играх. Есть отдельные статьи на конкретные темы, но нигде все это вместе не собрано. Каждому разработчику приходится самостоятельно по крупицам собирать подобную информацию, набивать шишки. Поэтому решил попробовать собрать часть из этого воедино в данной статье.
Для примеров будет использоваться популярный движок Unity3D. Рассматриваются подходы, применимые в больших играх. Написано из моего личного опыта и из того, как я это понимаю. Конечно, где-то я могу быть не прав, где-то можно лучше сделать. Я тоже все еще в процессе набирания опыта и набивания новых шишек.
В публикации рассматриваются следующие темы:
- Наследование VS компоненты
- Сложные иерархии классов юнитов, предметов и прочего
- Машины состояний, деревья поведений
- Абстракции игровых объектов
- Упрощение доступа к другим компонентам в объекте, сцене
- Сложные составные игровые объекты
- Характеристики объектов в игре
- Модификаторы (баффы/дебаффы)
- Сериализация данных