Cutie Systems
Game System
Game Manager
The game manager has 3 part:
- Game Manager gameObject: that is launched at startup.
- Game Manager ScriptableObject Singleton: that is instantiated by the gameObject
- Game Manager ScriptableObject
Game Task Subsystem
- lists of game tasks
- Game tasks are scriptable objects that can be synchronous or async
For example: at the start of the game, the only initiated process is the Game Manager. It then starts a list of game tasks: * Start the first scene * Load other subsystems * Initialise the saving mechanisms * etc. until the game menu waits for player input.
Game Events Subsystem
Same as gametasks but player driven
Save System
- Affects:
- Player Preferences
- Player State
- All Levels States
- Functions:
- Load
- Save
Save
Local save
- Save Redundancy (date, and backups / 5 slots backups)
- Fallback system
- Autosave based on checkpoints (background thread)
- Separate
- Player Preference (in playerprefs)
- Game Data (as a Json + Hash)
Player Preferences
- Langage (Localisation)
- Controls (Key configuration, joystick/keyboard...)
- Accessibility (Colour blindness, Sticky rolls, Sticky Breaks...)
- Volume Control (music, sound effects, menu)
Game State
Game-wide management of:
- Character States
- All Levels States
- Play/Pause
Menus
UI
Background Music
Sound
Player Systems
Player State
Player Control
Level System
Level State
The level state is a accumulation of
- The Collectible state
- The GameEvents State
Items System
Camera System
Gameplay Camera
Camera Handoff
Event System
Deals with game events as Scriptable Objects