В последнее время среди игровых разработчиков возрос интерес к паттерну "Шина Событий". Этот паттерн часто ругают за его тенденцию к "размыванию логики" и "скрытию зависимостей". Однако, несмотря на критику, полный отказ от этого паттерна также глуп как и написание кода в блокноте вместо специализированной IDE. В этой статье рассмотрим создание игры, целиком основанной на этом паттерне, и поработаем с такими библиотеками, как Zenject, UniRx, и DoTween.
Так мило, что в геймдев начинают приходить практики программирования из 90х :)
Хотя конечно интересно услышать про хоть одну новую «практику программирования из 2020-х или 2010-х»
Тогда прям сразу сяду за статью, как применить ее в геймдеве)
Лучше поздно, чем никогда)
Охренеть как мног комментариев.
Раньше пробовал для обмена сообщениями использовать push модель. В итоге, при разрастании кодовой базы появляется куча неявных зависимсотей и поток управления превращается в запутанное спагетти. Сейчас использую pull модель. Да, клиенсткому коду приходится делать больше телодвижений, но поток управления остается простым, что в крупной кодовой базе важнее. ИМХО.
Медиатор/Посредник
А разве не Observer? Ну и вообще зачем надо 3 плагина ради этого городить если можно сделать простенький статический класс с двумя коллекциями делегатов и привязку событий делать на енамках. Моя простенькая реализация (подсмотренная на одном собесе пару лет назад и передопиленная до плагина в юнити)
https://github.com/noldowalker/CustomEventSystem
3 плагина не для этого
Zenject это DI контейнер, он не связан с шиной событий
DoTween для процедурных анимаций
Но согласен, это не совсем очевидно из статьи
А в целом, не хочу учить людей писать велосипеды. Если есть устоявшиеся фреймворки, то лучше пользоваться ими.
Иначе с тем же успехом веб разработчик может выпустить статью «напишем свой реакт»