📝 Статья: Почему нужно слушать старших или как я наступил на грабли, выбирая архитектурный подход при разработке игры
📃 Для исследования один из выбранных архитектурных подходов — это стандартный юнитевский Monobehaviour, вкратце расскажу про этот подход, система построена как конструктор, задача разработчика при создании игрового объекта, это наделять этот объект свойствами, просто подключая к нему нужные так называемые компоненты. Идеально! Бери и строй, что тебе нужно. Но, как всегда, есть нюанс, во‑первых, любой из этих объектов способен влиять на игровой цикл (вы буквально одной строкой кода можете выключить игру просто написав её в методе Update любого GameObjectа), и, во‑вторых, большое количество таких объектов приводит к потере производительности. Казалось бы, не делай плохо делай хорошо. Избегай «тонких» мест и всё. С этой мыслью я приступил к выполнению задач.
Второй архитектурный подход, который я выбрал для сравнения — это Zenject. Это фреймворк, реализующий принцип Dependency Injection, что в переводе означает «внедрение зависимостей». Звучит умно, но по сути — это про то, как аккуратно передавать нужные объекты в другие классы, не создавая их вручную внутри. Zenject помогает сделать проект более структурированным: вы заранее описываете, какие зависимости у каких компонентов есть, и фреймворк сам всё «связывает». Это как если бы все детали конструктора сами вставлялись туда, где они нужны — без ручной сборки. При помощи этого подхода можно избавиться от проблем Monobehaviour и в теории повысить производительность и скорость разработки. Но чтобы понять, как оно всё работает, нужно немного погрузиться. Концепция не самая простая, и на старте создаёт ощущение, что ты больше пишешь конфигурацию, чем саму игру.
✧ Автор: Grooofy
#UnityScripts #Unity6 #Unity #Unity3D #GameDev #Геймдев #РазработкаИгр
Post #568
294