平博(中国)PINNACLE·官方网站

【游戏设计】如何搭建技能实现框架让你少走弯路【干货】平博PINNACLE|平博
平博

平博咨询热线

18950259620

Classification

新闻动态

18950259620
传真:18950259620
手机:18950259620
邮箱:620@qq.com
地址:福建省福州市鼓楼区洪山镇首凤路1号2#楼113室
当前位置: 首页 > 新闻动态 > 公司动态

【游戏设计】如何搭建技能实现框架让你少走弯路【干货】平博PINNACLE

发布时间:2023-09-29 02:34:44 丨 浏览次数:946

  大家好,我是成风a,一名在游戏行业摸爬滚打4年多的小策划,写这篇文章的主要原因是想对以往的工作经历有个回溯,希望让自己的知识体系更深刻完善的同时,也希望能帮到的小伙伴,不过这些仅是以我当前的认知水平所总结的,所以还有很多不足,欢迎大佬们交流,指正。

  出现这种问题的原因在于,前期做战斗的时候因为策划没有用框架的思维想问题,程序也不知道你将来有哪些功待扩展的功能,随着后续版本技能越来越多,越来越复杂,导致维护起来极其繁琐且不稳定。这篇文章的重要意义在于,帮助你梳理出一套扩展性强又好用技能实现思路,这些思路在你以后任何的项目都能用到。看完后,应该会有以下收获:

  一般在项目DEMO阶段,战斗系统就要开始搭建,但起步阶段又不可能就把所有的技能效果规划好,尤其是内容向游戏,你永远不知道战斗策划下一个“奇怪”创意是什么。

  平博 平博官网

  目的是减少开发成本。比如两个A、B技能,技能效果都是造成减速,只是触发条件不同,这时候无需做个全新的减速技能,只要新增触发条件类型即可。聪明的老师们已经发现了,这种思路其实是将一个技能拆分成多个模块,只实现缺失的模块,然后和已有的其他模块快速拼装成一个新的技能。

  技能相关字段多如牛毛,如果所有字段只放在同一张表上,必然会降低翻看速度、错误排查效率。建立多个分表非常重要,如技能主表、BUFF表、伤害表、动效表现表,我会在文章末尾放上一套模板,供大家参考,用了一周时间呕心沥血整理,好想要大家一个小赞支持支持——

  废话不多说,下面是我整理的一套框架,从能否释放到对谁放再到生效结果。任何技能必将经历此流程

  平博 平博官网

  3,被动释放:玩家在战斗中因达成某些事件而触发。被动其实是个大类,实际会细分出很多事件小类:如受击x次,血量低于x%,x秒未受到伤害,受到异常状态等。

  4,混合类型:以上多种类型结合,如主动和被动结合,玩家主动按键后还需满足某个事件才能触发,比如LOL火男,Q技能造成炽热之焰,同时会叠加层数,叠到3层时,爆炸造成百分比魔法伤害。前者炽热之焰为主动类型,只要按键了一定会触发,后者爆炸伤害为被动,必须满足叠加层数才能触发。

  1,技能CD:以时间为单位-秒(s)-参与计算,特点是符合大多数人的认知,减少理解。

  目标选择对技能释放意义重大,相比普攻,技能是低频率高收益行为,精确瞄准释放对象才能使收益最大

  化,比如技能1:对单个目标造成500%伤害,并造成出血状态;技能2:对出血状态的敌人额外造成100%

  伤害。技能1为单体爆发技,打精英/BOSS收益最大,技能2有了对出血的目标增伤,两者配合对精英/

  BOSS更具策略性。筛选要点:①一个技能支持多种目标类型共存;②每种目标类型层层筛选出1个。

  1,一个技能支持多种目标类型共存:单个技能可能会同时有两个效果,且每种效果释放对象不一样,如LOL日女的W,对自己加抗性的同时还对敌人造成伤害。

  2,每种目标类型层层筛选出1个:每一种效果都要走此流程,先选类型,再配置该类型下最大生效目标数量。

  选类型:大类型选个能覆盖全部的,比如以阵营划分,小类型以后随着版本需要慢慢扩展,分两个字段控制,这样做的好处是以免所有情况排列组合起来太臃肿。

  小类型(大类型中再次选):0-不筛选;1-仇恨值最高;2-生命最低;3-近战;其他可扩展

  备用目标:用处在于如果本次释放,攻击范围内找不到筛选后的目标,需要备用目标继续筛,备用目标的个数和顺序根据自身项目定。

  总结:最终逻辑是一个技能支持扩展多种效果类型,每种效果类型选出1个,程序执行的优先级顺序可以通过配置表结构控制。

  战斗公式包含属性词条、倍率词条,以及运算方式。业界常见的战斗公式可分为减法和乘法两类,两种计算方式有着不同的特点。

  减法公式举例:伤害 = { [攻击(1+属性倍率)- 防御] (1+技能倍率)} (1+最终伤害倍率)

  ①理解成本低,每提升1点攻击力,对方防御不变时,伤害也提升1点;②属性购买成长体验明显;③利用刮痧线做数值强策略性。

  缺点:攻击力的收益受对方防御值的影响,且防御值越接近攻击值,影响的程度越大,尤其是在当防御值=攻击值,会出现攻击方造成的伤害始终为0的不破防现象,所以防御投放上数值计算上比较困难。

  乘法公式举例:伤害 = { [攻击(1+属性倍率)(1-免伤率)] (1+技能倍率)} (1+最终伤害倍率)

  注:从战斗公式中可以看出,词条所属的乘区位置直接影响着其价值,需与程序约束好公式中每个词条的代表意义。

  伤害类型:常规的类型分为物理,法术,真实,治疗。不同伤害类型用于参与计算的公式不同。

  伤害段数:每次释放技能打的次数,本次总伤害 = 伤害公式所得值 * 段数。相信不少同学开始有疑惑了,干嘛用段数这么麻烦的设计,直接打一次换算成同样的总伤害不就行了么?答案还真不是。我直接说做下个人理解:

【游戏设计】如何搭建技能实现框架让你少走弯路【干货】平博PINNACLE(图8)

  特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

  财联社9月28日电,据广西壮族自治区纪委监委,广西壮族自治区交通运输厅原党组书记陈鸿起被开除党籍。

  恒大重磅公告:许家印因涉嫌违法犯罪,已被采取强制措施!身家已缩水超90%

  金秋citywalk 2023北京798艺术节开幕 近百场活动持续一月

  Im in bus 和 Im on bus 哪个对的,哪个是错的?答案让人意外

  Redmi Note 13 Pro+体验:个性设计搭配全新2亿像素主摄

Copyright © 2018-2023 平博PINNACLE集团有限公司 版权所有
电 话:18950259620    手 机:18950259620   传 真:18950259620    E-mail:620@qq.com
地 址:福建省福州市鼓楼区洪山镇首凤路1号2#楼113室
闽ICP备19017801号-1

扫一扫关注微信公众帐号

免费咨询 投诉建议