Моей задачей на этом проекте было: написать архитектуру Unity игры, реализовать механики переходов состояний в игре, а также быть тимлидом команды: руководить пятью людьми, включая самого себя). Нужно было создать игру по теме "Прозрение" за 72 часа.
Для архитектуры проекта использовалась:
- StateMachine (с 6 состояниями для полного контроля жизненного цикла проекта)
- Entrypoint для правильного порядка инициализации объектов
- Менеджеры, инициализируемые через statemachine и entrypoint (AudioManager, SceneLoader, StorytellingManager, SettingsManager)
Для более работы конфигами сторителлинга был написан ScriptableObject StorySlide и StorySequence, управляемые соответствующим менеджером.
В процессе работы со звуком оказалось, что в Unity Audio Random Container и AudioClip не взаимозаменяемы через интерфейс или предшественника наследования. Поэтому написал кастомный ScriptableObject-класс содержащий либо один звук, либо контейнер звуков. Через AudioManager был виден один класс, а не два разных, что упростило код для чтения и понимания.
Учитывая временные рамки (72 часа), не всегда получилось писать чистый код, поэтому местами приходилось жертвовать правильной инкапсуляцией ради сокращения времени написания кода.
Про руководство командой: ещё до начала джема я расписал план работы по дням, конкретные результаты каждого дня (брейншторм, создание прототипа, наполнения контентом, полировка). В результате совместного брейншторма вывели идею, которая нравится нам всем. Позже, в ходе создания прототипа стало ясно, что нужно менять ключевую механику, что мы и сделали, перед этим обсудивши вместе.
Мною была создана в сжатые сроки поддерживаемая архитектура, были решены задачи с механикой сторителлинга, аудио и интерфейсом. Членам команды эта работа дала опыт и положительные эмоции от процесса и результата. Наша игра заняла 13 место из 215 команд по номинации "Геймплей".