Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Немного слов о решении

Поставленные задачи выполнены в полном объёме.

Используемый стек:

  • Zenject
  • UniTask
  • Addressables
  • R3(Rx)
  • PrimeTween (самый производительный)

ECS не стал использовать так как задача была сделать простую архитектуру, в случае с ECS не каждый разработчик знает этот подход.

Так же не стал использовать Jobs и Burst, так как выгода будет крайне мала, при текущем количестве сущностей.

Мини прототип на ECS описание ТЗ было доработано. Видео геймплея


По оптимизации было предпринято:

  • Addressables
  • пулы объектов
  • настроена матрица коллизий
  • минимизированы апдейты
  • убран копонент аниамции с кристала в пользу кодовой анимации.
  • кеширование данных
  • минимизированы аллокации
  • убраны меш коллайдеры, где они не нужны.

В проекте намерено используется несколько подходов для реализации игровых сущностей:

  • попроще, что поймут аж самые юные разработчики (реализация юнитов)
  • другой вариант тоже простой, но нужны уже знания DI (реализация башен)).

Классические варианты реализации ИИ так же не стал применять.

В этом репозитории FPS, например реализация ИИ через Behaviour Tree


Мне больше импонирует Data oriented design, последнее время как раз его и использую, так как очень легко в рантайме добавлять новое поведение или новые данные игровым сущностям, а в играх как раз очень часто объекты это требуют. В этом помогает процедурное и реактивное программирование.


В проект добавлены несколько модулей, которые часто мигрируют по проектам:

  • Жизненный цикл игры (zenject специально подредактирован чтобы вклиниться в зенжектовские апдейты)
  • Дерево загрузки (чёткий пайплайн загрузки приложения важен)
  • Менеджмент ассетов

Интеграция модулей практически не занимает времени. Простые в использовании.


About

just test task

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages