This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Change Logs

Version changelogs for all GS_Play gems and documentation.

Logs


GS_Audio

Latest version: 0.7.0

Change Summary

The free tier of the audio system — polymorphic audio events with procedural sources, SFXR sound profiles, the 22-effect mix layer, and Steam Audio spatialization with a split listener.

GS_Audio Logs


GS_AudioPro

Latest version: 0.7.0

Change Summary

First release of the premium audio tier — the visual Audio Event Graph, procedural scoring, Klatt voice synthesis, and geometry-driven occlusion and reflections.

GS_AudioPro Logs


GS_Cinematics

Latest version: 0.6.0

Change Summary

Dialogue Editor rebuilt on the gs_graphcanvas framework with container database model, visual graph authoring, and runtime graph execution.

GS_Cinematics Logs


GS_Core

Latest version: 0.6.0

Change Summary

The GS_Options settings system, headless managers, the extensible ImGui debug menu, the input reactor mechanism, new noise/envelope/orbital utilities, and the project and component templates.

GS_Core Logs


GS_Environment

Latest version: 0.5.0

Change Summary

First official base release. Time of day management, time passage speed, day/night cycle notifications, and sky color configuration assets.

GS_Environment Logs


GS_Interaction

Latest version: 0.5.0

Change Summary

First official base release. Physics pulse emitters and reactors, proximity targeting and cursor, and composable world trigger sensors.

GS_Interaction Logs


GS_Juice

Latest version: 0.5.0

Change Summary

First official base release (Early Development). Feedback motion system with transform and material tracks for screen shake, bounce, flash, and glow effects.

GS_Juice Logs


GS_Performer

Latest version: 0.5.0

Change Summary

First official base release (Early Development). Performer manager, skin slot swapping, paper billboard rendering, velocity locomotion, head tracking, and babble.

GS_Performer Logs


GS_PhantomCam

Latest version: 0.5.0

Change Summary

First official base release. Priority-based camera system with follow/look-at behaviors, blend profiles, and spatial influence fields.

GS_PhantomCam Logs


GS_UI

Latest version: 0.5.0

Change Summary

First official base release. Single-tier page navigation, GS_Motion UI animation, enhanced buttons, input interception, load screen, and pause menu.

GS_UI Logs


GS_Unit

Latest version: 0.6.0

Change Summary

Unit Action Graph (under construction) — HFSM editor with parallel layers, perimeter connections, transition conditions, and tick-based state evaluation.

GS_Unit Logs


Documentation

Latest version: 1.1.0

Change Summary

GS_GraphCanvas framework reference, Audio Event Graph docs, Dialogue Editor rewrite, Unit Action Graph docs, Building a Graph Tool tutorial, and Dialogue System Setup tutorial.

Docs Logs


1 - Audio Change Log

GS_Audio version changelog.

Logs


Audio 0.7.0

GS_Audio is now the free tier of the audio system. The visual authoring, music, voice and geometric acoustics features moved to GS_AudioPro; everything below is what the free gem carries.

Audio Events

  • GS_AudioEvent is now an abstract base, and event libraries hold a polymorphic list — the type dropdown offers every registered event kind.
  • GS_AudioEvent_Pool — a pool of sound assets, one picked at random per fire.
  • GS_AudioEvent_Noise — procedural noise with selectable colour and duration.
  • GS_AudioEvent_Sfxr — procedural chiptone driven by a pool of .sfxrprofile assets.
  • Shared machinery on the base: pooling, concurrency limits, re-fire suppression, distance settings, 3D tracking and spatialization back-end resolution.
  • Extension hooks for writing a new event source, with the asset hooks optional so generators need only three methods.
  • RerouteSounds re-points pooled and future instances when a mix target registers late.

SFXR Sound Profiles

  • New .sfxrprofile asset — 24 parameters describing one procedural sound.
  • Import from sfxr.me / jsfxr by pasting the Serialize JSON.
  • 27 profiles ship with the gem: 7 canonical presets and 20 named custom sounds.

Mixing and Mix Effects

  • MixEffectComponent — an ordered effect chain registered under a name, with a configurable output target.
  • 22 mix effect types: 7 biquad filters, Echo, Reverb, Binaural, 8 character and modulation effects, and 4 utility effects.
  • Named routing shared with volume channels, so a source targets either by name.
  • Order-independent wiring — a chain pointing at a target that does not exist yet resolves when it registers.
  • Runtime control: RerouteMixEffect, SetMixEffectParam, SetMixEffectParamOn, plus manual registration and wiring.

Spatialization

  • Steam Audio integration, vendored and loaded at runtime.
  • Per-voice HRTF binaural placement, recomputed each frame, replacing the built-in spatializer rather than stacking with it.
  • Distance attenuation and air absorption via Steam’s direct effect.
  • Bounded distance curve — the direct signal reaches true silence at max distance, and the reverb send eases to zero over the last quarter of the range.
  • HRTF interpolation modes, HRTF volume, and frame-size mode with an automatic match to the device period.

Audio Manager

  • GS_AudioProjectSettings reflected on the manager, making the component panel the configuration surface.
  • The authoritative listener now supports split targets — position from one entity, facing from another, for third-person games.
  • Listener target defaults to the manager entity with a warning when unset.
  • Accessor surface for GS_AudioPro: engine, node graph, endpoint, mixing buses, Steam Audio context, HRTF and frame size.
  • Spatial-simulator registration and reverb send, null in a base-only install.
  • Options apply targets for master volume and named volume channels.
  • The base manager no longer ticks.

Debug

  • GS_AudioImGuiDebugComponent — an Audio Mixer window with master and per-channel sliders.

Audio 0.6.0

Audio Event Graph

  • Visual node-based editor for authoring complex sound events using the gs_graphcanvas framework (DataFlowGraph topology).
  • Entry nodes (Start/Loop/Finish) for phase-gated audio lifecycle.
  • Source nodes: Aud_SoundNode, Aud_AudioPoolNode — single and pooled audio playback with volume, pitch, delay, looping, and 3D spatialization.
  • Filter nodes: LowPass, HighPass, BandPass, Notch, PeakingEQ, LowShelf, HighShelf — miniaudio filter processing.
  • Effect nodes: Aud_EchoNode, Aud_DelayNode.
  • Routing via gs_graphcanvas built-in IfNode and SwitchNode for conditional audio paths.
  • Aud_OutputNode terminal wiring to mixing bus.
  • Variable-driven sound control — runtime variable API for filter parameters, routing, and source selection.
  • AudioGraphTemplateCache — graph instance pooling and caching per asset path.
  • AudioSoundPool — ma_sound pooling with claim/release pattern, configurable pad and trim thresholds.
  • AudioFilterPool — filter node pooling by type.
  • Phase lifecycle management (Start/Loop/Finish) with TransitionToPhase().
  • Runtime API: PlayAudioGraph, AcquireAudioGraph, FireAudioGraph, StopAudioGraph, FinishAudioGraph, SetAudioGraphVariable*, SetAudioGraphLooping, SetAudioGraphEntity, SetAudioGraphPosition, StopAudioGraphFade.
  • 3D spatialization per-instance via AudioGraphSpatialMode (None, Position, Entity).

Audio 0.5.0

First official base release of GS_Audio.

Audio Manager

  • GS_AudioManagerComponent — audio engine lifecycle management, event library loading
  • AudioManagerRequestBus / AudioManagerNotificationBus
  • Master volume control and engine-level audio settings

Audio Events

  • AudioEventLibrary asset — pools of named audio events
  • GS_AudioEvent — pool selection, concurrent instance limiting, and 3D spatialization
  • AudioManagerRequestBus playback interface

Mixing & Effects

  • GS_MixingBus — mixing bus component with configurable effects chain
  • Filters, EQ, and environmental influence effects per bus

Score Arrangement

  • ScoreArrangementTrack — multi-layer music system
  • ScoreLayer — individual music layers toggled by gameplay state
  • TimeSignatures enum for bar-aligned transitions

Klatt Voice Synthesis

  • KlattVoiceSystemComponent — shared SoLoud engine, 3D listener management
  • KlattVoiceComponent — per-entity text-to-speech with phoneme mapping and segment queue
  • KlattVoiceRequestBus / KlattVoiceNotificationBus / KlattVoiceSystemRequestBus
  • Full 3D spatial voice audio with configurable voice parameters

2 - AudioPro Change Log

GS_AudioPro version changelog.

Logs


AudioPro 0.7.0

First release of GS_AudioPro, the premium half of the audio system. It requires GS_Audio and extends it.

Gem Architecture

  • GS_ProAudioManagerComponent subclasses the base Audio Manager and declares itself incompatible with it, so a project runs one or the other.
  • Pro attaches through the base gem’s accessor surface — engine, node graph, endpoint, mixing buses, shared Steam Audio context and HRTF — rather than reaching into internals.
  • GS_ProAudioSettings adds the geometry configuration alongside the base project settings.
  • Separate buses: AudioGraphRequestBus, AudioGraphPlayerRequestBus, AudioScoreRequestBus and the Klatt voice buses.
  • ScriptCanvas nodes under the GS_Play/GS_AudioPro category.

Audio Event Graph

  • The .audiograph visual editor, built on the gs_graphcanvas framework with a data-flow topology.
  • 31 node types: 4 sources, 7 filters, Echo and Reverb, 7 character and modulation effects, 4 utility effects, Mix and Split, three phase gates and the Output terminal.
  • AudioGraphLibrary (.agl) — named access to graphs, with a source-file picker.
  • AudioGraphPlayerComponent — drop-on playback with auto-play, spatialization and looping, and no handles to manage.
  • Preserve-until-release instance lifecycle: an owned instance quiesces to idle on stop and keeps its variables and configuration until explicitly released.
  • Full transport, variable, spatialization and state surface on AudioGraphRequestBus.
  • Node registration pinned against unity-build symbol stripping, so the launcher deserializes graphs.

Procedural Scoring

  • ScoreArrangementTrack — multi-layer scores with time signature, tempo and fade control.
  • AudioScoreRequestBus: play a score with a chosen layer set, and bring individual layers in and out at runtime.

Klatt Voice Synthesis

  • Formant text-to-speech with 3D spatial audio, backed by SoLoud and relayed into the audio graph through a custom node.
  • Voice profiles and phoneme maps as assets, with per-word pronunciation overrides.
  • Inline KTT tags for changing pitch, speed and waveform partway through a line.
  • Per-entity voice components with a segment queue and completion notifications.

Geometric Acoustics

  • Steam Audio scene and simulator integration, off by default behind a master switch.
  • Occlusion in raycast and volumetric modes, the latter giving partial occlusion at edges.
  • Listener-centric reflections with configurable wet mix, order and smoothing between rooms.
  • Reverb as a distance-independent send, so a room sounds consistent across its volume while the dry signal falls off.
  • Acoustic geometry components for authored volumes and O3DE Shapes.
  • 15 acoustic material presets plus a custom material, including soft barriers that transmit rather than block.
  • Parametric reverb on a worker thread with lock-free direct and occlusion values.

See Also

3 - Cinematics Change Log

GS_Cinematics version changelog.

Logs


Cinematics 0.6.0

Dialogue Editor — gs_graphcanvas Integration

  • Dialogue Editor rebuilt on the gs_graphcanvas framework (FlowGraph topology).
  • DialogueDatabaseEditorWindow — container editor with sequence sidebar, performer page, and system page via the full-window page system.
  • DialogueGraphDescriptor — systemId = "dialogue", variablesEnabled = true, fileExtension = ".dialogue".
  • DialogueGraphContext — dialogue-specific data type registration.
  • Editor nodes: Dlg_StartNode, Dlg_TextNode, Dlg_SelectionNode, Dlg_RandomNode, Dlg_EffectsNode, Dlg_PerformanceNode, Dlg_EndNode.
  • Container save model — multiple sequences in a single .dialoguedatabase file with OpenGraphFromAsset / CaptureGraphToAsset / ClearAllDocumentDirty.
  • Graph variable support for dialogue state tracking (flags, counters).
  • Runtime graph execution via GraphInstance and FlowGraphEvaluator in DialogueSequencerComponent.

Cinematics 0.5.0

First official base release of GS_Cinematics.

Cinematics Manager

  • GS_CinematicsManagerComponent — cinematic mode lifecycle (BeginCinematic / EndCinematic)
  • CinematicsManagerRequestBus / CinematicsManagerNotificationBus (EnterCinematic / ExitCinematic)
  • CinematicStageMarkerComponent — named world-space anchor, self-registers on activate

Dialogue Manager

  • GS_DialogueManagerComponent — active .dialoguedb asset ownership and performer registry
  • DialogueManagerRequestBus — StartDialogueSequenceByName, ChangeDialogueDatabase, RegisterPerformerMarker, GetPerformer
  • DialoguePerformerMarkerComponent — named NPC world anchor, PerformerMarkerRequestBus

Dialogue Sequencer

  • DialogueSequencerComponent — node graph traversal, runtime token management
  • DialogueUIBridgeComponent — routes active dialogue to whichever UI is registered, decouples sequencer from presentation
  • DialogueSequencerNotificationBus — OnDialogueTextBegin, OnDialogueSequenceComplete

Data Structure

  • DialogueDatabase (.dialoguedb) — named actors and sequences asset
  • DialogueSequence — directed node graph with startNodeId
  • ActorDefinition — actor name, portrait, and metadata
  • Node types: TextNodeData, SelectionNodeData, RandomNodeData, EffectsNodeData, PerformanceNodeData
  • SelectionOption — per-choice text, conditions, and connections

Conditions

  • DialogueCondition (abstract base) — EvaluateCondition()
  • Boolean_DialogueCondition — base boolean comparison
  • Record_DialogueCondition — checks GS_Save records with comparison operators
  • Polymorphic discovery: extend base class, no manual registration

Effects

  • DialogueEffect (abstract base) — DoEffect() / ReverseEffect()
  • SetRecords_DialogueEffect — sets GS_Save records during dialogue
  • ToggleEntitiesActive_DialogueEffect — activates or deactivates entities in the level
  • Polymorphic discovery: extend base class, no manual registration

Performances

  • DialoguePerformance (abstract base, AZ::TickBus::Handler) — DoPerformance() / ExecutePerformance() / FinishPerformance()
  • MoveTo_DialoguePerformance — interpolated movement to stage marker
  • PathTo_DialoguePerformance — navmesh path navigation to stage marker (requires RecastNavigation)
  • RepositionPerformer_DialoguePerformance — instant teleport to stage marker
  • Polymorphic discovery: extend base class, no manual registration

Dialogue UI

  • DialogueUIComponent — screen-space dialogue text, speaker name, and portrait display
  • WorldDialogueUIComponent — world-space speech bubble display
  • DialogueUISelectionComponent — screen-space player choice menu
  • WorldDialogueUISelectionComponent — world-space selection display
  • TypewriterComponent — character-by-character text reveal, configurable speed, OnTypeFired / OnTypewriterComplete
  • BabbleComponent — procedural audio babble synchronized to typewriter output

Localization

  • LocalizedStringId — key + default fallback text, Resolve() method
  • LocalizedStringTable — runtime key-value string lookup table

Dialogue Editor

  • Node-based in-engine GUI for authoring .dialoguedb assets and sequence graphs

Type Registry

  • DialogueTypeRegistry — factory registration for conditions, effects, and performances
  • DialogueTypeDiscoveryBus — external gems register custom types without modifying GS_Cinematics

4 - Environment Change Log

GS_Environment version changelog.

Logs


Environment 0.5.0

First official base release of GS_Environment.

Time Manager

  • GS_TimeManagerComponent — world time ownership, time of day control
  • TimeManagerRequestBus — SetTimeOfDay, SetTimePassageSpeed, GetTimeOfDay, GetWorldTime, IsDay
  • TimeManagerNotificationBus — WorldTick (per-frame), DayNightChanged (on threshold cross)
  • GS_EnvironmentSystemComponent — system-level environment registration

Sky Configuration

  • SkyColourConfiguration — data asset defining sky color at different times of day
  • Authored as an asset and assigned to the environment for day/night color blending

5 - Core Change Log

Changelog.

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.
  • .optionsprofile asset holding a polymorphic option list; multiple profiles stack and merge by key.
  • Four option types: toggle, slider, dropdown and colour picker.
  • OptionApplyTarget composition — 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.
  • .optionspreset asset holding values only, with automatic Custom resolution 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.
  • InputReactorRequestBus for feeding events, clearing state and querying values.
  • InputReactorNotificationBus emits 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.
  • OnBeginGame is 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 Noise utility: Perlin 1D/2D/3D, fractal multi-octave, and reflected layered noise stacks.
  • New Envelope utility: 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.
  • DebugLoggingHelper mix-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

  • FeedbackExchangeBus added to the contract layer.

Core 0.5.0

  • COOOOREEEEE

6 - Interaction Change Log

GS_Interaction version changelog.

Logs


Interaction 0.5.0

First official base release of GS_Interaction.

Pulsors

  • PulsorComponent — physics trigger volume that broadcasts typed pulse events
  • PulseReactorComponent — receives pulses and executes reactor types
  • PulseType (abstract base) — extensible pulse payload type
  • Built-in types: Debug_Pulse, Destruct_Pulse
  • PulseTypeRegistry — auto-discovery of all reflected pulse types

Targeting

  • GS_TargetComponent — marks an entity as a targetable object
  • GS_InteractTargetComponent — marks an entity as interactable
  • GS_CursorComponent — world-space cursor and proximity scan
  • GS_TargetingHandlerComponent — finds and locks the best interactable in range
  • GS_TargetingHandlerRequestBus / GS_TargetingHandlerNotificationBus

World Triggers

  • TriggerSensorComponent — base for all condition-side trigger sensors
  • WorldTriggerComponent — base for all response-side world triggers
  • Built-in sensors: InteractTriggerSensorComponent, PlayerInteractTriggerSensorComponent, ColliderTriggerSensorComponent, RecordTriggerSensorComponent
  • WorldTriggerRequestBus — trigger enable/disable interface
  • Sensors renamed from TriggerAction to TriggerSensor (2026-03)
  • 22 components total across all subsystems

7 - Juice Change Log

GS_Juice version changelog.

Logs


Juice 0.5.0

First official base release of GS_Juice. Early Development — full support planned 2026.

Feedback System

  • FeedbackEmitter — component that plays authored feedback motions on its entity
  • FeedbackMotionAsset — data asset containing one or more feedback tracks
  • FeedbackMotion — runtime instance wrapper for a FeedbackMotionAsset
  • FeedbackMotionTrack — domain base class extending GS_Core’s GS_Motion system

Feedback Tracks

  • FeedbackTransformTrack — drives position, scale, and rotation offsets (screen shake, bounce)
  • FeedbackMaterialTrack — drives opacity, emissive intensity, and color (flash, glow, pulse)

PostProcessing

  • Planned for future release. Not yet implemented.

8 - Performer Change Log

GS_Performer version changelog.

Logs


Performer 0.5.0

First official base release of GS_Performer. Early Development — full support planned 2026.

Performer Manager

  • GS_PerformerManagerComponent — performer registration and name-based lookup
  • PerformerManagerRequestBus
  • GS_PerformerSystemComponent — system-level lifecycle component

Skin Slots

  • PerformerSkinSlotComponent — manages a named visual slot on a character entity
  • SkinSlotHandlerComponent — handles asset swapping for a given slot
  • PerformerSkinSlotsConfigProfile — asset class defining slot configurations
  • SkinSlotData / SkinSlotNameDataPair — slot data types

Paper Performer

  • PaperFacingHandlerBaseComponent — base for billboard-style rendering handlers
  • PaperFacingHandlerComponent — orients a 2.5D billboard character to face the camera correctly

Locomotion

  • VelocityLocomotionHookComponent — reads entity velocity and drives animation blend tree parameters automatically

Head Tracking

  • Procedural head bone orientation toward a world-space look-at target

Babble

  • BabbleComponent — generates procedural vocalisation tones synchronized to GS_Cinematics typewriter output
  • BabbleToneEvent / SpeakerBabbleEvents — tone data structures per speaker identity

9 - PhantomCam Change Log

GS_PhantomCam version changelog.

Logs


PhantomCam 1.0.0

Major refactor. The “pick one of N subclass cams” model is replaced by a single GS_PhantomCameraComponent that hosts a composable Body → Aim → Reposition additives → Noise additives stage pipeline. A new channel system scales projects from single-cam through 4-player split-screen co-op without changing the per-cam authoring surface.

Stage pipeline (replaces subclass cams)

  • New IBodyStage / IAimStage / IAdditiveStage interfaces — stages are reflected polymorphic types picked from the editor’s type-picker.
  • Body variants: DefaultFollowBody, OrbitBody, DynamicOrbitBody, LeadingFollowBody, TrackBody.
  • Aim variants: DefaultLookAtAim, ClampedLookAim (plus extensions from gs_performer).
  • Additive variants: CollisionReposition, OcclusionReposition (stub), TugAimListener, TugBodyListener, PerlinNoise, ImpulseNoise.
  • Three staged pose snapshots — m_desiredPose (pre-Reposition), m_stablePose (post-Reposition pre-Noise), m_finalPose (committed).

Retired components

  • ClampedLook_PhantomCamComponent → replaced by ClampedLookAim aim stage variant.
  • StaticOrbit_PhantomCamComponent → replaced by OrbitBody body stage variant.
  • Track_PhantomCamComponent → replaced by TrackBody body stage variant.
  • Their legacy doc URLs redirect to the new stage variant pages via Hugo aliases.
  • AlwaysFaceCameraComponent is unchanged.

Channels and instancing

  • m_enableInstancedChannels master gate on GS_CamManagerComponent. Three authoring tiers (single cam → single-player rig → multi-channel).
  • New CamChannelScope enum (Local / AllChannels / TrueUnique) authored per phantom cam.
  • ChannelStampComponent — runtime plumbing for stamp-walk channel resolution. Author never sees it.
  • Per-channel rig spawning, per-channel target binding via SetChannelTarget(channelId, entity).
  • Cross-channel cinematic dispatch via DispatchCamToCamCore / ReleaseCamCoreDispatch.
  • Active main-view selection via SetActiveChannel / SetActiveCamCore.
  • Channel-aware SettingNewCamOnChannel notification replaces legacy SettingNewCam when instancing is on.

Blend Profiles

  • New asset extension .camblendprofile (registered through PhantomCamDataAssetsSystemComponent).
  • Three new fields on PhantomBlend entries:
    • BlendShape — Linear / Cylindrical / Spherical (powered by the new Orbital Solver).
    • PivotSource — Source / Destination / Shared for cross-cam blend pivot resolution.
    • InheritState — opt-in cam-to-cam pose handoff.
  • PhantomBlend reflected at Version 4 with version converter for pre-v3 and pre-v4 assets.

State Inheritance

  • Universal CamPoseSnapshot pose-handoff struct.
  • Per-body Get / Adopt implementations — Orbit Get-only, DynamicOrbit full ANGULAR+POSITION, LeadingFollow facing-seeded standoff, Track path-project with rejection threshold.
  • Handoff runs before StartBlend so the destination’s body adopts the seed pose before the blend captures source / destination poses.

Mid-blend Interrupt Correction

  • New m_interruptCorrection field on Cam Core (default 0.03).
  • Y-blend correction window between the cam’s snapshot-at-interrupt and the new blend’s natural pose at the velocity-matched curve point.
  • Replaces the legacy BlendFromCore hard-anchor approach.

Group Targets

  • New GroupTargetComponent — weighted-centroid focal entity. Cams point at it like any other target.
  • Centroid modes: WeightedMean / BoundingBoxCenter / BoundingSphereCenter with m_weightBias blend.
  • Orientation modes: Identity / SpreadAxis / WeightedAverageForward.
  • Registered globally via Cam Manager (RegisterGroupTarget / FindGroupTargetByName).
  • Pair with shared TrueUnique cams to trigger OnAllChannelsActivatedSharedCam on collapse.

Tug Fields

  • Three-component decoupled spatial reposition system — CameraTugVolumeComponent, CameraTugSourceComponent, TugFieldProxyComponent.
  • PhysX layer-gated (TugProxy ↔ TugField collision-group pair). No central registry.
  • Listener stages TugAimListener and TugBodyListener consume engagements in the Reposition phase.

Noise & Impulse

  • New asset extension .camnoiseprofile — six-axis layered Perlin noise stacks. Starter Telephoto_Mild and Telephoto_Intense profiles ship in gs_phantomcam/Assets/Noise Profiles/.
  • PerlinNoise additive — continuous handheld feel.
  • ImpulseNoise additive — event-triggered burst, ADSR-gated. Fire via TriggerCameraImpulse(strength) on the cam.

Orbit Profiles

  • New asset extension .camorbit — CameraOrbitShape with three bands (low / mid / high) and a Roundness power-bulge family slider (diamond → sphere → cube). Arc-length reparameterization for constant spatial speed.
  • Consumed by DynamicOrbitBody.

Camera Input Reader

  • New GS_CameraInputReaderComponent implementing the OrbitInputProvider bus.
  • Per-axis Axis vs Delta style for joystick / mouse handling.
  • ResetPendingInput invariant prevents accumulated mouse delta “bursts” after dormancy.

Influence Fields

  • AddCameraInfluence signature changed — now (sourceEntity, targetEntity, camName, influence). Influences are routed to the channel that owns the target entity; influences whose target isn’t channel-bound are silently dropped.

Orbital Solver (GS_Core)

  • New GS_Core::Math utility — BlendPositionAroundPivot, BlendPoseAroundPivot, ResolveCrossCamPivot. Powers the new blend shapes, DynamicOrbitBody damping, and LeadingFollowBody band response. See Orbital Solver.

PhantomCam 0.5.0

First official base release of GS_PhantomCam.

Cam Manager

  • GS_CamManagerComponent — camera system lifecycle, active camera tracking
  • CamManagerRequestBus / CamManagerNotificationBus
  • GS_PhantomCamSystemComponent — system-level registration

Phantom Cameras

  • GS_PhantomCameraComponent — virtual camera with follow target, look-at, FOV, and priority
  • PhantomCameraRequestBus
  • PhantomCamData — camera configuration data structure
  • Priority-based switching: highest priority active phantom camera drives the real camera

Cam Core

  • GS_CamCoreComponent — reads from the active phantom camera each frame and applies to the engine camera
  • CamCoreRequestBus / CamCoreNotificationBus

Camera Behaviors

  • ClampedLook_PhantomCamComponent — look-at with clamped angle limits
  • StaticOrbitPhantomCamComponent — fixed-distance orbit around a target
  • Track_PhantomCamComponent — follows a spline or path track
  • AlwaysFaceCameraComponent — keeps an entity billboard-facing the active camera

Blend Profiles

  • GS_PhantomCamBlendProfile — asset defining camera transition easing and duration
  • Smooth interpolation between camera positions on priority switch

Influence Fields

  • GlobalCameraInfluenceComponent — global persistent camera modifier
  • CameraInfluenceFieldComponent — spatial zone that modifies camera behavior on entry
  • CamInfluenceData — influence configuration data (offset, FOV shift, tilt)

10 - UI Change Log

GS_UI version changelog.

Logs


UI 0.5.0

First official base release of GS_UI.

UI Manager

  • GS_UIManagerComponent — canvas lifecycle management, focus stack, startup focus assignment
  • UIManagerRequestBus
  • Single-tier page navigation: Manager → Page (no hub layer)
  • GS_UIPageComponent — root canvas registration, nested page management
  • NavigationReturnPolicy — RestoreLast or AlwaysDefault back navigation behavior
  • FocusEntry — focus state data for page transitions
  • Cross-canvas boundary navigation support
  • Companion Component Pattern: domain-specific page logic lives on companion components that react to page bus events

UI Interaction

  • GS_ButtonComponent — enhanced button with hover and select UiAnimationMotion support
  • GS_UIInputInterceptorComponent — input capture and blocking for UI canvases
  • GS_UIInputProfile — input mapping configuration for UI contexts

UI Animation

  • UiMotionTrack (domain base) — extends GS_Core’s GS_Motion system
  • 8 concrete tracks: UiPositionTrack, UiScaleTrack, UiRotationTrack, UiElementAlphaTrack, UiImageAlphaTrack, UiImageColorTrack, UiTextColorTrack, UiTextSizeTrack
  • UiAnimationMotionAsset — authored animation asset
  • UiAnimationMotion — runtime instance wrapper

Load Screen

  • GS_LoadScreenComponent — manages load screen display during level transitions

Pause Menu

  • PauseMenuComponent — pause state management and pause menu page coordination

Removed

  • GS_UIWindowComponent — removed entirely
  • GS_UIHubComponent / GS_UIHubBus — deprecated legacy layer

11 - Unit Change Log

GS_Unit version changelog.

Logs


Unit 0.6.0

Unit Action Graph (Under Construction)

  • HFSM editor built on the gs_graphcanvas framework (StateMachineGraph topology).
  • UnitActionGraphDescriptor — topology = StateMachineGraph, variablesEnabled = true, transitionConditions = true, parallelLayers = true.
  • UnitActionEditorWindow — multi-layer container editor with layer sidebar and priority configuration.
  • Perimeter connection rendering — engine-level ConnectionCurveType::Perimeter for state machine arrow visuals.
  • Node types: UAG_EntryNode, UAG_StateNode, UAG_CompoundStateNode (nested sub-state-machine).
  • TransitionDescriptor — per-connection priority and polymorphic condition list, auto-managed on connection add/remove.
  • TransitionCondition base class with built-in conditions: VariableCompareCondition, TimeElapsedCondition, VariableTrueCondition.
  • Transition inspector — click connections to edit priority and conditions; node selection shows outgoing transition summary.
  • StateMachineEvaluator — tick-based runtime with OnEnter/OnTick/OnExit lifecycle and __stateTime auto-variable.
  • ParallelLayerEvaluator — wraps multiple evaluators with shared variable context for simultaneous layer evaluation.
  • Not yet implemented: GS_UnitContext integration, compound state sub-graph editing, tag-based transitions, GS_CharacterActionComponent bridge.

Unit 0.5.0

First official base release of GS_Unit.

Unit Manager

  • GS_UnitManagerComponent — unit registration and lifecycle tracking
  • UnitManagerRequestBus

Unit Component

  • GS_UnitComponent — unit identity and state component
  • UnitRequestBus

Controllers

  • GS_UnitControllerComponent — abstract controller base, possess/release pattern
  • GS_PlayerControllerComponent — human player possession
  • GS_AIControllerComponent — AI-driven possession
  • GS_PlayerControllerInputReaderComponent — reads hardware input and routes to the possessed unit

Input Pipeline

  • 3-stage architecture: controller entity reads hardware → routes to InputDataComponent on the unit → reactor components act on the structured state
  • InputDataRequestBus / InputDataNotificationBus
  • GS_InputReactorComponent — reacts to binary input states (button/action)
  • GS_InputAxisReactorComponent — reacts to axis input values (sticks, triggers)

MoverContext

  • GS_MoverContextComponent — transforms raw input into movement intent, manages active mode and profiles
  • MoverContextRequestBus / MoverContextNotificationBus
  • Mode-driven movement: one named mode active at a time; only the mover and grounder matching that mode run

Movers

  • GS_MoverComponent — mode-aware mover base class
  • GS_PhysicsMoverComponent — physics-driven movement via PhysX
  • GS_3DFreeMoverComponent — unconstrained 3D free movement
  • GS_3DSlideMoverComponent — slide-and-collide surface movement

Grounders

  • GS_PhysicsRayGrounderComponent — raycast-based grounding for the “Free” movement mode

Movement Influence

  • MovementInfluenceFieldComponent — spatial zone that modifies unit movement within its bounds
  • GlobalMovementRequestBus — global movement modifier interface

Profiles

  • GS_UnitMovementProfile — per-mode speed, acceleration, and movement parameter configuration

12 - Docs Change Log

Updated changelog.

Logs


Docs 1.1.0

New: GS_GraphCanvas Framework Reference

  • Added framework/graphcanvas/ section — full reference for the gs_graphcanvas visual graph editor framework.
  • Descriptor & Topology — GraphSystemDescriptor fields, topology decision matrix, GraphContext data types.
  • Nodes — BaseNode, slot macros, auto-registration, rapid creation macro, built-in nodes.
  • Editor Window — MainWindow features, virtual hooks, page system, container editor pattern.
  • Variables — Variable panel, Get/Set nodes, convert-to-reference, drag-to-canvas.
  • Execution Engines — FlowGraphEvaluator, DataFlowGraphEvaluator, StateMachineEvaluator, GraphExecutionContext, GraphInstance.

New: Audio Event Graph

  • Added framework/audio/audio_event_graph/ — usage docs for the visual sound event editor.
  • Node catalog, phase lifecycle, variable control, extending with custom nodes, runtime API reference.
  • Updated GS_Audio index page with Audio Event Graph section.

Updated: Dialogue Editor

  • Rewrote framework/cinematics/dialogue_system/dialogue_editor/ from skeleton to full usage documentation.
  • Database model, editor layout, sequences, performers, node catalog, conditions, extending, variables.

New: Unit Action Graph (Under Construction)

  • Added framework/unit/unit_action_graph/ — HFSM editor docs marked under construction.
  • Multi-layer model, perimeter connections, nodes, transitions, conditions, parallel layers, current status.
  • Updated GS_Unit index page with Unit Action Graph section.

New: Building a Graph Tool Tutorial

  • Added learn/lessons/building_a_graph_tool/ — step-by-step guide for creating a custom graph editor.
  • Covers topology selection, descriptor, context, nodes, editor window, system component, runtime, and pitfalls checklist.

New: Dialogue System Setup Tutorial

  • Added learn/lessons/dialogue_setup_tutorial/ — 6-step tutorial for setting up a complete dialogue pipeline.
  • Covers database creation, conversation authoring, runtime wiring, UI display, player choices, conditions and effects.

Removed

  • Removed learn/lessons/audio_event_graph_tutorial/ — replaced by Dialogue System Setup tutorial.

Site

  • Added SVG light/dark theme support.

Docs 1.0.0

  • Welcome page finalized.

  • Get Started and Index sections finalized.

  • No missing pages. Final organization.

  • Patterns Complete.

  • Feature List, Glossary fully updated.

  • Get Started T1 page filled.

  • Index T1 page filled.

  • Final Logs format and arrangement.

  • Print page + print section links.

  • Homepage complete.

  • About Us complete.

  • Product pages complete.


Docs 0.9.0

Full first implementation of direct documentation formatting and content. With this release we have our first fully working catalogue of featuresets, functionality, and API.

Feature Roots are called “Tier 2”. They are overviews with quick indexes for their subsystems. Content Pages are called “Tier 3”. They carry the body and substance of any given feature or subfeature. Nested pages below these tiers are combinations of both T2, and T3, depending on the depth an overview needs to be to segue into the child pages.

Established base organization of information.

  • Get Started is very thin and for user onboarding.
  • Index replaces Get Started for regular users. Allowing for easy navigation across categorical necessities for users.
  • Basics is conceptual and script driven knowledge for the framework.
  • Framework API is the engineering and veteran user knowledgebase.
  • Learn is for Youtube video funnelling, or text driven Guide access.

Cross linking is prioritized to move users to the knowledge they seek, asap.

Agentic Guidelines is an LLM based seed for how to use GS_Play and navigate the documentation for information access. The website has been optimized behind the scenes for LLM scraping.

Basics

Basics Implemented.

  • Implemented Core
  • Implemented Audio
  • Implemented Cinematics
  • Implemented Environment
  • Implemented Interaction
  • Implemented Juice
  • Implemented Performer
  • Implemented PhantomCam
  • Implemented UI
  • Implemented Unit

Framework API

Framework API Implemented.

  • Implemented Core
  • Implemented Audio
  • Implemented Cinematics
  • Implemented Environment
  • Implemented Interaction
  • Implemented Juice
  • Implemented Performer
  • Implemented PhantomCam
  • Implemented UI
  • Implemented Unit