如何处理Gameflow和进程?

我正在构建自己的2D引擎,并尝试处理角色的进展

例如,当玩家有一个特殊的物品时,门打开,或者当他与某人谈话并且拥有物品时,该人以不同的方式作出反应。

我不想硬编码。 有一个共同的方式来处理这样的事情? 我想过一个FSM来处理这个问题,但是它似乎太复杂了。 (我想要一个更简单的方法。)

目前,我用几个if语句处理它,检查字符items数组是否有item X,然后说这个,如果他有item Y,那就这么说。

PS:我正在用JavaScript编写我的引擎,所以如果你发布代码,我可以用Java和AS 3,但不能用C / C ++。

大多数比较复杂的游戏都使用脚本语言编写世界互动脚本。

游戏中的某些情况会触发脚本事件(与NPC互动,杀死某个敌人,进入某个区域,拿起某个物品…)。 当这样的事件被触发时,脚本文件中的一个函数被执行,这个函数又调用了一些改变世界的游戏function(“脚本绑定”)。

哪些事件触发哪些脚本通常不是硬编码的,而是在地图编辑器或项目描述文件中定义的。

这样的脚本语言可以是自写的,也可以使用现有的脚本语言。 我会推荐后者,因为编写一个全function的编程语言是一个非常艰巨的任务,无论是在规划和执行。 许多stream行的脚本语言都具有用于将它们集成到各种stream行的“真实”编程语言中的库。 这为您提供了一个经过良好testing的devise良好的语言实现,并且工作量最less。

使用哪种脚本语言是个人品味的问题。