相关疑难解决方法(0)

处理网络游戏的延迟问题

我正在考虑制作网络游戏.我对此有点新意,并且已经遇到了很多问题,试图为航位推算和网络延迟制定一个好的计划,所以我很想看到关于这个主题的一些好的文献.我将描述我考虑过的方法.

最初,我只是将玩家的输入发送到服务器,在那里进行模拟,并向所有玩家广播游戏状态的变化.这使作弊变得困难,但是在高延迟下,事情有点难以控制,因为你不会立即看到自己行为的结果.

这篇GamaSutra文章提供了一个解决方案,通过在客户端上进行模拟,可以节省带宽并使本地输入看起来更流畅,但它似乎可以防止窗外作弊.此外,当玩家开始操纵环境,推动岩石之类的时候,我不知道该怎么办.这些先前中立的对象将暂时成为客户端发送PDU所需的对象,或者可能是多个玩家同时执行的对象.谁的PDU会赢?每个玩家何时停止双重跟踪物体(与死亡计算版本进行比较)?天堂禁止两名球员参加相扑比赛(例如开始互相推进).

这个gamedev.net位显示gamasutra解决方案不合适,但描述了一种不能真正修复我的协作巨石推动示例的不同方法.我发现的大多数其他东西都是针对射手的.我希望看到一些更适合像SNES Zelda这样的游戏的东西,但需要更多的物理/动力.

  • 注意:我不是在这里询问物理模拟 - 其他图书馆都有这个.尽管存在网络延迟,但仍然可以使游戏平稳且反应灵敏

networking latency dead-reckoning

28
推荐指数
2
解决办法
9583
查看次数

Mutli Player游戏同步

情况:

我想问一下,使用BT或Web服务器在多人1:1游戏中同步对象的最佳逻辑是什么.游戏中有两个玩家,每个玩家都有多个枪支和子弹,子弹是动态创建的并且在一段时间后消失,我的移动玩家同时移动.

问题:

我有一个真正的同步问题,因为一个设备上的子弹可能比其他设备更快,也可能已经消失或击中一个设备上的一个对象,而另一个设备仍然在空中.

可能性?

在这种情况下,处理同步的最佳方法是什么?如果所有对象都由一个充当服务器的设备控制,而另一个只是获取值,位置并且做很少的思考.或者应该控制分布在每个设备创建的位置,销毁并移动自己的对象,然后通过同步告诉其他设备.

在这方面处理传输延迟的最佳方法是什么,因为BT可能比通过网络播放更快?最好的是一个工作样本 - 非常感谢!

iphone synchronization multiplayer

7
推荐指数
1
解决办法
3944
查看次数