Engine Services

Most of the engine features are implemented via engine services. Engine service is an implementation of an IEngineService interface, which handles a specific job, like executing naninovel scripts, managing actors or saving-loading the game state.

In case you wish to interact with engine system, you'll most likely want to use an engine service. You can get a reference to an engine service using Engine.GetService<TService>() static method, where TService is the type of service you wish to reference; e.g., to get a ScriptPlayer service:

var player = Engine.GetService<ScriptPlayer>();

The following services are currently available:

Service Type Description
BackgroundManager Manages background actors.
CharacterManager Manages character actors.
ChoiceHandlerManager Manages choice handler actors.
TextPrinterManager Manages text printer actors.
AudioManager Manages the audio: SFX, BGM and voicing.
InputManager Manages the user input processing.
LocalizationManager Manages the localization activities.
TextManager Handles managed text feature.
MoviePlayer Handles movie playing.
ScriptManager Manages naninovel script resources.
ScriptPlayer Handles naninovel scripts execution.
CameraManager Manages cameras and other systems required for scene rendering.
ResourceProviderManager Manages IResourceProvider objects.
StateManager Handles IEngineService-related persistent data de-/serialization; provides API to save and load game state.
UIManager Manages IManagedUI objects and handles UI customization feature.
CustomVariableManager Provides access and allows modifying custom variables.
UnlockableManager Manages unlockable items (CG and movie gallery items, tips, etc).