游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4979|回复: 12

请教玩过diablo2的各位问题。thx

[复制链接]

37

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
发表于 2005-3-10 14:49:00 | 显示全部楼层 |阅读模式
玩过diablo2的有没有遇到到这样一种情况。
        通常我们不会仅仅开一个号玩,一般情况下都是同时开着2个或2个以上的号同时玩。
当遇到这种操作:从A号的窗口切换到B号的窗口玩了一会儿,在切回A号来,这是你会发
现整个游戏的速度变得非常的快。
        问题&讨论:这样的情况是怎么回事呢?暴雪为什么要这么做呢?
程序应该如何实现呢?谢谢大家

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20686
发表于 2005-3-10 15:01:00 | 显示全部楼层

Re:请教玩过diablo2的各位问题。thx

应该是时间追赶,因为被切换到后台,D2并没有进行图形绘制,仅仅进行一些AI逻辑运算,这是为了减少程序被切换后的资源占用,在切换回去后,为了让画面恢复到正常的状态,需要把你切换的这段时间里动画播完,就相当于快进。

8

主题

77

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2005-3-10 15:07:00 | 显示全部楼层

Re:请教玩过diablo2的各位问题。thx

楼上正解!
听说这种算法是网络游戏解决网络延时的拉扯算法的一种
cs里面的拉扯算法比较野蛮,如果你延时很厉害,明明在你机器上你暴了某个人的头,可是过了几秒,服务器传来的信息是你被他暴了头,于是你被拉回原地,强行被他暴头,而你什么都不能做.
暴雪的算法应该是比较友好的.

37

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
 楼主| 发表于 2005-3-10 15:17:00 | 显示全部楼层

Re: 请教玩过diablo2的各位问题。thx


那么暴雪是如何实现这个的呢?
当程序切换到后台的时候,使用一个类似“录像机”的机制来保存程序在后台时的一切行动。
然后当程序再次切换到前台的时候将记录在“录像机”中的数据快速播放出来吗?

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20686
发表于 2005-3-10 16:04:00 | 显示全部楼层

Re:请教玩过diablo2的各位问题。thx

如果偷懒一点,可以通过记录时间来实现,比如我们限定每秒刷新30次,当我们被切换,我们的时间就不断地累加,然后等控制权回来后,以每秒>30帧的速度来播放Display,直到把每秒30帧的时间间隔补回。

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2005-3-10 16:05:00 | 显示全部楼层

Re:请教玩过diablo2的各位问题。thx

好像是一个很复杂的问题!不知道到底是如何实现的呢?

36

主题

197

帖子

197

积分

注册会员

Rank: 2

积分
197
发表于 2005-3-10 17:06:00 | 显示全部楼层

Re:请教玩过diablo2的各位问题。thx

应该和cs是一样的,你所看到的快进最后的位置,实际就是服务器端,你真正的位置,而且,不仅仅有快进,还有倒退,而倒退就是跳跃式的,直接蹦回去,我想原理和cs是一样的

还有,d2在本地和服务器的人物位置可以不同,但是有一个范围,超过这个范围,就会被重新画

2

主题

89

帖子

99

积分

注册会员

Rank: 2

积分
99
发表于 2005-3-11 16:16:00 | 显示全部楼层

Re: Re:请教玩过diablo2的各位问题。thx

sea_bug: Re:请教玩过diablo2的各位问题。thx

如果偷懒一点,可以通过记录时间来实现,比如我们限定每秒刷新30次,当我们被切换,我们的时间就不断地累加...

应该不是这样的吧,我感觉好像收到的消息都已经在后台处理了,只是Direct自已秀图的延时加快,
因为我之前自己有写一个小的网络游戏,情况也是这样的,而我并没有作代码上多余的处理

8

主题

77

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2005-3-13 23:30:00 | 显示全部楼层

Re:请教玩过diablo2的各位问题。thx

楼上说的话,如果指的是diablo的处理方法,我觉得你不对
Diablo不会把消息在后台都处理好的,你要这样想,比如我切换出去,再回来,一共有30秒,比如有1000祯吧,那么direct要显示的图像的数据,就是从我切换出去,到切换回diablo这段时间的所有的祯的数据,从哪里来?如果数据已经预先处理完了,那一定不存在了,只能显示出最后一祯的数据.
所谓加快显示,如何显示?他的数据存放在哪里?1000祯的数据足够把内存撑暴了!
不知道各位以为如何?

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2005-3-14 09:46:00 | 显示全部楼层

Re:请教玩过diablo2的各位问题。thx

楼上的兄弟说的好像有点道理哦!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-24 20:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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