游戏开发论坛

 找回密码
 立即注册
搜索
楼主: netdragonx

[讨论] 浅析WOW里的怪物仇恨

[复制链接]

15

主题

727

帖子

736

积分

高级会员

Rank: 4

积分
736
 楼主| 发表于 2005-9-22 09:41:00 | 显示全部楼层

Re:浅析WOW里的怪物仇恨

恩,我先解释下。如同标题说提到的,这个只是我个人对仇恨这个概念进行一些粗浅简陋的分析,错漏是肯定有的,如果给读者造成误解我表示抱歉。文中的分析与推测都是我个人经验与认识从策划的角度出发作出的,所谓的从策划角度出发,简单的说就是侧重于分析其逻辑与数据。还请大家继续指正,让我们离WOW真正的工作机制更近一步,了解更多欧美策划的做法与思路。
“盗贼精力回复和战士怒气衰减,楼主用5秒原则来解释下看看?” 请问精力回复与怒气衰竭的TICK间隔时间?
“这个表格究竟是多大,貌似没有关系吧?”表格长度在策划提交给程序时需要涉及的,如果只有10,那么WOW就不是现在的玩法;无限长的表格也是不太实际。
至于我文中提到“怪物索敌是根据5秒原则”,这个索敌是还没进入战斗状态之前的动作。怪物没目标时,是一直在按AI巡逻及寻找目标的。至于进入战斗状态后,那工作机制就已经是按照仇恨来进行了,当然索敌这个动作是否仍在进行还有待测试。

57

主题

1523

帖子

1583

积分

金牌会员

Rank: 6Rank: 6

积分
1583
发表于 2005-9-22 10:12:00 | 显示全部楼层

Re:浅析WOW里的怪物仇恨

盗贼精力回复和战士怒气衰减,楼主用5秒原则来解释下看看?
-----------------------------------------------------------------------------------
这个我可以解释一下(假设楼主的5秒原则存在的话)
并非所有的都采用5秒原则
服务器有个心跳时间(我们公司是这么说的),比如说,每服务器500ms处理一次信息,这样是做啥用的?例如:魔法冷却时间,如果是2.5秒,那么就是用心跳时间计算的了。所以,盗贼和战士的问题可以用心跳时间解决。
那么,还要用为什么还要5秒原则?(先假设这个原则存在)很简单,因为并不是所有信息都需要那么精确的计算,为了节省服务器消耗,所以,还有个5秒原则。

YY一下:WOW还有很多的计算偷懒的放在客户端,如果换做其他公司这么做,早被外挂玩死了。问题是他是暴雪,天下除了暴雪谁敢?别以为别人服务器多牛,一是够肯花钱,二是够胆用客户端计算。

-----------------------------------------------
记录仇恨的表格是80都能YY出……比较佩服。
----------------------------------------------------
这个并不是没有道理的,40人副本的大BOSS,要打比较长的一段时间,详细记录所有参战人员仇恨的确有必要。楼主也许是认为仇恨是记录在数据库中的,才会说是表格是80的

但是我认为怪物的仇恨只要记录在管理怪物AI行动的服务器缓存中就够了。没有必要起表格,不过策划的确要向程序说明所有的可能性,80是最大值。不过小怪就不会这么多了,最多5~10就够了。

154

主题

4567

帖子

4579

积分

论坛元老

Rank: 8Rank: 8

积分
4579
QQ
发表于 2005-9-22 13:36:00 | 显示全部楼层

Re:浅析WOW里的怪物仇恨

表格不是数据库,是一个list。。。分配在内存里的,80长度一点都不大,可以简单的想象为80长度的高低位8位数组,大概不到100B。

魔兽世界的移动检测是在客户端完成的,根本没法免疫加速齿轮,只是仗着严厉的名声(咔嚓掉几万暗黑破坏神2 ID而出名),外国人有信用卡肯定不敢乱来,而国内魔兽世界玩家群整体素质比较高,也比较自觉抵制外挂,加上收费贵,严格执法(真删),没几个敢用外挂的,其他游戏绝对做不到,废话一下,为什么国内游戏外挂猖獗,收费体制,安全技术,客后服务多重原因造成的

57

主题

1523

帖子

1583

积分

金牌会员

Rank: 6Rank: 6

积分
1583
发表于 2005-9-22 14:42:00 | 显示全部楼层

Re:浅析WOW里的怪物仇恨

是个list,谢谢楼上指点哇

0

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
QQ
发表于 2005-9-22 15:18:00 | 显示全部楼层

Re:浅析WOW里的怪物仇恨

哈哈!!!很好的观点!!!!希望有更多的更新的出现!!!!!

0

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
QQ
发表于 2005-9-22 15:20:00 | 显示全部楼层

Re:浅析WOW里的怪物仇恨

我就喜欢破译那些好游戏中的奇异的想法

154

主题

4567

帖子

4579

积分

论坛元老

Rank: 8Rank: 8

积分
4579
QQ
发表于 2005-9-22 15:34:00 | 显示全部楼层

Re:浅析WOW里的怪物仇恨

list 也是我猜的,如果更简单的就是个2维数组,第一个位置存ID,第二个位置存仇恨值,每次刷新排序一次 [em10] ,好像搞错了,应该是2行的数组……[0][X]纪录ID [1][X]纪录仇恨 [em17]

154

主题

4567

帖子

4579

积分

论坛元老

Rank: 8Rank: 8

积分
4579
QQ
发表于 2005-9-22 15:37:00 | 显示全部楼层

Re:浅析WOW里的怪物仇恨

实际情况当然没有想象中的那么简单,往往一个看似简单的想法,在程序上实现是要费很大功夫的,所以呢,我认为,策划还是必须要精通编程原理,不然会受到程序鄙视的 ^_^

154

主题

4567

帖子

4579

积分

论坛元老

Rank: 8Rank: 8

积分
4579
QQ
发表于 2005-9-22 15:49:00 | 显示全部楼层

Re:浅析WOW里的怪物仇恨

还有一个猜想……就是仇恨是在人物数据里临时记录的,怪物有个筛选模块,取出来排序,这样动态分配,避免了固定长度的问题,有效利用内存,不过实现起来更麻烦阿,麻烦阿……

0

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
QQ
发表于 2005-9-23 11:53:00 | 显示全部楼层

Re:浅析WOW里的怪物仇恨

我想,5秒原则并不是真的服务器靠Tick来刻意设定的,而是服务器遍历1次怪物链表所用的间隔时间,每个怪物应该有一个完整的数据结构来记录,这个结构包括怪物的状态,属性,仇恨等等所有相关设定,服务器应该是对全部地图或某个地图的怪物结构作为节点列出一个list进行遍历处理.而所谓的间隔时间应该是服务器第一次处理这个怪物节点数据到第2次处理这个节点数据的间隔.仅仅是猜测,大家讨论一下.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-1 17:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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