Добрый день, уважаемые коллеги! Я недавно начал изучать Unity, и накопилось несколько вопросов. Их удобно объединить в одну пачку «best practices», чтоб не вводить искусственное разделение.
Какой подход к архитектуре игр принят в Юнити? Какова специфика по сравнению с разработкой под другие платформы и общими для геймдева подходами?
Где точка входа, в которой можно настроить совместно используемые IoC-контейнер, service locator, всякие контроллеры, фабрики и прочий стафф? Где инстанцировать объекты, как управлять временем их жизни, организовать владение и ссылки между ними?
Как отделить логику от представления? Какие обычно применяются паттерны проектирования? Какие дополнительные сущности типа менеджеров, провайдеров и т.п. обычно создаются?
Как организовать исходный код, который в общем случае не просто MonoBehaviour-скрипты, а произвольные переиспользуемые классы? Как управлять зависимостями между ними?
Можно ли использовать классическую событийную модель типа .NET events или Rx вместо (или совместно с) пофреймового update()?
Заранее благодарен за ответы!