A downloadable asset pack

Buy Now$30.00 USD or more

The plugin provides systems that manage the progression of time in your game world updating a TimeState with game seconds, DateTime, and TimeOfDay. A key point of the plugin is that is that the time scales to your game world with a settable game speed, a customizable calendar system and time scale resource for having full control over how the flow of time progresses in your game. By maintaining the TimeState and world AgeState, other objects can hook into the data to trigger any time or object age based events you need through signals.

Tutorials & Updates Playlist

1.0.1 Full Video Setup Guide

0.4.1 to 1.0.0 Upgrade Tutorial

World Time Playlist on YouTube

Coming Soon

  • 1.0 Full Demo & Setup Video

Key focus of 1.0.0 was bringing the data of the plugin into State resources.  Majorly improved over the previous releases is the introduction of the TimeState and AgeState resources. Pulling from the idea of a signal / event bus, these state resources also store the current and in some cases historical values of Time and Age within the game world. By sharing a world TimeState and AgeState between objects that want to reference the data, you can reference the data as it is updated with values and signals are emitted without ever connecting directly to the GameTimeSystemDayNightCycleSystem, or WorldAgeSystem.

Here's a preview of the main systems and components in this package


There are currently 3 major systems that handle the processing of data and emission of signals through the Time State and AgeState resources.

  1. Game Time System - Tracks the time and date as real world time progresses by converting it to game time changes and storing game seconds and DateTime data on the TimeState which emits signals as it's values are updated so you can easily create time based events.
  2. Day Night Cycle System - Uses the HoursTime from the current DateTime in order to determine what time of day it is. After calculating a new TimeOfDay, it is emitted on the TimeState through time_of_day_changed signals. This is useful for game events or lighting that wants to rely on the TimeOfDay as a triggering event like switching the lighting color with TimeOfDayDirectionalLight2D nodes.
  3. World Age System  - After a set amount of game time passing, the world age will increase and emit ageing signals on the world AgeState. This can be used by components like AgeingComponent to age other objects in the game and replace them with new scenes through a nested SceneReplacement resource (switch out a young character to an adult one with different game mechanics for instance)

Useful Components that React to Game Time

  • TimeOfDayDirectionalLight2D - Light that reacts in color and intensity as the time of day transitions from one to the next one.
  • AddAfterGameSecondsComponent - Calls add(amount : float) on another node after game seconds elapsed. Handy for replenishing depleted resources in the game as time progresses.
  • AddWhenAgeingComponent - Calls add(amount : float) on another node after the current age on an AgeData resource increases. Can be another way of replenishing a resource or increasing some other statistic as age milestones are reached in your game.

The plugin README.md has details about setting up each system with relevant signal bus resource objects and components to receive the data from for game play mechanics.

Assets Used in Screenshots & Videos (Not Included in Plugin)

Purchase

Buy Now$30.00 USD or more

In order to download this asset pack you must purchase it at or above the minimum price of $30 USD. You will get access to the following files:

world_time_1.0.2.zip 40 kB
world-time-dev-project-1.0.2.zip 1.3 MB

Development log

Leave a comment

Log in with itch.io to leave a comment.