Typical Use Case
1. Long Term Quests
This example uses the service of goals to publish several long-standing player challenges to illustrate the basic use of simple goals. You can also build your achievement system recording to this case, which will be quite similar
1.1 Achieve data dependencies
Achieve Data Source: Player Data
Player data keys:
Key Name | Remark |
---|---|
wins_battle_royale_mode | The cumulative number of times a player has victory in Battle Royale mode. |
number_enemies_killed | Player's cumulative number of kills in all game modes. |
number_headshots | Player's cumulative number of headshots. |
Add the above keys to the KV Data Template and add code to the game to update this data for the player.
1.2 Goals design
Goal Chicken Mania
Field Name Data Goal Name Chicken Mania Goal Type Simple Algorithm Type Absolute Value Achieve Data Player Data(wins_battle_royale_mode) Achieve Data Value 666 Rewards Game Coin * 6666 Tags quest, long term Goal This man's nickname is Butcher
Field Name Data Goal Name This man's nickname is Butcher Goal Type Simple Algorithm Type Absolute Value Achieve Data Player Data(number_enemies_killed) Achieve Data Value 666 Rewards Game Coin * 8888 Tags quest, long term Goal He is not CHEATING
Field Name Data Goal Name He is not CHEATING Goal Type Simple Algorithm Type Absolute Value Achieve Data Player Data(number_headshots) Achieve Data Value 666 Rewards Game Coin * 9999 Tags quest, long term
1.3 Schedule design
Create a schedule named Long-Term Quests and add a long term available period to it. And then add the created goals to the available period.
2. Daily Updated Quests
This example shows how to create periodic challenges with Goals.
2.1 Achieve data dependencies
Use the same achieve data as in Long Term Quests.
Achieve Data Source: Player Data
Player data keys:
Key Name | Remark |
---|---|
wins_battle_royale_mode | The cumulative number of times a player has victory in Battle Royale mode. |
number_enemies_killed | Player's cumulative number of kills in all game modes. |
number_headshots | Player's cumulative number of headshots. |
Add the above keys to the KV Data Template and add code to the game to update this data for the player.
2.2 Goals design
In daily quests, the game focuses on what the player completes during the day, so we use the Increment Value algorithm when creating goals.
Goal Chicken Mania
Field Name Data Goal Name Chicken Mania Goal Type Simple Algorithm Type Increment Value Achieve Data Player Data(wins_battle_royale_mode) Achieve Data Value 6 Rewards Game Coin * 20 Tags quest, daily Goal This man's nickname is Butcher
Field Name Data Goal Name This man's nickname is Butcher Goal Type Simple Algorithm Type Increment Value Achieve Data Player Data(number_enemies_killed) Achieve Data Value 66 Rewards Game Coin * 10 Tags quest, daily Goal He is not CHEATING
Field Name Data Goal Name He is not CHEATING Goal Type Simple Algorithm Type Increment Value Achieve Data Player Data(number_headshots) Achieve Data Value 16 Rewards Game Coin * 25 Tags quest, daily
2.3 Schedule design
Create available periods with the button Batch Add Periods. In the example below, 7 available periods will be created, each starting at 8 am and lasting for 1 day.
3. Battle Pass
The battle pass usually consists of two closely related systems,
- Quest system. During the opening of the battle season, the game offers various forms of quests for players to challenge. By completing these quests, players will gain the Exp(or other names of intermediate currencies) needed to upgrade their pass.
- Pass system. Players earn one or more passes for free or paid, upgrade their pass by completing quests to gain experience points and earn pass tiers rewards.
The following section describes how to construct a quest system and pass system using the service of goals.
3.1 Build Quest System
The two examples in the previous article have described how to use goals to construct a quest, so instead of going over the details here, here are some points that may be helpful to you.
- It is recommended to use virtual currency to characterize Exp so that it can be used directly to upgrade the player's battle pass.
- You need to create separate schedules for quests with different publish cycles.
- If you want to set multiple levels of goals for the same challenge, try using a hyper goal instead of multiple simple goals.
3.2 Build Pass System
3.2.1 Achieve data dependencies
Achieve Data Source | Currency Code | Currency Name | Initial Deposit |
---|---|---|---|
Virtual Currency | EXP | Exp | 0 |
3.2.2 Goal design
Create a hyper goal for each season to model the battle pass system.
Basic information
The incremental algorithm is used because we want this hyper-goal value to focus on the player's exp acquisition during the season. We can reuse this hyper goal in a new season without resetting the player's exp.
- Name: battle_pass_season_2022
- Type: Hyper
- Achieve Data: Virtual Currency (EXP)
- Algorithm Type: Increment Value.
Passes
The number of passes depends on your game design. In this example, we create two passes:
- Default: the Default Pass will be activated for players by default. All players can benefit from this pass.
- Platinum: only those players who have purchased
item_4ob8ychk
can benefit from the Platinum Pass.
Tiers
It is recommended to use the file import feature to create tiers for battle pass batches, so that the data can be easily arranged in bulk.
3.2.3 Schedule design
Create a schedule to publish your battle pass. You need to create the available period, assign the goal, etc. Please refer to the doc for detailed operation guidelines. So instead of going over the details here, here are some points that may be helpful to you:
- Both goal and schedule can be multiplexed across multiple battle seasons. You just need to create an available period for each season in the schedule.
- You can publish the schedule before the first available period has taken effect. By doing so, the game client will be able to tell players when the battle season will be available but avoid them from experiencing the battle season content early.