游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5593|回复: 19

[讨论] 看到一个FPS网游的帖子,我想起了以前YY的一个想法……

[复制链接]

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
发表于 2008-8-29 15:37:00 | 显示全部楼层 |阅读模式
现在的FPS还是以枪战比较典型吧。其实暗黑弥赛亚那样的FPS也很不错,以冷兵器和魔法为背景。

恩……先YY一下理想的情况:
使用了物理引擎,网络条件很好,没有不同步的问题。玩家可以使用冷兵器和魔法。冷兵器包括各种近战兵器、盾牌和弓箭等远程武器。魔法有接触型魔法、远距离魔法、群体魔法单体魔法……
玩家以第一人称视角操作,以准心决定近战兵器攻击方向、盾牌格挡方向、弓箭射出方向、魔法飞行方向……近战要考虑兵器、盾牌的格挡,弓箭要考虑到目标运动和弓箭受重力和风力的影响,魔法要考虑到飞行时间和目标运动……当前还有各种地形、地表物体、建筑以及队友给自己提供的阻挡掩护……

当然,我知道这个很难实现为mmorpg。不过骑马与砍杀是一个很好的单机样本,虽然它的标准剧情里没有魔法……



恩,回到现实世界,我们可以考虑把mmorpg做成这样的:
第一人称视角,wsad控制平移,鼠标控制方向,屏幕中间有个准心。
这一点应该不难做到。

攻击如何做呢?

先说近战攻击:
玩家同一时刻只能处于两种状态:攻击或格挡。攻击状态不能格挡,格挡状态不能攻击。当然,有的武器不能格挡,不过如果能确保手上有面盾牌,那自然好说……
玩家可以用某种操作(如滚动滚轮)在这两种状态间切换,当然切换频率有限制。
格挡模式下,玩家按鼠标左键就可以向准心方向格挡。
当玩家处于格挡模式,当这个玩家受到攻击时,服务器会根据攻击袭来的方向和玩家格挡的方向(准心方向)做个大致的判定,以此来决定是否正好格挡住了这次攻击,也就是说这里是做方向的粗略判定而不是做精确的碰撞检测。比如一个玩家向东面格挡,但攻击来自于西面,那自然挡不住。不过还需要精细一些,比如一个圆周被分为4个方向……当然如果这个检测认为挡住了,那么就要进入下一步:角色数值检测。这就像现在的游戏里人物都有个格挡概率,这一步和现在的格挡检测是一样的。
这种格挡机制的意义是:对于操作比较好的玩家,他可以把技能点节省下来投资在其他项目上,而那些操作差的,可以多投资点技能点在格挡上以弥补自己操作的不足。
近战攻击嘛……自然是类似的,也就是在攻击状态下,按一下左键就会去攻击准心方向,如果离目标足够近,那么就会去检测攻击方向与对方格挡方向的关系……接着还要再做一次数值检定,这就和现在游戏里的命中判定是一样的。
这样的攻击机制的好处与格挡是类似的,即玩家的操作和数值可以互补。
不过上面讲的不是很清晰严谨,所以列出具体流程如下:

  1. if( 方向判断认为格挡住了 ){
  2.     被命中概率降低 xx%
  3. }else{// 如果方向判断认为没有格挡住
  4.     被命中概率增加 yy%
  5. }
  6. 在前面命中概率修正的基础上使用角色的属性和技能计算是否命中。
复制代码

这个流程是简化了的,可以给角色加上一些被动技能,比如方向判断认为格挡住时有一定几率使得这次攻击被完全格挡(不再进行后面的数值命中判断),又或者当自己的攻击没有被对方的方向格挡挡住时,就有一定几率使得这次攻击一定命中(也是不再进行后面的数值命中判断)。

再说说远程物理攻击和魔法攻击:
这些都是发射出一个飞行物,然后由飞行物去攻击目标的行为。
玩家操作就是用准心瞄准目标,然后按左键攻击……当然,考虑到目标的运动,所以准心未必指着目标……
发射物飞出去之后,服务器会对它们的运动进行模拟,不过,模拟时不是使用箭头那么小体积的东西,而是会比箭头大一圈,这样就更容易命中,火球也是这样。而玩家会有技能来提供他们的命中几率,除了命中率判定公式外,还会影响运动模拟和碰撞检测时所使用的包围体的大小,技能越高,包围体就越大,也就更容易命中……


+++++++++++++++++++这是分割线++++++++++++++++++++


顺便想起一个事情。在玩家施法时,可以让玩家使用鼠标画出一定的图形,根据图形的形状来决定魔法的一些属性……比如给一段描线动画,让玩家跟着画……


+++++++++++++++++++这也是分割线++++++++++++++++++++

以上所说的这些,都需要一些反外挂措施(包括技术的和行政的),也需要一定的技术(如服务器端的运动模拟和碰撞检测,以及这些的C/S同步)。虽然要做好很难,但是相比于开头的YY,似乎也比较可行了……
特别是,如果以后真的有物理卡可以用在服务器上的话……

19

主题

820

帖子

894

积分

高级会员

Rank: 4

积分
894
发表于 2008-8-29 16:34:00 | 显示全部楼层

Re:看到一个FPS网游的帖子,我想起了以前YY的一个想法……

网络上把子弹做实时碰撞,目前还是个难点

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
 楼主| 发表于 2008-8-29 16:35:00 | 显示全部楼层

Re:看到一个FPS网游的帖子,我想起了以前YY的一个想法……

恩,所以我做了点折中,不需要做太精确的碰撞检测……
也就是说让用户的操作决定结果的大方向,而角色的数值和技能决定结果的细节。

4

主题

732

帖子

858

积分

高级会员

Rank: 4

积分
858
QQ
发表于 2008-8-29 16:43:00 | 显示全部楼层

Re:看到一个FPS网游的帖子,我想起了以前YY的一个想法……

"网络条件很好,没有不同步的问题"这个最难解决...

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
 楼主| 发表于 2008-8-29 17:10:00 | 显示全部楼层

Re:看到一个FPS网游的帖子,我想起了以前YY的一个想法……

汗……那个是开头YY时说的,后面那些则没有这个前提……

1

主题

418

帖子

424

积分

中级会员

Rank: 3Rank: 3

积分
424
发表于 2008-8-29 17:21:00 | 显示全部楼层

Re:看到一个FPS网游的帖子,我想起了以前YY的一个想法……

参考流星蝴蝶剑ol

1

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2008-8-29 17:46:00 | 显示全部楼层

Re:看到一个FPS网游的帖子,我想起了以前YY的一个想法……

子弹不用实时碰撞的,折中的方法太多了
改换运算模式,一样的效果,不一样的过程

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
 楼主| 发表于 2008-8-29 18:31:00 | 显示全部楼层

Re:看到一个FPS网游的帖子,我想起了以前YY的一个想法……

以前只在局域网玩过流星蝴蝶剑,不知道ol的是什么样的……
子弹总归要做运动模拟和碰撞检测吧……毕竟火球这种东西的飞行时间是不能忽略的……

19

主题

721

帖子

746

积分

高级会员

Rank: 4

积分
746
发表于 2008-8-29 19:41:00 | 显示全部楼层

Re:看到一个FPS网游的帖子,我想起了以前YY的一个想法……

轨迹可以做假的,让他碰他就碰,碰不到转弯也要给我碰

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
 楼主| 发表于 2008-8-29 19:59:00 | 显示全部楼层

Re:看到一个FPS网游的帖子,我想起了以前YY的一个想法……

汗……不能太假……山口山里的火球会自己拐弯,那种就太假了……
而且这还会影响游戏性,因为这就排除了玩家通过自己的操作躲开别人发出的火球的可能……
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 16:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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