游戏开发论坛

 找回密码
 立即注册
搜索
查看: 43461|回复: 31

[吐槽] [项目经验]动作游戏设计中极容易犯的设计错误

  [复制链接]

98

主题

784

帖子

4493

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4493
发表于 2013-11-21 22:49:12 | 显示全部楼层 |阅读模式
  神仙道类游戏不行了,那之后怎么办呢?大家都有自己的一个新的走向,不少的朋友也开始做起了横板动作游戏的项目,希望在这片国产游戏的“孤岛”上开辟一条新路。最近玩了一些朋友团队的横板动作游戏后,发现很多项目中都多多少少的犯有一些动作游戏设计中极其容易产生的错误,于是拿来吐槽一下。但是在此之前,我认为你应该是已经了解了动作游戏和神仙道、大菠萝类型游戏开发的本质区别了,如果你心里还没谱,可以看下这个讨论(http://bbs.gameres.com/thread_229181.html)。

1,太过切合图形的碰撞框。

  为了配合美术资源而拉框,这本身就违背了拉框的意义,拉框的目的是为了游戏平衡设计中策划需要更好地把握动作的平衡性,抛开这个原则不说,其实很多时候和策划欠缺经验也有一定的关系。很多年轻的策划在设计一些动作游戏的角色动作,进行攻击框、受击框、防御框设定的时候,经常会被肉眼欺骗。

attackrect.png

  这个图片就是一个很好的例子(红色是攻击判定框,绿色是受击框),这是一个罗伯特踢腿的动作,从图片和真实世界的体验来看,我们不难看出,左边拉的框没问题,因为这个动作的确发力点在脚上,而身上这一大片被打也正常。但是事实上代入到游戏中之后,这就错了,这样的拉框会给人带来很大的不爽,这样的失误居然发生在侍魂3代的牙神幻十郎身上过,你如果玩一下那个游戏,你会发现牙神的重刀太接近了就砍不到人。而右图则是一个相对老道的拉框,在这个拉法里面即使敌人很接近一样会被踢伤,而罗伯特这个角色本身腿脚就比较长,因此下盘故意提高,让一些下盘动作没法命中。当然还要申明一点就是KOF系列中,已经不再是简单的一个攻击框和一个受击框最多外加一个防御框形成一帧动画了,这里只是为了说明这个问题。

  这样可怕的错误还会发生在一些很典型的动作里面,尤其受伤动作(大多国产游戏)和倒地动作,这些动作虽然看似每一帧都有受击框,可是如果你真的每一帧都给了受击框,那么角色被莫名其妙诡异的无限连连到死也不足为奇了。而同样的一些类似恶魔城系列后滑的快速闪避动作,也应该有短暂几帧没有受击框的判定。是的,没有受击框判定的时候角色是“无敌”的,但必要的时候你应该让角色“无敌”。

2,被遗忘的核心数值设计。

  大多数策划尤其是自称数值策划的,更倾向于算一套概率,然后显得很能做游戏,可是动作类游戏中,偏偏这样的需求非常低,相反,如果你有足够的游戏研发经验,你会发现每个项目中都有“隐藏的”数值设计,这些数值设计的结果在玩家肉眼看到的表和数据中没有,却能体会到,比如角色的体重在跑酷类游戏中的作用。而在动作游戏中,最典型的最容易被遗忘的一个属性就是——平衡值。

  什么是平衡值,就是一个角色距离被强制倒地还有多久,而对应的每一个动作都应该有一个破坏平衡值,使这个动作命中的目标在需要的情况下丢失一定的平衡值,而平衡值本身则会按照规则自动回复。如果你有丰富的游戏经验,尤其是横板动作游戏的经验,特别是那种可以连续殴打敌人的动作游戏,比如街机的吞食天地2(三国志,可以选关羽张飞赵云黄忠魏延的那个),虽然普通攻击是3连的,可是就算你只用第一下而故意不连,反复打击同一个角色多次,他一样会被击倒,这就是平衡值在发挥作用。而如果忽略了平衡值会发生什么?你可以看一下首页上的某个仿吞食天地2的Demo(http://www.gameres.com/msg_228521.html)——抽血抽到死、Bug一般的存在……而除此之外,横板动作游戏中还会有很多如吹飞力、稳定性等属性他们都应该存在,只是不显示给玩家看而已,这些数值千万不能忘了。

  当然忘了是一码事儿,我们还经常看到一些画蛇添足的设定——那就是动作游戏居然敢有Miss。是的,DNF成功了,他有Miss,但是复制他的游戏都失败了,因为连这种不该有的都复制进去了。作为一个动作游戏,本质上来说,是否命中取决于玩家的操作,而不是数值计算,因此本不该有这个。而从游戏设计的角度来说,我们很多策划也总是爱谈理论,什么玩家的成就感之类,那么成就感最简单粗暴有效地表现是什么——当一个玩家在合适的时候做了合适抉择,产生了合适的效果,这就会产生爽快感,这就是一种成就感。LoL会明显的提供这样的成就感,但起凡三国不会。因此你不该让玩家在合适的时候做了合适的动作却得到不合适的结果,假如敌人跳起来一个飞腿向我踢来,而我准确的使用遨游根(这你不知道还做啥动作游戏的策划了?)却得到了Miss,不仅如此我还挨了这一脚,这是一种糟糕透顶的体验!

3,菊花被插一样可以格挡。

  这是一个很容易发生的,也是非常滑稽的错误。在很多动作游戏中,我们的角色的确可以防御,但是这个做的糟糕的话,会产生我做出防御动作了,敌人在我背后用长矛插了我的菊花,可是因为长矛太长了,也插中了我的防御,结果我成功的格挡了这次攻击……

  这样的错误归根结底在于数值设计的问题,你的防御判定方式出了问题,假如你只判断攻击击中了我的防御框就优先防御有效,那一定会发生这样的问题,如图所示。

guardarea.png

  在图中,我们隐约(好吧,有点模糊)看到这是圆桌骑士中兰斯洛特的防御动作,橙色的是角色的格挡区域,绿色的是受击框。有3种攻击:

1)红色的攻击,从肉眼看和游戏经验分析,很显然这是格挡成功的。

2)蓝色的是背后攻击,从肉眼看和游戏经验分析,这绝对是造成伤害(格挡不能)的。
你的感觉是对的,并且99.999%正常的游戏玩家也好用户也好,即使是外行,看了都能接受你的说法,因此这里你会产生一个错误的想法——只要命中了防御框,这个攻击就是被格挡的。

3)悲剧产生,紫色的框击中了你的菊花,可同时不巧的是他碰到了你的防御框,如果按照上面归纳的来看,这个动作应该是被格挡的,可事实上地球人都认为这个你是挨打了。


  说实话,这是个头疼的问题,没有经验的策划会提出,我们只要知道攻击的方向就知道该不该算了,但事实上每一帧都是静态的,就算你联系上下帧的位置,你也不能做出这个判断一定是从后插向前的,而不是从上劈到下的,同理,从上劈到下,这个也该命中。而从逻辑出发,我们关心的只是这一帧如何判定,说实话,我没有绝对好的经验,但是多个项目的经验告诉我,用攻击框RA,受击框HA,防御框GA这3个框比较:(如果RA与HA相交的宽度/HA的宽度+RA与HA相交的高度/HA的高度)>=(RA与GA相交的宽度/GA的宽度+RA与GA相交的高度/GA的宽度)就可以判断为格挡失败。这个公式并不好,他并不是总是工作正常的,只是一些可能你已经玩过的我做过的游戏中,他还算是工作正常的。

4,AI设计应当抛弃WOW思路。

  AI设计,这个是最要命的,很多策划还抱着WOW那种,“如果目标XXX我就XXX”的思路。对不起,横板动作游戏中没有这套,大多有趣的关卡设计中,怪物的AI并不会以玩家的行为或者某个捕捉的目标为依据,顶多只是拿来参考。举个简单的例子,一个最弱的小兵,他在来回巡逻,每5帧他进行一次检查,如果玩家的X与自己的X相差小于50就发动攻击,这是一个动作游戏的AI设计方式;而同样的事情,“WOW思路”的错误做法是一个小兵他在来回巡逻,当50范围内有目标就开始攻击目标,甚至追击。看起来的确很像,但本质上是有区别的,关键是思考问题的出发点。动作游戏的AI更典型的另外一个做法就是一套固定的规律,然后玩家掌握规律后会相对轻松点,这是Capcom的风格,不仅洛克人,还有怪物猎人都是这样的。

  在设计AI的时候,无论如何设计都有一个原则,请你一定遵守——不要企图让AI太聪明或者太不易被人理解,好的AI设计不是让玩家感觉AI本身难,而是让玩家可以捉摸出AI的规律,想出合理的对策。

5,Erlang毕竟还是CS协议的。

  这是我个人差点犯的一个非常滑稽的错误,有时候也要敲敲自己的警钟。虽说我们知道动作游戏必须做P2P,但还是有很多策划梦想着可以做出个大场面的动作游戏来。Erlang与Haxe在服务器上有些思路会非常接近于P2P的模式,以往我们设计一个副本,会把副本作为一个容器,而玩家被扔进这个容器,采用这样一个思路;而Erlang的构架思路则会是每一个玩家是一个容器,副本被扔进玩家里面,当玩家在同一个副本的时候,实际上是通过Erlang来传递数据在服务器端上采取类似P2P的做法复制了2分一样的副本给不同的玩家,产生他们在一个副本的效果。是的,你想得的确没错,这跟P2P很接近,而且Erlang著名的就是转发效率,只要你的Workers写的够好,整个游戏效率都是很高的,但是慢来,客户端到服务器的这个传输过程,他本身还是CS的,所以千万不要想多了……

  以上是一些看了朋友们的“动作游戏”后的吐槽,有时候你感觉一个游戏有那么点小小的怪怪的感觉,但是骨子里这游戏已经在设计和研发上犯下了巨大的错误了。

16

主题

364

帖子

1223

积分

金牌会员

我的QQ:521117903

Rank: 6Rank: 6

积分
1223
QQ
发表于 2013-11-22 00:04:48 | 显示全部楼层
干货不少,点赞。

美中不足的是第四点,真没必要把WOW拿出来说事儿。其实楼主要表达的意思很到位了:好的AI设计不是让玩家感觉AI本身难,而是让玩家可以捉摸出AI的规律,想出合理的对策。


因为游戏类型的不同,需要提供给玩家的游戏体验因该是有区分的。动作游戏的怪物AI如果是按照类似WOW这样的触发范围+战斗心跳的AI可能是不太有必要,不过别的游戏就不一定了,毕竟还是不能一言蔽之的。

再回到楼主的这句话上,其实WOW也同样给予了玩家“可以捉摸的AI规律”,只是相比较而言复杂了一点。这个世界上需要简单的,也需要的复杂的,只要这个复杂不是仅仅为了装逼而复杂就可以了。在平衡复杂和简单的时候,并没有高低,只是区分了不同的用户罢了。


23

主题

315

帖子

1257

积分

金牌会员

Rank: 6Rank: 6

积分
1257
发表于 2013-11-22 06:37:46 | 显示全部楼层
原来这才是格斗游戏的真谛,学习了。

4

主题

726

帖子

3422

积分

论坛元老

Rank: 8Rank: 8

积分
3422
发表于 2013-11-22 10:08:52 | 显示全部楼层
赖斯~ 顶 学习了!

27

主题

932

帖子

2694

积分

金牌会员

Rank: 6Rank: 6

积分
2694
发表于 2013-11-22 10:08:59 | 显示全部楼层
      LZ你讲的没问题 ,但是和现实还是有出入啊。
    难道八神的气功打不到正在踢腿的罗伯特了么。

    而名将和快打旋风以及好多游戏,都有这种技巧,就是最后一击打飞的时候故意转身,然后转回来。继续粘着打。但是玩家都认为,这种设计才是好的。因为它更能体现玩家的技术水准。

2

主题

18

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2013-11-22 10:19:15 | 显示全部楼层
干货很多,尤其是平衡值的部分让我明白了很多东西

求lz指点,45度角的动作游戏的要点有哪些?尤其是判定部分

98

主题

784

帖子

4493

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4493
 楼主| 发表于 2013-11-22 11:09:15 | 显示全部楼层
undeadking 发表于 2013-11-22 10:19
干货很多,尤其是平衡值的部分让我明白了很多东西

求lz指点,45度角的动作游戏的要点有哪些?尤其是判定部 ...

这还真没做过,其实我也不知道有啥游戏是45度的动作游戏,说个名字呗……

98

主题

784

帖子

4493

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4493
 楼主| 发表于 2013-11-22 11:17:12 | 显示全部楼层
jy00899185 发表于 2013-11-22 10:08
LZ你讲的没问题 ,但是和现实还是有出入啊。
    难道八神的气功打不到正在踢腿的罗伯特了么。

八神气功的判定范围可不是肉眼可见的那点,而且那属于子弹,所以即使罗伯特踢伤了八神,子弹还是在的,只要你够快还能追上子弹挨一下(逻辑上来说是可以的,虽然地球人的操作做不到)。
名将没有缺失这个值,只是恢复的量和击打降低的量地了,他把大量的破坏平衡放在动作的最后一下了,和跳跃攻击一样原理了。快打旋风也有(如果你说的是那个Cody Guy和Hagger的),也是设定的……很有独特风格。这个只要作了就不会不好,只是风格不同,但决不能不作。

2

主题

43

帖子

4411

积分

论坛元老

Rank: 8Rank: 8

积分
4411
发表于 2013-11-22 11:31:13 | 显示全部楼层
干货很多,楼主好人,借你宝地,我也简单的谈谈我的理解

      你举的罗伯特的踢腿例子,有一个小纰漏,就是伸出去的腿一般来说也是要设置被击框的。另外,并不像你说的,很多动作不能加被击框。能不能连击主要是由逻辑参数控制,而不是有没有被击框。

      命中率这种东西,在格斗游戏这种需要精确判定打击位置的游戏里是完全多余的,但在不要求精确,譬如暗黑这种上帝视角的游戏里,加上还是有必要的。DNF里加上命中纯粹是为了多一个硬性的可培养属性而已,可以无视。

      格挡那一块,格挡框我认为没有必要,用被击框就行,人物的被击标记设为格挡。至于角色无法格挡反方向的攻击,在攻击判定时做一个位置判定即可,攻击者位于被击者身后时(原点坐标比下大小),格挡即为失败。

      AI方面LZ总结的很好,我认为动作游戏里面的AI应该是特点和规律,符合单位的行为习惯,但行为方式带有随机性。行为树是一种很好的解决方案,当然格斗游戏和ARPG游戏的AI差别会很大,用哪种AI方案得看需求了。

      第5点提出的构架思路很有意思,等会我去细细学习下。不过初步的感受是,即没解决P2P的复杂度和安全性问题,也没解决C/S的高资源消耗和延迟问题。具体方案中的优劣,还望LZ另行赐教

0

主题

185

帖子

728

积分

高级会员

Rank: 4

积分
728
发表于 2013-11-22 11:33:56 | 显示全部楼层
很实用~
不过,有些细节方面有点片面、武断。

比如受击模型中,其实首先需要确定的,应该是攻击框、受击框和格挡框的需求,然后再由需求分析、考虑判定条件。

比如罗伯特的踢腿动作,其实两个图的碰撞框本身是没有对错之分的,只不过现在的需求是图2,所以图1是错的;但是,如果原本的需求是图1,那么对错就需要异位了。

再比如格挡的判定:

(如果RA与HA相交的宽度/HA的宽度+RA与HA相交的高度/HA的高度)>=(RA与GA相交的宽度/GA的宽度+RA与GA相交的高度/GA的宽度)

其实能看得出来这个公式的假设是:
三条基础假设:
①攻击框RA与受击框HA和防御框GA都有重叠。
②不希望只用RA与HA(或GA)的关系进行简单的判定,希望同时使用RA、HA、GA这三个数据来使得判定更复杂一点。
③其他条件相同时,受击的优先级高于格挡。
两条特例假设:
①碰撞框是矩形,且相对位置比较有规则(可以视作在同一水平面上)。
②受击框HA的高度小于防御框GA的高度。

该公式成立的条件是基于以上假设的:如果假设不成立,那么公式就存在漏洞。
假设“受击框HA的高度大于防御框GA的高度”,即兰斯洛特的格挡框高度为剑的高度,兰斯洛特的受击框的高度为其身高,此时HA的高度>GA的高度。此时,如果攻击框同时贯穿受击框和防御框(比如将紫框向右平移,爆菊进去且贯穿防御框出来),那么按公式计算的判定结果就是判定成功——而这不是我们想要的结果。

因此,如果楼主能在得出结论的时候附注下对应条件,那么就会更加客观中立。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-4-29 16:18

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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