游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4944|回复: 7

[讨论] 请问谁知道魔兽争霸1的多人同步系统后来怎么解决的?

[复制链接]

102

主题

2443

帖子

7639

积分

论坛元老

Rank: 8Rank: 8

积分
7639
发表于 2014-5-18 19:03:04 | 显示全部楼层 |阅读模式


节选自游戏邦。
就是“悲剧的是,我们很快发现了一个更糟的问题:我们不仅是遇上无数同步漏洞,而且导致这些同步漏洞的原因五花八门。如果所有同步漏洞是出于相同的原因,那么我们只要努力修复那个根本原因就行了。但是,问题的类型那么多,且各自产生不同类型的同步漏洞,因此,每个漏洞都要有自己的修复方案。
为什么产生同步漏洞?
当开发《魔兽》时,我已经设计了一个最小化必须通过网络传输的数据量的方案,也就是只发送各个玩家发出的指令,如“选中单位5”、“移动到650,1224”或“进攻单位53”。许多程序员也各自设计了相同的系统;毕竟对于同步两台电脑,而不在每个游戏回合之间发送整个游戏状态,这是一个显而易见的解决办法。
现在,大概有数种专利软件宣称解决了这个问题。久而久之,我渐渐觉得软件不应该取得专利权;一般水平的程序员都能想出大多数软件的编写想法,并且专利的定义要求专利应该不太显而易见。
我还没执行能验证两台电脑的同步性的机制,所以任何导致电脑做出不同选择的代码漏洞都会而导致游戏走向“分叉”——也就是,将游戏分裂成两个松散联系的世界,虽然保持交流,但分裂的速度随着时间而加快。
为了发行游戏,制作一个检测去同步性问题的系统显然是我的下一个任务。
结尾
你知道这个故事的结局:《魔兽》“最终”在仅仅五个月后发布了。它看起来就是一件不朽的作品,因为我们在它上面花了那么多时间、攻克了那么多随障碍、战胜了那么多挑战,才做出了这么一款我们深爱的游戏。在以后的文章里,我将继续讲述这些经历,但是回忆太多了,我不可能把所有思绪都塞进这篇已经冗长的文章里了!(本文为游戏邦/ gamerboom.com编译,拒绝任何不保留版权的转载,如需转载请联系:游戏邦”

88

主题

2743

帖子

4227

积分

论坛元老

Rank: 8Rank: 8

积分
4227
发表于 2014-5-18 21:37:31 | 显示全部楼层
多人同步?你具体指出下是什么表现形式好莫?

0

主题

127

帖子

929

积分

高级会员

Rank: 4

积分
929
发表于 2014-5-18 22:50:51 | 显示全部楼层
这有什么好纠结的吗?主机承担所有计算,与客户机保持心跳存在。整天净纠结些无关痛痒莫名其妙的问题。

88

主题

2743

帖子

4227

积分

论坛元老

Rank: 8Rank: 8

积分
4227
发表于 2014-5-19 01:31:33 | 显示全部楼层
linseryer 发表于 2014-5-18 22:50
这有什么好纠结的吗?主机承担所有计算,与客户机保持心跳存在。整天净纠结些无关痛痒莫名其妙的问题。 ...

这里的心跳只是诸多同步操作细节中的一个。

所以楼主的困惑是有道理的。

102

主题

2443

帖子

7639

积分

论坛元老

Rank: 8Rank: 8

积分
7639
 楼主| 发表于 2014-5-19 01:38:38 | 显示全部楼层
linseryer 发表于 2014-5-18 22:50
这有什么好纠结的吗?主机承担所有计算,与客户机保持心跳存在。整天净纠结些无关痛痒莫名其妙的问题。 ...

以当时的网速可以提供这样的连接吗?
每个单位都独立传输啊……锁定目标,攻击,校验。
魔兽争霸1,不是3

19

主题

197

帖子

1171

积分

金牌会员

实干兴邦,空谈误国

Rank: 6Rank: 6

积分
1171
发表于 2014-5-19 07:52:14 来自手机 | 显示全部楼层
通过war3的延时机制可以推论出war1局域网联机的实现:

客机延时就会发现自己的角色难以受自己控制。也就是说,客机向主机发送操作请求,主机进行运算,主机同意请求,主机发回结果。这样延时时客机就会因为主机发回结果的滞留而不受控制。

以上只是猜测,不具有指导意义。

102

主题

2443

帖子

7639

积分

论坛元老

Rank: 8Rank: 8

积分
7639
 楼主| 发表于 2014-5-19 08:23:50 来自手机 | 显示全部楼层
smallcorpse 发表于 2014-5-19 07:52
通过war3的延时机制可以推论出war1局域网联机的实现:

客机延时就会发现自己的角色难以受自己控制。也就是 ...

看来还是很依赖网速……

88

主题

2743

帖子

4227

积分

论坛元老

Rank: 8Rank: 8

积分
4227
发表于 2014-5-20 14:45:34 来自手机 | 显示全部楼层
smallcorpse 发表于 2014-5-19 07:52
通过war3的延时机制可以推论出war1局域网联机的实现:

客机延时就会发现自己的角色难以受自己控制。也就是 ...

局域网推测?没看出有什么实际意义。实际网络延迟没考虑有没有。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-25 08:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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