示例教程 BossRoom
示例教程 BossRoom
本教程将以 BossRoom 为例,通过配置游戏的核心参数,如英雄血量、怪物血量、技能攻击力等,来展示 Remote Config 的配置步骤。
1. 准备工作
创建 一个 UOS APP,并开启 Remote Config 服务。
创建完成后,点击「在线体验」进入 BossRoom 游戏中。该游戏将使用当前 UOS APP 的 Remote Config 中的配置项来控制游戏核心参数。
未配置时,游戏将使用默认配置。默认情况下,游戏中每位冒险家的 「第一技能」 的攻击力为 10,小怪的血量为 20,也就是只需要 「两次攻击命中」 就可以消灭小怪。

接下来,我们通过修改配置来改变游戏难度。
2. 创建配置(Config)
在 UOS APP 配置页中,点击 Remote Config 中的配置管理,点击 「立即创建」。
创建名称为 Character_Imp_BaseHP (对应小怪的血量)的配置项,类型选择 INT,值为 10。
此时,在「在线体验」中,重新开始游戏,则只需要 「一次攻击」 就能消灭小怪。
3. 创建覆盖(Override)
切换到 「覆盖(OVERRIDE)」页面,点击立即创建。
填写 Override 的基本信息、目标玩家、内容和时间表。首先填写名称、描述和优先级等内容。
Expr 条件设置为 true,并填写玩家覆盖比例为 100。
选择 Character_Imp_BaseHP 配置项,填写覆盖值为 100。
采用默认的立即生效且永久有效的配置。点击保存,完成创建。
启用刚刚创建的 Override 项。
此时,在「在线体验」中,重新开始游戏,则需要 「十次攻击」 才能消灭小怪。
4. 玩转 BossRoom
进行到这里,你已经完成了 Remote Config 核心功能 「配置」 和 「覆盖」 的使用。
如果你想要对 BossRoom 进行更细致的配置,获得更有趣的游戏体验,可以使用完整的参数配置。
创建名称为 Character 的配置项,类型选择 JSON,初始值如下:
[
{
"Type": "Imp",
"BaseHP": 10,
"Skill1": {
"Amount": 15
}
},
{
"Type": "VandalImp",
"BaseHP": 100,
"Skill1": {
"Amount": 15,
"Range": 8
},
"Projectiles": [
{
"Damage": 5
}
]
},
{
"Type": "ImpBoss",
"BaseHP": 1000,
"Skill1": {
"Amount": 30
},
"Skill2": {
"Amount": 200
}
},
{
"Type": "Tank",
"BaseHP": 1200,
"Skill1": {
"Amount": 10
}
},
{
"Type": "Archer",
"BaseHP": 900,
"Skill1": {
"Projectiles": [
{
"Damage": 10
}
]
},
"Skill2": {
"Projectiles": [
{
"Damage": 5
},
{
"Damage": 10
},
{
"Damage": 15
}
]
},
"Skill3": {
"Amount": 7,
"Range": 20
}
},
{
"Type": "Mage",
"BaseHP": 800,
"Skill1": {
"Projectiles": [
{
"Damage": 10
}
]
},
"Skill2": {
"Amount": -250
}
},
{
"Type": "Rogue",
"BaseHP": 1000,
"Skill1": {
"Amount": 10
},
"Skill2": {
"Amount": 30
}
}
]配置列表中的每一项对应一个游戏角色的各种参数,如生命值、技能攻击力、技能攻击范围等属性,含义如下:
- Type: 含义为角色类型,游戏中共有三类怪物和四类英雄
- 怪物
- Imp(普通小怪)
- VandalImp(高级小怪-破坏者)
- ImpBoss(首领)
- 英雄
- Tank(坦克)
- Archer(射手)
- Mage(法师)
- Rogue(盗贼)
- 怪物
- BaseHP:基础生命值
- Skill1、Skill2、Skill3:角色技能。其中每项技能可能包含以下属性,具体视技能类型而定:
- Amount: 伤害值
- Range: 技能最远施放距离
- Projectiles: 投射物列表(仅针对包含投射物的技能),每项投射物都有 Damage 属性表示命中时的伤害值。
理解上述配置后,你就可以按照自己的想法来修改游戏核心配置,玩转 BossRoom!