Где можно увидеть грамотно собранные проекты на Unity3d с правильными абстракциями, слоями и связями?
Уже давно ходят шутки, что официальные туториалы по Юнити - скорее сборник антипаттернов, а обучающие видео на YouTube порой и бывают качественными, но чаще решают какую-то узкую задачу, где ради примера не будут делать кучу интерфейсов и фабрик. Последней каплей стал курс, который я проходил на Udemy по Unity DOTS, в котором преподаватель несколько раз открыто нарушал принципы solid, отговариваясь что это "просто чтобы код сейчас работал", при том что сам курс посвящен сборке цельного проекта.
Я мало что понимаю в грамотной организации кода и выстроении иерархий с нужными уровнями абстракции, и поэтому для меня очень важно видеть и учиться на таких примерах.
Может быть вы знаете такие open source проекты, книги или другие примеры?
Я понимаю, что должен быть баланс между трудозатратами и гибкостью кода, что в небольших проектах, особенно где работает 1 программист какие-то вещи можно нарушать, и что все примеры являются "грамотными" в рамках отдельно взятой задачи и возможностей, но хочется на что-то ориентироваться. Понимать когда что-то сделано неправильно, и осозанно идти на этот компромисс, а не варить очередной Доширак из кода.
freeExec, в моем понимании: геймдев разработка вносит свои коррективы и то, что хорошо будет работать в коде для десктопных приложений нельзя прямо применять к Юнити.
Если конкретнее, то , например, что может быть в MonoBehaviour, а что должно быть в чистом классе, которой MB будет включать в себя, или например уместна ли будет реализация фасада через MonoBehaviour "Player", который инкапсулирует в себе все остальные классы, и в Update() у нас будет просто Move(), Shoot(), Heal(), или это в целом плохая практика.
Иначе говоря как реализуются сложные взаимосвязи объектов в Unity в контексте использования MonoBehaviour, когда стоит использовать чистые классы. Из небольшого личного опыта могу только судить о том, что подходов к шерению задачи может быть масса, но все примеры что я видел - небольшие и с минимальной сложностью, которые не учат как проектировать что-то комплексное