GS_Environment

World time and environmental systems for GS_Play — time-of-day progression, day/night cycle management, and data-driven sky configuration.

GS_Environment manages the living world — the passage of time, the shift between day and night, and the visual appearance of the sky. It provides a singleton time authority that other systems subscribe to for world tick events and phase-change notifications, decoupling every time-dependent system from managing its own clock. Sky presentation is data-driven through configuration assets.

For architecture details, component properties, and extending the system in C++, see the GS_Environment API.


Quick Navigation

I want to…FeatureAPI
Control world time, time passage speed, or respond to day/night changesTime ManagerAPI
Define how the sky looks at different times of day with data assetsSky ConfigurationAPI

Installation

GS_Environment requires GS_Core and the Atom renderer. Add both to your project.

For a full guided walkthrough, follow the Simple Project Setup guide.

 

Quick Installation Summary

  1. Enable the GS_Environment gem in your project configuration.
  2. Create a Time Manager prefab and add it to the Game Manager’s Managers list.
  3. Create SkyColourConfiguration assets for your sky appearance.

Time Manager

The Time Manager is the singleton authority for world time. It advances time each tick according to a configurable speed, exposes query and control methods, and broadcasts WorldTick and DayNightChanged events so any system can react to time progression without polling.

Time Manager API


Sky Configuration

The Sky Configuration system defines how the sky looks at different times of day through data assets. SkyColourConfiguration assets hold colour values for dawn, midday, dusk, and night — swappable per-region, per-weather, or per-level without modifying entity hierarchies.

Sky Configuration API


See Also

For the full API, component properties, and C++ extension guide:

For step-by-step project setup:


Get GS_Environment

GS_Environment — Explore this gem on the product page and add it to your project.