City Builder — это комплексный проект, разработанный командой из 5 человек. Игра представляет собой градостроительный симулятор с экономическим уклоном, глубокими системами взаимодействия и управления ресурсами. Проект реализован с нуля и демонстрирует навыки командной разработки, архитектурного проектирования и реализации сложных игровых механик.
Проект создавался с прицелом на чистоту кода и масштабируемость:
- Архитектурный паттерн: MVP (Model-View-Presenter). Это позволило четко разделить логику игры, данные и их отображение, что критически важно для командной работы над большим проектом.
- Платформа: Unity.
- Язык: C#.
Проект выполнялся командой из 5 человек:
- Распределение задач.
- Использование систем контроля версий (Git).
- Следование единому архитектурному стилю (MVP) для бесшовной интеграции кода разных разработчиков.
В проекте реализован широкий спектр геймплейных возможностей, характерных для жанра city-building:
- Строительство и экономика: Возможность возводить здания различных типов с последующим улучшением.
- Система позиционирования: Объекты строго размещаются по сетке (grid-система), с возможностью их последующего перемещения.
- Ресурсы и производство: Реализована экономическая модель: здания производят ресурсы, которые поступают в инвентари и используются для нужд города.
- Динамический мир: Внедрена система смены дня и ночи, влияющая на геймплей.
- Симуляция жизни: Жители города обладают набором потребностей, которые необходимо удовлетворять для развития поселения.
Поведение NPC (жителей) реализовано через классический паттерн — Машину состояний (State Machine). Каждый житель может находиться в различных состояниях (работа, отдых, поиск ресурсов), что делает их поведение предсказуемым, но вариативным.
Одной из ключевых задач была реализация надежной системы сохранения/загрузки:
- Формат данных: JSON.
- Сериализация: Сохраняется абсолютно всё состояние игры — от позиций зданий до текущего состояния конкретного жителя и его машины состояний.
- Глубокая сериализация: Машина состояний жителей также сериализуется в JSON, что позволяет при загрузке восстановить игру с точностью до текущего действия каждого NPC.
Для повышения вовлеченности и мотивации игрока в проект добавлена система достижений.
- Механика: Достижения отслеживают ключевые события игрока: постройку зданий, накопление ресурсов, рост населения и др.
- Обратная связь: Разблокировка сопровождается уведомлением и отображается в специальном меню.
- Архитектура: Реализована на базе паттерна Observer, что обеспечивает гибкость и легкую расширяемость списка достижений.
Итог: City Builder — это полноценный прототип, демонстрирующий понимание паттернов проектирования (MVP, State Machine), работы с данными (JSON) и принципов командной разработки в среде Unity.



