一个通用高自由度技能系统的设计(一)

一个通用的,高自由度技能系统的设计(一)

最近一直在想,如何设计一套自由度比较高的,灵活性较强的技能系统,方便组合出各种技能。于是各种查阅资料,自己研究,研究出一套高自由度技能系统。也只是初步使用,如有错误之处望大家指正。

该套系统灵感来自于War3的地图编辑器。

首先,我们需要把技能系统进行抽象化设计,那么大多数的技能,可以抽象为:选择条件-选择目标-释放技能(执行相应的Command),由此,我们就可得出一个基本的技能框架。


一个通用高自由度技能系统的设计(一)_第1张图片


由此,我们将技能系统抽象为Event Trigger System,通过该系统我们可以具体实例化为技能系统、事件系统、BUFF、道具功能等等功能。


该系统由三个部分组成,分别为Condition(条件判断)、Target Picker(目标选择器)、Command(执行逻辑)。


三个部分的功能简述如下:

(1)          Condition(条件判断)

Condition(条件判断),通过基类进行派生,派生出可以进行各种条件判断的子类,应用于Trigger系统中,进行条件判断,例如判断血量子类、判断AP子类、判断目标是否存活子类等功能,可自由组合或者设定判断关系等,由策划自由运用。

(2)          Target Picker(目标选择器)

TargetPicker目标选择器。通过基类进行派生,派生出可以选择目标的子类,应用于Trigger系统中,进行目标选择,例如选择友方血量最低的子类、选择距离最近敌方目标的子类,选择敌方全体等功能,也可根据data编辑扩展选择器优先级等功能。

(3)          Command(执行逻辑)

Command执行逻辑,根据子类进行派生,派生出不同的执行逻辑,例如在某个位置播放特效,例如在更改某个单位的属性,例如对某个单位进行位移等等等等功能。

三个系统通过扩展子类功能后,就能组合出多种多样的功能。


下篇文章,我将继续完成该套系统。



你可能感兴趣的:(游戏相关)