一款RPG游戏中的剧情脚本如何实现?
对于脚本系统工程师来说,需要实现几个工具,包括但不限于:
脚本编辑器...记事本有点别扭。
脚本编译器...生成脚本二进制文件。
脚本加载程序...将脚本文件加载到内存中,完成解析并准备后续执行。
脚本解释程序...这部分最复杂,维护所有脚本指令到实际程序函数的映射,维护全局脚本变量(最重要的变量是当前脚本行标签),根据当前脚本所在的行调用相应的函数,输入参数。最好有一定的错误跟踪功能,方便脚本规划和使用。
脚本工程师需要为脚本规划者提供一套工具,包括但不限于:
脚本编辑器...记事本有点别扭。
脚本编译器
脚本指令列表
脚本参数列表
场景编辑器最好支持触发编辑,不至于太尴尬。
最好有一个带上下文的脚本调用示例。
因为很多指令需要顺序调用,需要一定的上下文。
脚本指令是核心。
大致可以分为以下几类:
抓取类指令:抓取各种游戏状态,抓取游戏对象,抓取游戏对象状态,是脚本执行对象和判断条件。
判断指令:判断状态、值、触发器等。对象的。
“动作”指令:执行动画、切换游戏状态、执行物体位移、删除东西和添加东西等。
变量类指令:设置变量,清除变量,方便任务管理。
游戏开发的代码原则上可能全部转换成脚本指令,看脑洞有多大。
一些有趣的事情:
脚本触发战斗切换和返回。
在战斗中执行脚本,然后返回战斗。
封装脚本指令以生成复合指令。
人工智能脚本
编写嵌套调用脚本
……
有一套书叫游戏脚本高级编程。
但是玩起来太复杂,不是大厂,单个项目很难有那么多资源。
简单就是好