Каждое игровое приложение можно условно разделить на общую и конкретную части. Общая часть будет одинакова во всех играх. Конкретная содержит нечто свойственное только данной конкретной игре.
Общая часть состоит из:
- скриптовой логики инициализации приложения,
- сервисы,
- набор инструментов для конфигурирования и редактирования логики приложения,
- переводы для стандартных названий,
- общие, шаблонные элементы UI.
Конкретная часть состоит из:
- ассетов,
- UI игры (сцены, рамки окон, HUD),
- логики предметов и сцен.
Сервисы представляют собой логику разных частей игры. За работу с файлами на диске сервис Resources и т.д.
Доступ к сервисам осуществляется через локатор сервисов - Services. Это синглтон и доступ к нему возможен из любой части кода. Этот синглтон регистрируется автоматически вместе с инициализацией плагина. Сервисы через локатор инициализируются лениво, тоесть только при первом обращении к сервису через локатор. Некоторые сервисы для своей работы требуют доступа к другим сервисам и являются зависимыми.