码迷,mamicode.com
首页 > 其他好文 > 详细

让子弹多飞一会儿——谈谈游戏中的弹道(转)

时间:2014-11-30 22:47:06      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:style   http   ar   sp   strong   on   问题   bs   html   

      电子游戏/电脑游戏发展已经有几十年了。很多老玩家们都是小时候从街机厅开始玩游戏的。转眼到了2010年,今天已经是网络游戏的天下。街机厅一个个不是关了门,就是变成了暗地里的赌博厅,网吧则在城市中遍地生根发芽。如今走进网吧,不是WOW就是天DNF。人人戴着耳机,专注屏幕,没有了街机厅的那种喧闹,那种1元钱在街机厅混一个下午,一个牌子把《皎皎皎》复关6遍的日子已经一去不复返了。当然,时代在发展,网游从某种角度来说战胜了单机,也是因为有他得天独厚的优势。在网游中,社交被大大强化了。人们可以在游戏中认识很多朋友,共同游戏,共同战斗。但是,为什么网游的战斗就是找不到单机的那种感觉呢?笔者斗胆在这里提出一个观点:网游在强化社交的同时,也简化了战斗。

  笔者说的网游简化战斗,主要指现在的网游,都是不计算弹道过程的。

  笔者向不少游戏开发者请教过这个问题,经笔者总结,战斗的飞行道具(就是指打出去的火球之类)有四种方式。

 

第一种:不计算弹道过程,直接打选中的对象。根据命中和闪避加上随机函数来判断是否命中。

  目前绝大多数网游都是如此。比如征途天龙八部诛仙等都是如此。在这种模式下,你看到一个火球向你飞来,左右闪躲是没有用的,躲到石头后面也是没有用的,因为在火球发出来的时候,服务器已经决定了是否会命中,任何挣扎都是徒劳的。

bubuko.com,布布扣

有一个证据可以证明这点:有时候你会看到你打出去的火球拐弯了,打出了“香蕉球”。这是因为客户端火球飞出去的时候,服务器告诉客户端对方跑到边上去了,为了不至于明明看上去没有打到还要掉血,客户端就让火球拐弯了再打到对方。

  这类游戏都有一个特征:必须选中对方你才打到对方。因为你打的就是你选中的对象。

第二种:不计算弹道过程,但无需选中对方,鼠标指在哪个格子就打哪个格子。根据命中和闪避加上随机函数来判断是否命中。

  传奇就是这类游戏。玩过传奇的玩家都知道,如果很多人站在一起,会排得整整齐齐的。那就是因为其实地上有格子,每个格子中只能站一个人。传奇中,鼠标放在什么位置,火球就打那个位置了,火球飞行过程中有障碍物,也是可以穿透的。火球打出去的那一刹那,其实是不是打中,服务器已经计算好了,逃是逃不掉的。当你看到火球飞来,任何挣扎也都是徒劳的。

  肯定会有朋友说:不是这样的,传奇中躲闪是有用的。其实,那是你的错觉。有两个因素让你产生了这个错觉。

  一方面,传奇中移动的时候,闪避率会提高,所以对方在跑,你就比较难打中他了。这让人产生错觉:好像我闪开了。另一方面,是网络延迟在起作用。在你打对方所在的格子的时候,你看到对方在那个格子,其实由于网络延迟,他只是零点几秒之前在那个格子,实际上可能已经不在那里了。所以要想打中,需要判断对方可能往哪个方向跑,然后打提前量。

  总之,打格子这种设计,比第一种设计战术性更强一点,但是,比起真正的弹道还是差得很远。

第三种:计算弹道,但不计算弹道过程。弹道瞬间计算完成,在这条射线上对手被打中。

  几乎所有的第一人称射击游戏都是如此。比如CS、穿越火线。当然,热兵器用这种设计也非常合理。看见子弹飞来还能躲的,不是超级英雄,就是周润发了。所以这类游戏,你是看不见子弹飞的。但是弹道还是有的,中间有障碍还是能挡子弹的。

bubuko.com,布布扣

 

总之,这种设计基本上只适合热兵器战斗的游戏。

  第四种:计算完整的弹道过程。

  在这种设计的游戏中,当你看到在火球你飞来的时候,你还有机会躲开,甚至用障碍(比如血多的队友)挡住火球。这种感觉真实多了,并且战术性也强多了。

  举例来说,在第一、第二种设计中,群PK的时候让战士冲在前面毫无意义。因为敌人的火球可以无视前面的战士,飞过去直接把后面的法师干掉。而计算完整弹道过程就不同了,火球飞来,完全可以被前面的战士挡住,不打掉战士就打不到战士身后的其他人(当然你绕到侧面攻击也行)。这样后面的法师才能寻找机会攻击,后面的牧师才能在战士的保护下加血。在这种设计下,才真正有“阵型”的概念。

  有哪些游戏是完整计算弹道的呢?其实非常多,很多单机游戏都是计算弹道的。比如几乎所有的飞行射击游戏,如《皎皎皎》。大多数动作射击游戏也是如此,比如经典的《魂斗罗》。在即时战斗RPG领域,比如《暗黑破坏神》也是即时计算弹道的。甚至连下面这个叫《Pong》的游戏都是即时计算弹道的:

bubuko.com,布布扣

 

这是1972年的一个老掉牙的游戏机,这个游戏机只能玩这一个游戏。就是双方各控制一个短线来“打乒乓”。这可是72年的老游戏啊!我想问问现在的网游开发商们,你们羞愧吗?

  也有人说,这都是单机游戏,所以做弹道很容易,网游很难做,因为服务器计算不过来,网络延迟也影响很大。但是,十年前就上市的《暗黑破坏神2》给这种观点扇了一个响亮的耳光。当年我经常连接到《暗黑破坏神2》美服战网玩,在延迟达到300秒的情况下,练了n个99级号。难道国产服务器计算不过来,暴雪10年前的服务器就能计算过来?难道国内的网络延迟,比美服还大?显然这种观点是站不住脚的,唯一些解释只能是:不思进取。

bubuko.com,布布扣

07年,微软、诺基亚等大公司对iphone做出了惊人一致的错误的判断,认为如果有这么大的电容触摸屏,手机待机时间会很短,所以这种产品不可能出现。而苹果则有完全不同的态度,想方设法解决了这个问题,iphone一举占领市场,成为智能手机的王者。现在,微软们醒悟过来为时已晚。

  逆水行舟,不进则退。微软如此,国产游戏公司也是如此。在大量国外优秀产品围追堵截下,国产游戏还有什么资格固步自封呢?只有大胆尝试,大胆创新才有出路。当然,最近也有一些游戏对完整计算弹道做出了一些尝试,比如对《暗黑破坏神2》进行深度模仿的《倩女幽魂online》,部分技能就采用了完整计算弹道,比如游戏中的武海的烧饼就是看见还能躲的。虽然只是部分,虽然只是尝试,但至少让笔者看到了一点国产游戏的希望。至少还有人在创新,至少还有人在努力。

 

 

 

bubuko.com,布布扣

 

bubuko.com,布布扣

 

转载自:http://newgame.duowan.com/1101/158149197511_2.html

让子弹多飞一会儿——谈谈游戏中的弹道(转)

标签:style   http   ar   sp   strong   on   问题   bs   html   

原文地址:http://www.cnblogs.com/zsb517/p/4133798.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!