Magical Order пет-проект
Игра в жанре casual / puzzle для платформы Яндекс Игры, разработанная на Unity с акцентом на чистую архитектуру, расширяемость и переиспользование логики Проект построен вокруг механики сортировки магических сущностей (жидкостей / ячеек) по цветам и состояниям с постепенным усложнением правил.
Платформа: Движок: Unity Целевая платформа: WebGL (Яндекс Игры) Интеграция: YandexGame Framework (сохранения, реклама, локализация) Язык: C#
Архитектура проект: Проект следует принципам: SOLID Composition over inheritance Dependency Injection (через Installers) Data‑Driven подход (ScriptableObjects)
Используемые паттерны: Factory (обобщённые фабрики) Strategy State Adapter (платформенная абстракция) Object Pool Observer / Event‑based взаимодействие MVC / MVP (в игровой логике и UI)
Core Gameplay Loo Инициализация сцены через EntryPointGameSession Загрузка настроек сложности (DifficultyState) Генерация игровых объектов через фабрики Распределение цветов и начальных состояний Ожидание действий игрока (ActionHandlers) Перемещение и сортировка магических сущностей Проверка условий заполнения сосудов Завершение сессии (FinalGameSession) Сохранение прогресса и переход
Архитектурная схема (логическая) [ EntryPoint ] ↓ [ Installers ] → Services / Settings ↓ [ GameHandler (State) ] ↓ [ Factories ] → Game Objects ↓ [ Player Actions ] → ActionHandlers ↓ [ MagicCells / Vessels ] ↓ [ UI / Audio / Effects ]
Производительность и WebGL Используется Object Pooling для частиц и игровых сущностей Минимизация GC-аллокций Отсутствие Update() там, где возможно Data-driven настройки через ScriptableObjects Расширяемость Добавление нового типа сосуда Унаследоваться от Vessel Реализовать нужное поведение наполнения Зарегистрировать в VesselFactory Настроить визуал и эффекты