GS_Core
Categories:
GS_Core is the required foundation for every GS_Play project. All other GS gems depend on it. It provides game lifecycle management (startup, shutdown, standby), persistence (save/load), level loading, input handling, triggerable actions, and a shared utility library.
For usage guides and setup examples, see The Basics: GS_Core.
Contents
GS_Managers
The lifecycle and startup management system. The Game Manager is a singleton placed in every level — it spawns all registered manager prefabs, coordinates their two-stage initialization, and provides global game navigation and standby mode.
All built-in GS_Play managers (Save, Stage, Options, UI, Unit, Camera, Audio) and any custom managers you create extend the Manager base class and plug into this system automatically.
| Component | Purpose |
|---|---|
| Game Manager | Top-level lifecycle controller. Spawns managers, handles navigation, standby, and debug mode. |
| Manager (Base) | Base class for all managers. Handles two-stage initialization automatically. |
GS_Save
The persistence system. The Save Manager orchestrates save and load operations across the project. Savers are per-entity components that serialize component state. The Record Keeper stores flat key-value progression records independently of the Saver system.
| Component | Purpose |
|---|---|
| Save Manager | Coordinates all save and load operations. |
| Savers | Per-entity components that serialize transform and physics state. |
| Record Keeper | Key-value progression store (flags, counters, unlock states). |
GS_StageManager
The level loading and navigation system. The Stage Manager owns the ordered stage list for the project and handles all level transitions. Stage Data components are placed in each level as anchors and spin-up controllers for that level’s systems.
| Component | Purpose |
|---|---|
| Stage Manager | Manages stage list and handles transition requests. |
| Stage Data | Per-level anchor, spawn point, and activation controller. |
GS_Options
Options and input profile management. The Options Manager persists player preferences. Input Profiles are data assets that hold input bindings, swappable at runtime.
| Component | Purpose |
|---|---|
| Options Manager | Persists and retrieves player option data. |
| Input Profiles | Data asset for input binding mappings. |
Systems
Core framework systems used across multiple gems: the GS_Motion track-based animation engine and the GS_Actions triggerable behavior system.
| System | Purpose |
|---|---|
| GS_Motion | Track-based animation and tween engine — abstract base classes extended by domain gems. |
| GS_Actions | Triggerable, composable, data-driven behaviors attachable to any entity. |
Utilities
A general-purpose library of components and math helpers.
| Area | Contents |
|---|---|
| Physics | Physics Trigger Volume |
| Easing Curves | 40+ curve types (Linear, Quad, Cubic, Sine, Expo, Circ, Back, Elastic, Bounce) |
| Spring Dampers | 15+ spring functions including Simple, Acceleration, Double, Timed, Quaternion |
| Gradients | Color, float, and Vector2 gradients |
| Entity Helpers | Entity lookup by name |
| Random | Weighted random selection |
| Splines | Closest point, fraction, and local/world conversion |
| Angle Helpers | Yaw, quaternion from direction, section-by-angle mapping |
Installation
GS_Core is required by all GS_Play projects. Add it to your project before any other GS gem.
- Follow the Simple Project Setup guide for full walkthrough.
- Configure collision layers and physics per the Setup Environment guide.
- Create a Game Manager prefab and place it in every level.
- Add the managers you need to the Game Manager’s Startup Managers list.
See Also
For conceptual overviews and usage guides:
For related resources:
Get GS_Core
GS_Core — Explore this gem on the product page and add it to your project.