Core Change Log
Changelog.
Categories:
Logs
Core 0.6.0
GS_Options – Settings System
- New settings framework: option profiles declare a catalog, and the Options Manager merges, applies, persists and restores it.
.optionsprofileasset holding a polymorphic option list; multiple profiles stack and merge by key.- Four option types: toggle, slider, dropdown and colour picker.
OptionApplyTargetcomposition — an option’s widget and its engine effect vary independently.- Shipped apply targets: data flag, console variable, window mode, window resolution, fullscreen, vsync, and a display gamma target in the private module layer.
.optionspresetasset holding values only, with automaticCustomresolution when values diverge.- Full bus surface: generic and typed value access, catalog queries by category, apply and save, preset control, and an option-changed notification.
- SettingsRegistry persistence, flushed on save and shutdown rather than per change.
- Launch-time apply path — console-expressible settings are written to a startup command file and executed before the window is created, so the game opens correctly rather than switching after launch.
- Apply deferred by a few ticks after startup, because display and render settings applied at startup-complete precede window and pipeline readiness.
- Accessibility fonts shipped with the gem.
GS_Options – Input Reactors
- The reactor mechanism now lives in GS_Core: a reactor component driven by a reactor profile asset holding authored reaction types.
- Reactors are cloned per component, so a reaction type can hold per-entity state.
- Input events are classified into pressed, held, released and analog phases before dispatch.
InputReactorRequestBusfor feeding events, clearing state and querying values.InputReactorNotificationBusemits in parallel with dispatch, so scripts can react without writing a reaction type.
Managers
- Headless mode — a manager can drive its own startup with no Game Manager present, for deploying a single feature into a project not built on GS_Play.
- Headless managers do not register with the Game Manager, so they take no part in its startup count.
OnBeginGameis never self-fired: startup completing is infrastructure, beginning the game is a cue the project owns.- Per-manager logging depth for lifecycle diagnostics.
Debug
GS_ImGuiMenuComponent— a content-free GS_Play menu anchor that any gem contributes to, with deterministic ordering by sort key.- Core menu shipping a live Options editor and a Game Manager window.
Utilities
- New
Noiseutility: Perlin 1D/2D/3D, fractal multi-octave, and reflected layered noise stacks. - New
Envelopeutility: a reflected ADSR envelope with evaluation, duration and completion helpers. - New orbital solver: pivot-aware position and pose blending in linear, cylindrical and spherical shapes.
- New comparison helpers for data-authored boolean conditions.
DebugLoggingHelpermix-in for per-component logging depth.- Utility headers reorganised into Math, Gradients, Physics, Random and Reflection folders.
- The type registry subsystem was removed. Extensible type sets now use the polymorphic array convention, where the serializer supplies the type picker.
Templates
- GS_Core Project template — a working project with Game, Options, Save and Stage managers already wired into a manager collection, on the shared starter level.
- Component templates for managers, savers, input readers, input reactors and physics triggers.
- Editor-Only Environment prefab for authoring-time lighting and reference setup.
Interfaces
FeedbackExchangeBusadded to the contract layer.
Core 0.5.0
- COOOOREEEEE