游戏技能模块设计(理解)

Unity新手入门进阶之路(群内各种入门资源资料大神):721559786 (加群下载插件资源学习资料)

                                           
behaviac是游戏AI的开发框架组件,也是游戏原型的快速设计工具
behaviac:github

https://github.com/Tencent/behaviac


说是设计系统,其实设计技能机制的结构
技能本身的功能是什么?
主动技能:特定情况下可用->执行表现,在特定时间在对特定区域对特定敌人->产生特定效果->一段时间内产生效果/瞬间产生效果
被动技能->学习时获得buff

根据这个思路,技能机制拆分成技能,子弹,buff三个大块

ps:buff之所拆分为独立的模块主要是buff有很多有的特性,比如buff叠加层数,buff标记用于驱散,目标筛选,表现等等

3个大块的各种事件都可以调用子弹集,从而对特定的目标产生效果
而子弹集本身可以调用到包括子弹在内的3个模块(入口统一可以监控各种效果)
如此,通过各种事件调用子弹,使得技能系统可以在各种情况下让指定的目标产生指定的效果

扩展时,主要看新东西加在哪一块(小功能,子模块等),或者在新的事件中调用子弹组
比如把子弹集的每个子弹扩展为子弹组,一次可以调用多个按特定规则排布的子弹
又或者增加一个触发器类型,增加一直即时效果,本质都是在原有架构内增加小内容

举几个例子:
示例1:
玩家释放技能1->释放子弹1对自身加免疫buff,释放子弹2在1秒后对身前范围最近1个友方击中->命中后对自身释放子弹->命令自身对目标释放技能2
释放技能1后选择对身前最近一个友方追加释放技能2

示例2:
被动技能->获得buff->buff触发器每2秒在自身位置释放单体子弹1清除buff1,aoe子弹击中敌人->每命中一个敌人对自身叠加1层buff1
实际效果:周围敌人越多自身获得越多层buff1

示例3:
玩家释放技能1->释放子弹1对自身周围友方和敌方击中->对命中的目标释放3个子弹:子弹1筛选敌人产生伤害,子弹2筛选友方30%血以上造成治疗,子弹3筛选敌人血量大于80%命中后产生子弹4对自身添加buff
实际效果:对周围友方残血造成治疗,对敌人造成伤害,如果击中的敌人血量较高,自身获得增益

示例4
玩家有被动技能获得buff1->buff触发器效果为暴击击中时若双方距离>300则对目标发射子弹1和子弹2->子弹1对自身添加buff,子弹2筛选有buff2的敌人
技能效果:暴击击中距离自身较远的敌人使自身获得增益,触发时若敌人有buff2,则造成额外效果

示例5
玩家释放主动技能->发射子弹使自身获得6层buff1

buff1附带3个触发器
触发器1->释放技能清除所有层数buff1
触发器2->受到攻击失去1层
触发器3->buff1消失时自身获得buff2
buff2->触发器每1秒对自身附近发射子弹筛选1个敌人->令目标对自身发射子弹添加增益
技能效果:主动隐身,受到攻击失去1层,释放技能后解除隐身,隐身结束后一段时间内受到伤害转移给附近一个敌人

从架构上说,主动技能都可以拆分为释放条件检测->释放->目标选择->产生效果
从而拆分为如上的方式
但是里面很多细节,比如子弹初始位置设置,做成什么样子组合出更多的设计形式,同时可以兼容更多的有效需求
比如一个回合制卡牌游戏,要啥飞行子弹,区域只要相对和绝对位置2大类,然后直接填坐标就好了
就还是看一个策划的抽象能力了...

猜你喜欢

转载自blog.csdn.net/qq_40930606/article/details/80545717