Unity 弱联机游戏战斗录制回放有什么现成的方案吗?就是游戏开始前服务器发送一个随机数种子给客户端,客户端战斗结束上传录制数据给服务器,然后用户/管理员可以通过这个录制数据回放完整游戏过程,避免玩家直接调用战斗结算接口

1 天前
 drymonfidelia
弱联机指的是玩家进入战斗后就不需要联网了,避免弱网环境影响游戏体验而且减轻服务器资源占用,反正是单人游戏完全没必要联机。随机事件都用服务器在进入游戏前发回的这个种子计算,结算的时候上报录制数据
1136 次点击
所在节点    游戏开发
7 条回复
carlself
1 天前
战斗计算纯客户端不能防止玩家作弊,服务器还是要演算一遍吧。
nightwitch
1 天前
需要你整个游戏都按帧同步的方案来设计,可以确保每次录制的数据都能 100%重放。
现成的方案不太可能,这个和游戏架构强相关。

弱联机方案很多啊,没必要走重放,保证关键的资源结算,所有怪的出生死亡,角色的移动以及物品的掉落不要信任客户端的任何报告,都由服务器计算并同步给客户端,就能解决大多数问题了。
newtype0092
1 天前
没有即时操作逻辑的话,gameplay 的部分按你说的方式来写不就行了,这要还套现成方案那不就是换皮游戏?
lieb
1 天前
你战斗就一个随机数就能演到结果, 你回放就用战斗呗, 把战斗的所有变量。这场战斗的角色属性 天赋 装备 道具 技能顺序 buff //随机数 就传上去呗。
避免刷结算接口 , 你取一个平均时间不去响应呗,或者通过自己加密点时间数据、随机数所获得的最终结果数据 ,服务器能对比验证的。 但是感觉没必要,游戏还是得火,得好玩。
txhwind
1 天前
服务器自己记录种子再算一遍就行了吧
guanzhangzhang
1 天前
游戏物品和怪物每次进游戏/地图都是服务器端返回的随机的 objID
对象(怪物/玩家)移动
释放技能攻击对象 objID
对象(怪物/玩家)收到的伤害
使用物品
kepenj
1 天前
我们之前的项目就是客户端和服务器同一套逻辑(客户端 C#写完核心战斗逻辑后直接打 dll 扔给的 server 用),结果走的服务器结算。纯靠客户端无法防作弊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1094481

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX