当前位置: 华文问答 > 游戏

如何设计一个易扩展的游戏技能系统?

2015-06-17游戏

在公司的ARPG项目中曾复刻过崩三,战双,原神的角色机制,也曾经做过类似崩铁的战斗机制,在项目之后想做个总结,和大家一起探讨一下。

在同类游戏中,一个技能的战斗机制大体上都是由什么条件触发,从而给自身或者触发目标附加了什么效果,一个技能往往设定上存在多个这样的触发机制。在这样的设计下,我们需要分解每一个触发情况,和每一种效果实际上干了什么事情,按照当前项目业务逻辑的执行顺序进行调用,就能实现设定的机制效果了。

这样我们可以把战斗机制大体上拆分为触发器(因为什么条件触发) + 效果器(具体干了什么事),这样就类似于微服务架构,每个环节只用负责自身业务,通过数据关联来实现联动,这样代码逻辑能够通过配置(数据表或者行为树)就能实现完整的战斗机制业务链条,单次功能开发就可以用在各种机制里,极大减少了代码冗余和维护成本。

触发器可以调用效果器里的任何效果,效果器之间也可以互相调用,比如触发了一个被动效果,要发射一个子弹飞向触发目标,命中后给目标附加一个状态。这样每个业务环节都可以自由的排列组合