Skip to main content

机器人解决方案

该模块正在内测中。

tip

Online Examples : https://a.iohao.com

在线游戏示例 : https://a.iohao.com

介绍

Room + Robot + 代码生成(sdk) = 超速出多人联机带机器人的游戏。


为各种类型的房间类游戏提供机器人,游戏举例

  • 坦克游戏
    • 坦克的射击行为
    • 移动
  • 斗地主游戏
    • 出牌
  • 麻将游戏
    • 出牌
    • 吃碰杠、摸牌、胡牌、自摸...等行为
  • 大富翁游戏
    • 掷骰子移动
    • 建房、购买道具、使用道具 ...等行为
  • 飞行棋游戏
    • 掷骰子移动

包括机器人创建房间等玩家加入游戏、机器人加入其他房间玩游戏、机器人退出房间...等各种行为。

在线示例

Online Examples 只用了一周的时间完成了前后端的内容, 这得益于代码生成和 room 模块的复用。 在制作的过程中,网络对接的接口代码可以快速生成,使得双端的联调更加简单了。

这里通过框架生成了 CocosCreator 所需要的 TypeScript 代码, 如果将来我们需要改成 Unity 或 Godot 来做,是简单的。 因为现有的服务器代码不需要做任何改动,就能为 Unity、Godot 生成相关的网络对接代码。 甚至玩家可以同时在不同的引擎上进入我们的游戏中。

example

这个 demo 体现了 Robot 的初步设计,后续计划提供的演示 demo 可能有

  • 即时类型的百人场副本打 Boss 爆装备。
  • 斗地主或麻将类的,这些 robot 策略性比较强。
  • 回合制对战的一些战斗。
  • 大富翁类型的桌游 ...等。

解决的问题

  1. 平衡玩家胜率(类似 LOL 的胜率平衡)
  2. 帮助公司利益最大化
  3. 减少成本 (由机器人代替陪玩,减少陪玩成本)

SCQA,3C架构分析法

example

机器人行为策略

example

实际案例

这里简单总结下该模块的使用,这里采用的是分离模式。

下图是项目的结构,game-fair-logic 是具体的游戏业务代码, game-fair-robot 是机器人相关的代码,Robot 与具体的游戏业务代码是完全分离的。如图

robot_project

如果你有过相关的 Robot 开发经验,是否让这两者的代码混合在一起了。 当 Robot 的代码和游戏业务代码混合在一起时,会使得业务代码很混乱。 代码中将有大量的 if 存在,其目的就为了处理机器人部分的逻辑。

而在分离模式下,可以让游戏业务代码开发者的心智没那么重。 不需要考虑 if 是 Robot 就该如何如何,只关心具体的游戏业务逻辑即可。 同样,在分离模式下,Robot 的开发者只关心该游戏提供了哪些 operation (房间内的玩法操作)即可。

如果混合在一起,那么两者都需要注意对方的代码。 比如说,我改了这里,会不会影响他那里之类的情况,这种混合模式还会让两者的心智负担加重。

从这里我们可以看出,分离模式的优势至少有两个,分别是

  1. 分离模式下,可以减少双方心智负担。
  2. 由于在游戏中几乎看不 Robot 相关的代码, 这样可以做到项目的非核心人员得不到这部分 Robot 业务代码,让公司资产得到保护。