游戏开发论坛

 找回密码
 立即注册
搜索
楼主: 海芳允婷

[讨论] 剑侠情缘的魔法碰撞检测是在服务器端执行的么?

[复制链接]

11

主题

181

帖子

186

积分

注册会员

Rank: 2

积分
186
 楼主| 发表于 2007-6-2 13:32:00 | 显示全部楼层

Re: Re:剑侠情缘的魔法碰撞检测是在服务器端执行的么?

RAIDENII: Re:剑侠情缘的魔法碰撞检测是在服务器端执行的么?

"你说说它复杂在哪里"

复杂在WOW设计出了让玩家全身心投入与敌人战斗,冷静的使用相克技能,并且时刻注意数值的变化,,,
这是他“偷懒”了很多碰撞检测的原因,,你说TV动作游戏为什么没设计那么多技能呢?也是目前很多游戏里达不到的,

技能的多少要视美美术资源的多少。因为每个技能都要有不同的贴图、粒子效果、动作这些东西做起来费时费力,魔兽争霸3之所以成为万能游戏平台就是因为它不惜工本制作了繁多的美术资源。

     WOW耗时3年,并且大量借用了魔兽争霸3里面的图形资源。那么它可以表现的技能当然就多了。
   
     多就复杂么?流水帐而已。还复杂,智商问题。

11

主题

181

帖子

186

积分

注册会员

Rank: 2

积分
186
 楼主| 发表于 2007-6-2 13:38:00 | 显示全部楼层

另外,剑侠情缘技能的碰撞检测,和传奇的穿人不穿人原

     这也是我昨天才想通的。一开始想复杂了。

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2007-6-2 13:40:00 | 显示全部楼层

Re: 公司的人都知道这个马甲了。


海芳允婷: 公司的人都知道这个马甲了。
回卡特:你的这三个问题我想来想去还是觉得回答你比较好。

1.目标B类型与技能要求匹配
2.A与B的距离<=20码
3.该技能已经完成冷却(包括由其他技能引起的公共冷却)

第一个 b->can_fight(A使用的技能);它返回一个值。0或者1
第二个 3D服务端引擎有判断两物品距离函数。 调用一下然后和20比就行了
第三个 玩家身上有技能使用时间的标志。初始值为0 使用技能以后,会变成冷却时间,然后每次刷新降低任务各个冷却时间值。

算你说对了一部分.并且关键不是怎么写判定语句,而是放哪里进行判定.
这些条件全都是关键判定,出于防止破坏游戏规则的客户端WG程序,都需要在服务器进行验证.
但这在WOW的战斗逻辑中实际是采用客户端/服务端双重验证的方式,听起来很多余是吧?但我觉得这是个很聪明的做法.它能有效降低服务器的运算压力.


简单些说(我只是一个执行策划,对网络协议标准等具体的技术细节也不十分清楚,因此我仅仅是从过程上对WOW中技能的发动进行阐述):

1.当用户按下快捷,这些条件首先会根据客户端的当前状态进行一次判定.若判定通过则向服务器发送验证请求,否则不向服务器发送,直接在客户端提示用户:无法发动该技能

2.服务器接到客户端发来的验证请求,则根据服务端当前数据再次对这3个条件进行验证.若判定通过,则在服务端以技能被发动进行运算,并向对应的客户端发送消息----该技能已成功发动;若判定中存在条件不满足,则技能没有发动,并向对应客户端发送消息----该技能无法发动.

3.客户端根据服务端发送来的消息选择相应的动画进行显示.


也就是其逻辑遵循这样一个原则----"凡客户段不满足的条件,放到服务端也不满足;但客户端满足的条件,放到服务端则不一定满足"----这样的原则在战斗的流畅性,公平性,服务器的压力之间达到了一个合理的折中.

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2007-6-2 14:00:00 | 显示全部楼层

Re:剑侠情缘的魔法碰撞检测是在服务器端执行的么?

阅读源代码那只是程序员的基本技能而已.并且有些东西并不需要读源代码的,直接观察其运行效果可能更直观也更清楚.

不要因为学会了一点基础就自以为是----老子天下第一!其他都是垃圾!
你需要学的东西还多着呢.

最后:狂吠的狗活不长,嚣张的人也走不远!

The End

28

主题

3250

帖子

3262

积分

论坛元老

Rank: 8Rank: 8

积分
3262
QQ
发表于 2007-6-2 14:30:00 | 显示全部楼层

Re:剑侠情缘的魔法碰撞检测是在服务器端执行的么?

……其实,回楼上的,我都不觉得楼主他嚣张……
他也貌似没说过什么天下第一之类的话(好吧最低限度我是没看见他嚣张的时候)

本来明明是讨论剑侠的帖子,后来就变成了WOW的论战。WOW是成功的,但不是被封神了的作品。觉得上面几位一听到说它不好的话就像被踩了一脚似的

11

主题

181

帖子

186

积分

注册会员

Rank: 2

积分
186
 楼主| 发表于 2007-6-2 15:40:00 | 显示全部楼层

算了算了。都是我不对。

        我只是回答了服务器端怎么做。忘了说它在什么条件下执行了。

        对你的那两句评价持不同态度。 不叫的狗才活不长,因为主人认为它没用。 走得远的,一般都是嚣张的人,只有嚣张的人,才敢一往无前,不会因为普通的压力和困难而放弃。

        古往今来,都是如此。你读读历史吧,别只读被歪曲了的教科书。太多中国教育的牺牲品了。

11

主题

181

帖子

186

积分

注册会员

Rank: 2

积分
186
 楼主| 发表于 2007-6-2 15:55:00 | 显示全部楼层

忘了说了

       不光战斗逻辑,可以说所有的操作,都要客户端先通过,才会发送到服务器端。不光是WOW,自从有C/S模型,都是客户端过不去的东西就根本到不了服务器端。

       这谈不上聪明,逻辑上理所当然如此。我真的不明白为什么别人一提什么东西你们就什么WOW。WOW真正的厉害之处在于地图切换的无缝拼接。其他再也没什么稀奇的地方了。

0

主题

172

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2007-6-2 16:07:00 | 显示全部楼层

Re:剑侠情缘的魔法碰撞检测是在服务器端执行的么?

一般说WOW服务器,主要是集中在无缝地图。

类似与魔法使用合法检测等操作,无缝超大地图和分块地图,复杂度不可同日而语。

就比如说一个2物体之间的距离检测,这个就不是那么简单了,2物体可能在2台服务器上,则计算将变为异步,而而异步的计算,就有个数据同步问题,而数据同步必然带来数据锁、脏数据,服务器之间处理的时间差造成的不一致等等问题。

既然做了程序嘛,思维就要严谨一点,要把所有可能情况分别叠加,没有意外的状态出现,才是合格的程序。

程序区这2天有人正在讨论关于无缝地图的话题,你可以以去看看。

11

主题

181

帖子

186

积分

注册会员

Rank: 2

积分
186
 楼主| 发表于 2007-6-2 16:28:00 | 显示全部楼层

Re: Re:剑侠情缘的魔法碰撞检测是在服务器端执行的么?

6spring: Re:剑侠情缘的魔法碰撞检测是在服务器端执行的么?

一般说WOW服务器,主要是集中在无缝地图。

类似与魔法使用合法检测等操作,无缝超大地图和分块地图,复杂...

对于分布式服务器我一点概念都没有呢。请多指教。

1

主题

6

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2007-6-2 16:30:00 | 显示全部楼层

Re: 剑侠情缘的魔法碰撞检测是在服务器端执行的么?

无缝地图 wow处理的很简单的 看看网上对通信协议的分析和开源的代码 你就会清楚(无论是客户端还是服务器端)

wow最厉害的地方的是复杂场景的管理(服务器端),数值的运用,关卡的设定,技能的设定,色彩的运用

wow是我唯一玩的有点儿ARPG感觉的网游
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-17 07:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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