用行为表达数据集

时间:2014-07-07 15:47:54

标签: c#

我有一个小而静态的数据集(大约500个条目,在编译时定义,不能更改)。但是,每个条目可能具有不同的(可能是唯一的)行为。什么是表示这些数据的最佳方法?

对于更多的背景,我制作游戏,并需要存储有关怪物,物品/装备和能力的数据。所有相同类型的数据都具有一些共享特征和行为,但在某些其他特征和/或行为方面可能不同。一个怪物总会有一个名字和等级,并且通常会以相同的方式掉落战利品,但是" AI"它用来选择下一个能力,或者它会丢弃的战利品几乎是独一无二的。

我到目前为止所获得的解决方案是:

  • 将每个条目硬编码为扩展其类型基础的类(public class WoodenSword : Sword,项目 - >设备 - >武器 - >剑 - > WoodenSword)
  • 对不同的行为进行硬编码,并使数据集文件指向使用的行为(public class WeaponApplyingSlow : IWeaponBehaviour
  • 在我的数据集文件中放置一些脚本(NLua或IronPython),使用脚本定义没有硬编码的行为

哪一种是最好的方法,在这三者之间还是另一种可能的方法?主要考虑可写性和可维护性(执行外部脚本肯定不会给游戏带来明显的性能损失)。我倾向于采用剧本方式,因为编写约500个课程似乎并不合适,但也许还有另一种我无法想到的解决方案。

0 个答案:

没有答案