Energy is any resource that can be used to limit the number of times a player can perform an action in a game. For example, a player may have a limited number of lives, and each time they die they lose a life. When they run out of lives, they can no longer play the game until they have been given more lives. This can be done by watching an ad, donations, or by waiting for a period of time.
The Hiro GDK enables you to manage energy in your game. You can define multiple energy types, each with their own configuration. Energy amounts are stored per user, and the real-time value of the current energy amount is computed on get or spend. Players can spend one or more energy amounts and return all current energy values.
Customization parameters #
The following JSON represents the customization parameters you can use to configure the default user experience for the energy system.
The JSON schema defines an
energies object which must contain an individual object for each energy you wish to define in the system. You can configure as few or as many energy types as needed for your desired gameplay.
Each energy is keyed by name and may define the following:
|The initial amount of this energy a user should start with.|
|The maximum amount of this energy a user can possess at any time.|
|The amount of this energy refilled after each interval (defined in |
|The time in seconds it takes for this energy to refill by |
|An object that defines what rewards a player should receive once they complete this achievement.|
|An array of collectables the user should receive as a reward.|
Initializing the energy system #
The energy system relies on the Nakama System and the Economy System, both must be passed in as dependencies via the constructor.
Subscribing to changes in the energy system #
You can listen for changes in the energy system so that you can respond appropriately, such as updating the UI, by implementing the appropriate interface.
Refreshing the energy system #
To ensure the energy system has the latest information from Nakama you can refresh it.
Listing available energy #
You can list the available energies for a user.
Spending energy #
You can spend energy as a user, either as a single energy at a time or as multiple at once.