下面那个大框是“线型弹道”,大多数玩家会叫他非指向性技能——比如拉克丝的Q,艾希的万箭齐发,或是EZ的所有技能。也有一些让人惊喜的技能也出于此,比如亚索的风墙:它就属于线型弹道,挡弹道的弹道,够讽刺的了。
线型弹道比起基础弹道要复杂的多,举个例子,他们在飞行过程中可能击中目标,也可以回到施法者处(如德莱文的大招),或者技能贴近地面(如婕拉的E)。把这些不同的技能都混为一类确实有点作死,不过线型弹道还和基础弹道有密切联系。由于使用了基础弹道的系统预设值,导致线型弹道继承了基础弹道的功能性,不过线型弹道的使用方法略微不同。这就让我们很尴尬,因为当我们想要改动基础弹道的算法时,就难免会牵扯到线型弹道,这就把事情搞得更加复杂了。
那个底下的小框里面装着3个圆形弹道:皎月的Q和W,狐狸的W。他们的机制和线型弹道相似,但飞行轨迹为圆形。它们也来源于基础弹道,在打击方式上和线型弹道相似,而移动轨迹不同。在做这张表的时候我发现了一些bug,这些bug使得线型弹道无法变成圆形。所以复制这些代码就相当于也复制了这些bug;复制狂魔永远的痛啊。
让我们形象的感受一下这种弹道系统吧。大概像这样
总之,lol中的弹道系统十分复杂但是毫无必要,自我纠结而且十分脆弱,改也改不得。既然弹道在这个游戏中是一个很大的设计区域,那么我们就必须简化它,从而使其更容易被改动。
最后我们决定把原先的系统推翻重做,这是最简单粗暴的方法。
重做时我们本着4个核心原则:
1 相似的功能性应该在写在同一个代码里,来确保理解方便
2不同功能组之间的依赖性要最少且划分清楚
3弹道基本的形态功能应该要简单明了
4某些特殊弹道要和主要算法直接分离
我们的团队先是确定弹道的核心问题,然后分别对这些问题做出计划。看得出我很喜欢列清单(上面那张你看不懂的表就是我列的,啦啦啦), 所以我也要陈列一下弹道的工作原理组成:
腾讯英雄联盟电竞经理手游 v1.13.0 1.88 Bytes
下载
湘ICP备2022002427号-10 湘公网安备:43070202000427号
© 2013~2024 haote.com 好特网