一款RPG游戏中的剧情脚本如何实现?

对于脚本系统工程师来说,需要实现几个工具,包括但不限于:

脚本编辑器...记事本有点别扭。

脚本编译器...生成脚本二进制文件。

脚本加载程序...将脚本文件加载到内存中,完成解析并准备后续执行。

脚本解释程序...这部分最复杂,维护所有脚本指令到实际程序函数的映射,维护全局脚本变量(最重要的变量是当前脚本行标签),根据当前脚本所在的行调用相应的函数,输入参数。最好有一定的错误跟踪功能,方便脚本规划和使用。

脚本工程师需要为脚本规划者提供一套工具,包括但不限于:

脚本编辑器...记事本有点别扭。

脚本编译器

脚本指令列表

脚本参数列表

场景编辑器最好支持触发编辑,不至于太尴尬。

最好有一个带上下文的脚本调用示例。

因为很多指令需要顺序调用,需要一定的上下文。

脚本指令是核心。

大致可以分为以下几类:

抓取类指令:抓取各种游戏状态,抓取游戏对象,抓取游戏对象状态,是脚本执行对象和判断条件。

判断指令:判断状态、值、触发器等。对象的。

“动作”指令:执行动画、切换游戏状态、执行物体位移、删除东西和添加东西等。

变量类指令:设置变量,清除变量,方便任务管理。

游戏开发的代码原则上可能全部转换成脚本指令,看脑洞有多大。

一些有趣的事情:

脚本触发战斗切换和返回。

在战斗中执行脚本,然后返回战斗。

封装脚本指令以生成复合指令。

人工智能脚本

编写嵌套调用脚本

……

有一套书叫游戏脚本高级编程。

但是玩起来太复杂,不是大厂,单个项目很难有那么多资源。

简单就是好