Нулевой этап разработки игры — Понимание структуры
Мы нашли референс. Придумали идею для игры.
Hotel "Snake"
"Змейка, как на Nokia, пожирает квартирки, за счет которых растет. Внутри них селятся разные грызуны"
В голове появляются первые смутные картинки геймплея. Поняли, что игра ложится на rogue-lite с уровнями или локациями. Стоит также добавить предметы и метапрогрессию. Каждый уровень можно завершить боссом - Налоговый Инспектор.
И вот мы открываем Unity, а на нас смотрит пустая сцена. И мы начинаем думать - с чего нужно или можно начать?
Моя интуиция подсказывает, что любую игру надо делить на 3 части:
1. Над-движок — обертка из модулей и систем, которые дают доступ к сущностям (в очень широком смысле) в игре. Например, диалоги пишутся не в нативном Unity, для этого обычно разрабатывается дополнительный инструмент. Или система дня и ночи, ее надо создать или интегрировать готовую. Набор таких инструментов и есть то, что я буду называть мастерской или над-движком
2. Контент — это все ассеты, которые были собраны, допилены или добавлены в ваш над-движок. Например, файл с описанием уровня или префаб с 3д моделью
3. Инфраструктура — клей, собирающий все воедино. Сюда входят сохранения, система ввода и вывода, точка входа в игру, переходы между экранами, управления игровыми сессиями и т.д. Ключевая особенность части инфраструктуры в том, что она знает о всех системах, о контенте и о внешних сервисах
Игра в таком случае - это контент, собранный в над-движке, склеенный инфраструктурным кодом.
Warcraft 3:
Система артефактов => ассеты артефактов
Система героев => ассеты героев
Система карт => ассеты карт
Инфраструктура - меню, лобби, начало/конец сессии.
Контент мы можем создавать или редактировать в специализированных программах, в данном случае Warcraft 3 World Editor
Так вот, перед тем как приступить к разработке игры, стоит для начала декомпозировать идею так, чтобы вы могли представить ее как совокупность систем, контента и инфраструктуры
Следующим постом расскажу, как этот процесс был выполнен для игры про змейку пожирающую мышек 🐍😵