游戏开发论坛

 找回密码
 立即注册
搜索
查看: 13173|回复: 17

其二:网络游戏同步法则

[复制链接]

4

主题

23

帖子

23

积分

注册会员

Rank: 2

积分
23
发表于 2005-6-12 06:57:00 | 显示全部楼层 |阅读模式
网络游戏同步法则

(好久没有发言了,出来冒个泡)

网路的硬件也有限,而人的创造也无限,在公网平均130ms的Latency下,是不存在“完全的”的同步情况。如何通过消除/隐藏延时,将用户带入快速的交互式实时游戏中,体验完美的互动娱乐呢?

以下六点,将助你分清楚哪些我们可以努力,哪些我们不值得努力,弄明白实时游戏中同步问题关键之所在,巧妙的化解与规避游戏,最终在适合普遍用户网络环境中(200ms),实现实时快速互动游戏:

1. 基本情况:
   (A) 网络性能指标一:带宽,限制了实时游戏的人数容量
   (B) 网络性能指标二:延时,决定了实时游戏的最低反应时间

2. 两个基本原则:
   (A) 让所有的用户屏幕上面表现出完全不同的表象是完全没有问题的。
   (B) 把这些完全不同表象完全柔和在一个统一的逻辑中也是完全没有问题的。

3. 同步的十二条基本对应策略:
   (A) 最大可能减少游戏中的数据传输
   (B) 将阻塞通信放到线程池中实现
   (C) 永远不要为了等待某个数据而不让游戏进行下去
   (D) 利用预测和插值改进游戏的效果
   (E) 当使用预测插值的时候传送的数据不仅包括坐标,还需要速度和加速度
   (F) 将输入数据枷锁或者队列化(例如键盘消息队列),直到下次发送数据的时刻,传统的方法是在固定的时间(发送数据前)检测键盘,在游戏的原理上隐藏延时
   (G) 使用事件调度表,将需要在所有用户客户端同时发生的事件,提前广播到所有用户
   (H) 使用多次攻击来杀死一个精灵,尽量减少一次性的、确定性的、延时敏感的事件
   (I) 延长子弹或者火箭在空中飞行的时间(在其飞行的同时,在所有客户端进行预测插值)
   (J) 所有物体从一个地方移动到另外一个地方都需要时间,避免诸如“瞬间移动”的设计
   (K) 尽量使游戏中所有精灵,飞船或者其他物体,都按照可预测的轨迹运行,比如在移动中增加惯性
   (L) 充分发挥创造力,尽最大可能的合并游戏中前后相关的事件,合并游戏中存在的延时此问题,需要在技术上改进的同时也需要策划有所重视,规避一些影响较大的设计,巧妙的隐藏"延时"

4. 同步问题现状:
   (A) 重视程度不够:很多人尚未意识到此问题的存在,曾有公司花半年时间打算做一款“松鼠大战”的网络版。
   (B) 技术上无彻底解决方案:对于多数程序员,单机游戏技术善未成熟就匆匆步入网络时代。
   (C) 研究这个技术需要条件:需要有实力的公司才能提供,无此条件,即便有能力的程序员也无法成功。

5. 目前网游的三大技术难题:
   (A) 服务器的响应问题:如何使服务器在支持越来越多的人数的情况下提供最高的响应
   (B) 同步问题:如上在有限的网络响应情况下,实现快速实时类游戏,提供最完美的交互
   (C) 服务器分布式问题:如何在统一用户数据的情况下,利用分部式将各个分散的“世界”统一到一个“世界”中。
   谁能真正解决好以上三个问题,配合策划在设计上的突破,将使其他人在至少两年内无法超越。
   
6. 相关补充:
   (A) 网格技术现在还是抄作,真正用到游戏中,还有很多技术难点需要突破(比如:目前网格的单位计算时间是以秒计算).
   (B) 其实与很多人想法相反的是现在3D技术早已不是主要的矛盾。而现在国内外对于以上三个问题可以说处于同一个起跑线上,完全有机会取得先机。
   (C) 现在解决同步问题已经很紧迫,而同时所需要的环境也已经成熟,只要有所关注,半年之内可以得出较成熟的结论


那么具体怎么解决呢?再下一步怎么办?
这就得自己去实践了,我只说这么多了,哈哈,不然又教懒了那些成天再网上搜方案的人。


skywind http://www.joynb.net/
原帖参考:http://blog.csdn.net/skywind/

62

主题

331

帖子

366

积分

中级会员

Rank: 3Rank: 3

积分
366
QQ
发表于 2005-6-12 23:00:00 | 显示全部楼层

Re: 其二:网络游戏同步法则

厉害厉害

佩服佩服

..

4

主题

23

帖子

23

积分

注册会员

Rank: 2

积分
23
 楼主| 发表于 2005-6-12 23:30:00 | 显示全部楼层

Re: 其二:网络游戏同步法则

呵呵,sorceress,您老大又来这里活跃气氛了说 -_-

71

主题

1330

帖子

2585

积分

金牌会员

Rank: 6Rank: 6

积分
2585
发表于 2005-6-13 00:40:00 | 显示全部楼层

Re:其二:网络游戏同步法则

我发现我们的游戏没有预测插值方面的设计,看来得补上这一课了。

4

主题

23

帖子

23

积分

注册会员

Rank: 2

积分
23
 楼主| 发表于 2005-6-13 01:18:00 | 显示全部楼层

Re:其二:网络游戏同步法则

这方面花力气是的确需要的。。。。

33

主题

118

帖子

173

积分

注册会员

Rank: 2

积分
173
发表于 2005-6-13 08:46:00 | 显示全部楼层

Re:其二:网络游戏同步法则

顶楼的帖子确实比较强,顶一下。

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2005-6-13 08:51:00 | 显示全部楼层

Re:其二:网络游戏同步法则

呵呵,其实还是有些值得讨论和研究的方向,比如说基于Multicast的mutual sychroniaztion方案针对目前的普遍解决方案来说,也是十分具有竞争力的。

4

主题

23

帖子

23

积分

注册会员

Rank: 2

积分
23
 楼主| 发表于 2005-6-13 09:57:00 | 显示全部楼层

Re: 其二:网络游戏同步法则

呵呵。。。是啊。。哈哈。。。。

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-6-14 13:26:00 | 显示全部楼层

Re:其二:网络游戏同步法则

2. 两个基本原则:
   (A) 让所有的用户屏幕上面表现出完全不同的表象的完全没有问题的。
   (B) 把这些完全不同表象完全柔和在一个统一的逻辑中也是完全没有问题的。

这2点很好

在技术不能达到的情况下,逻辑同步往往很重要。只要游戏逻辑是严密的,公平的,我们认为游戏就是同步的。

比如当某帧数据无法同步的时候,很多方案首先想到的如何提高其传输的方式或者进行数据纠正,而忽略了是否应该丢弃他,而通过其他的信息来修正游戏逻辑。

4

主题

23

帖子

23

积分

注册会员

Rank: 2

积分
23
 楼主| 发表于 2005-6-14 20:55:00 | 显示全部楼层

Re:其二:网络游戏同步法则

哈哈。。是啊。。结果相同就行了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-26 06:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表