Advanced¶
Game Creator includes a collection of tools used throughout the entire ecosystem. This section briefly goes over all of them and provides a link to each tool's page, where they are explained in-depth, with use cases and examples.
Advanced Level
This section of the Documentation assumes you are familiar with Unity and Game Creator. Some sections may require you to also have some coding knowledge.
Audio¶
Game Creator has a 4 channel audio system that makes it very easy to change volume settings and play both diegetic and non-diegetic sound effects.
Learn about Audio
Signals¶
Communication between game objects is handled using the visual scripting tools, such as Triggers and Actions. However, there may be cases where the developer needs to respond to more tailored events that don't exist in Game Creator.
The Raise Signal instruction broadcasts a message with a specific identifier and any Trigger(s) listening to that specific id will be executed. To receive a signal message, use the On Receive Signal and specify the identifier.
Mark as Favorite
To avoid misspelling mistakes you can mark a Signal name as favorite, which can be used selecting them from the dropdown button on the right side. To unfavorite a name, simply click again on the star button.
Data Structures¶
Advanced Data Structures (also known as ADS) are generic data structures that help better perform certain tasks.
- Unique ID: Uniquely identifies an object with a serializable Guid.
- Singleton: It ensures there's zero or one instance of a class at any given moment and its value is globally accessible.
- Dictionary: A serializable dictionary.
- Hash Set: A serializable Hash Set.
- Link List: A serializable Linked List.
- Matrix 2D: A serializable 2D matrix.
- Tree: Generic structure that allows to have acyclic parent-child depenedencies between multiple class instances.
- Ring Buffer: This structure is similar to a generic list, but sequentially accessing its elements yields in an infinite circular loop, where the last element connects with the first one.
- State Machine: A data structure that allows to dynamically manipulate a state machine and define logic on each of its nodes independently.
- Spatial Hash: An advanced data structure that allows to detect collisions of any radial size inside an infinite spatial domain with an O complexity of log(n).
Variables API¶
Local Variables and Global Variables can be modified at runtime using the exposed API. Note that Local variables are accessed via their component and Global variables require to be accessed through a singleton manager that contain their runtime values.
Learn how to use the Variables API
Properties¶
Properties are a core feature that allows to dynamically access a value. They are usually displayed as a drop-down menu and allow to retrieve them depending on the option selected.
For example, a PropertyGetPosition
allows to get a Vector3
that represents a position, from different sources; A constant value, the Player's position, the main camera's position, from a Local Variable, etc...
Learn more about Properties
Saving & Loading¶
Game Creator comes with a fully extensible save and load system that allows to easily keep track of the game progress and restore its state at any time. All that needs to be done is to implement an interface called IGameSave
and subscribe/unsubscribe inside the OnEnable()
and OnDisable()
methods respectively.
There is a special component called Remember that allows to cherry-pick the bits of data you want to save when saving a game.
Tweening¶
Game Creator comes packged with a powerful Tweening (or automatic frame interpolation, from in-between-ing) system. It allows to fire & forget a command that creates a tween between a starting value and end value. The transition can be linear or an easing function can be specified.
Learn more about Tweening
Examples and Templates¶
Game Creator and all modules come with a collection of examples and templates ready to be used on your games and applications. Other developers can leverage this feature in order to create reusable examples that can be installed/uninstalled across multiple projects or share them if you are a module developer using the Example Manager window.
Learn more about Creating custom Examples
Domain Reload¶
Game Creator supports skipping domain reloading, which reduces the time it takes for Unity to enter and exit play-mode.
Make sure Enter Play Mode Options is ticked and the Reload Domain option is disabled.