Skip to content

Repository files navigation

1. Архитектура (кратко)

Конфиги:

  • ConfigBase - базовый класс конфигураций. Содержит Level, общий для всех сущностей.
  • ItemConfig / SpawnerConfig - конкретные конфиги предметов и спавнеров.
  • SpawnerConfig дополнительно содержит SpawnTable с вероятностями.
  • ConfigRegistry - централизованное хранилище конфигураций. Отдаёт конфиг по уровню.

Сущности поля:

  • FieldEntity - базовый класс для объектов, размещаемых на поле.
  • ItemEntity / SpawnerEntity – конкретные реализации FieldEntity.

Системы:

  • SpawnSystem - логика спавна предметов из спавнера.
  • MergeSystem - логика объединения сущностей.
  • FieldService – предоставление доступа к полю.

Фабрика:

  • EntityFactory - создание игровых сущностей из конфигов.

UI и ввод:

  • DragHandler – обработка drag & drop логики (перемещение, попытка мёрджа, возврат на место, размещение на пустой клетке).
  • SpawnerTimerButton – UI кнопка и таймер, создаёт спавне S1 после завершения таймера.

Инициализация:

  • GameBoostraper – регистрирует сервисы, создаёт стартовый спавнер.
  • Services – обычный service locator для доступа к системам, в дальнейшем можно поменять на Zenject.

2. Какая структура выбрана?

Выбрана около ECS архитектура.
Почему? – минимальные зависимости, легко масштабировать, разделение ответственности.


3. Паттерны

  • Фабрика – единая точка создания сущностей.
  • Service Locator – доступ к системам без жёстких зависимостей.
  • Data Drive – вся прогрессия вынесена в ScriptableObject.

4. Трудности

  • Связь Drag & Drop + merge – подобрать правильный порядок.
  • Проверка какой item или spawner под нами и есть ли он вообще.
  • Стоит ли вернуть предмет обратно, начать мёрджить или просто переместить на новую ячейку.

5. Что улучшить?

  • Если проект разрастётся, то ServiceLocator’а будет недостаточно, стоит заменить на Zenject или VContainer.
  • Стоит UI вынести в отдельный сервис.
  • Расширить конфиги для дальнейшей визуализации проекта, добавить кастомные иконки под нужный уровень и т.д.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages