机器人解决方案
该模块正在内测中。
Online Examples : https://a.iohao.com
在线游戏示例 : https://a.iohao.com
介绍
Room + Robot + 代码生成(sdk) = 超速出多人联机带机器人的游戏。
为各种类型的房间类游戏提供机器人,游戏举例
- 坦克游戏
- 坦克的射击行为
- 移动
- 斗地主游戏
- 出牌
- 麻将游戏
- 出牌
- 吃碰杠、摸牌、胡牌、自摸...等行为
- 大富翁游戏
- 掷骰子移动
- 建房、购买道具、使用道具 ...等行为
- 飞行棋游戏
- 掷骰子移动
包括机器人创建房间等玩家加入游戏、机器人加入其他房间玩游戏、机器人退出房间...等各种行为。
在线示例
Online Examples 只用了一周的时间完成了前后端的内容, 这得益于代码生成和 room 模块的复用。 在制作的过程中,网络对接的接口代码可以快速生成,使得双端的联调更加简单了。
这里通过框架生成了 CocosCreator 所需要的 TypeScript 代码, 如果将来我们需要改成 Unity 或 Godot 来做,是简单的。 因为现有的服务器代码不需要做任何改动,就能为 Unity、Godot 生成相关的网络对接代码。 甚至玩家可以同时在不同的引擎上进入我们的游戏中。
这个 demo 体现了 Robot 的初步设计,后续计划提供的演示 demo 可能有
- 即时类型的百人场副本打 Boss 爆装备。
- 斗地主或麻将类的,这些 robot 策略性比较强。
- 回合制对战的一些战斗。
- 大富翁类型的桌游 ...等。
解决的问题
- 平衡玩家胜率(类似 LOL 的胜率平衡)
- 帮助公司利益最大化
- 减少成本 (由机器人代替陪玩,减少陪玩成本)
SCQA,3C架构分析法
机器人行为策略
实际案例
这里简单总结下该模块的使用,这里采用的是分离模式。
下图是项目的结构,game-fair-logic 是具体的游戏业务代码, game-fair-robot 是机器人相关的代码,Robot 与具体的游戏业务代码是完全分离的。如图

如果你有过相关的 Robot 开发经验,是否让这两者的代码混合在一起了。 当 Robot 的代码和游戏业务代码混合在一起时,会使得业务代码很混乱。 代码中将有大量的 if 存在,其目的就为了处理机器人部分的逻辑。
而在分离模式下,可以让游戏业务代码开发者的心智没那么重。 不需要考虑 if 是 Robot 就该如何如何,只关心具体的游戏业务逻辑即可。 同样,在分离模式下,Robot 的开发者只关心该游戏提供了哪些 operation (房间内的玩法操作)即可。
如果混合在一起,那么两者都需要注意对方的代码。 比如说,我改了这里,会不会影响他那里之类的情况,这种混合模式还会让两者的心智负担加重。
从这里我们可以看出,分离模式的优势至少有两个,分别是
- 分离模式下,可以减少双方心智负担。
- 由于在游戏中几乎看不 Robot 相关的代码, 这样可以做到项目的非核心人员得不到这部分 Robot 业务代码,让公司资产得到保护。