游戏脚本引擎设计与实现

游戏脚本引擎设计与实现

论文摘要

游戏脚本是计算机游戏逻辑的载体,游戏脚本引擎则是游戏脚本的运行支撑环境。将游戏脚本引入到游戏编程之后,可以避免游戏逻辑的硬编码化,从而大大提高计算机游戏的开发效率。目前国外已有多款适合作为游戏脚本引擎的动态编程语言(例如Python、Ruby、Lua等)被开发出来,而国内的游戏开发公司也开始逐步将这些游戏脚本引擎应用到自己的游戏产品开发之中。本文介绍了一个简单的游戏脚本引擎系统(XtremeScript脚本系统)的设计与实现,其核心的设计思路为:将计算机游戏逻辑写入到脚本文件(而不是硬编码到计算机游戏主应用程序中),虚拟机软件负责执行这些脚本文件,并将执行的结果通过特定的函数调用接口返回给计算机游戏主应用程序。XtremeScript脚本系统主要由三部分组成:XtremeScript编译器、XVM虚拟机、XVM汇编器。XtremeScript编译器可以将XtremeScript语言(C语言的一种子集)编译成XVM汇编语言(一种类似INTEL汇编语言的低级语言);XVM汇编器可以将XVM汇编语言汇编成XVM虚拟机可以识别并执行的字节码;XVM虚拟机是一个模拟XVM汇编语言CPU行为并嵌入在宿主程序(如游戏主应用程序)中运行的软件,它能识别并执行由XVM汇编语言汇编而成的字节码,并向宿主程序返回相应的运行结果。本文分析研究了一个简单的游戏脚本引擎(XtremeScript脚本系统)的工作原理和实现机制,构建了一个初步可用的脚本引擎系统,给出了脚本系统设计与实现的一条可行之路。在消化吸收原有工作的基础上,对相关的算法和程序实现进行了分析和优化,以语法制导的规则重写了编译器和汇编器的核心程序,使得程序结构变得清晰可读;以基于栈原则的简单寄存器分配算法和基于硬编码的决策树法等高效算法去替代原有算法,使得脚本系统生成的代码更加简洁,较大地提高了它的运行速度。

论文目录

  • 摘要
  • Abstract
  • 第一章 绪论
  • 1.1 选题意义
  • 1.2 国内外研究现状
  • 1.3 本文工作及章节安排
  • 1.4 本章小结
  • 第二章 XtremeScript脚本系统总体介绍
  • 2.1 XtremeScript脚本语言和虚拟机
  • 2.2 XtremeScript脚本系统工作流程介绍
  • 2.3 本章小结
  • 第三章 XVM汇编器的设计与实现
  • 3.1 XVM汇编器的设计
  • 3.1.1 XVM汇编器的功能概述
  • 3.1.2 汇编器词法分析部分的DFA图
  • 3.1.3 指令的汇编
  • 3.1.4 变量的汇编
  • 3.1.5 标签处理的要点
  • 3.2 XVM汇编器的实现
  • 3.2.1 汇编器中的主要数据结构
  • 3.2.2 主程序结构分析
  • 3.2.3 错误处理策略
  • 3.2.4 语法分析
  • 3.2.5 Assemble()函数说明
  • 3.2.6 程序实际运行界面截取
  • 3.3 本章小结
  • 第四章 XVM虚拟机的设计与实现
  • 4.1 XVM虚拟机的设计
  • 4.1.1 XVM虚拟机的功能概述
  • 4.1.2 装载字节码文件
  • 4.1.3 从入口点开始执行
  • 4.1.4 执行周期
  • 4.1.5 关于函数调用的说明
  • 4.2 XVM虚拟机的实现
  • 4.2.1 XVM虚拟机中的主要数据结构
  • 4.2.2 RunScript函数分析
  • 4.2.3 双目运算ADD的实现
  • 4.2.4 CALL的实现
  • 4.2.5 程序实际运行界面截取
  • 4.3 本章小结
  • 第五章 XVM虚拟机与宿主程序的集成
  • 5.1 XVM虚拟机与宿主程序的集成概述
  • 5.2 XVM虚拟机与宿主程序的集成的实现
  • 5.2.1 XVM虚拟机的接口概述
  • RegisterHostAPIFunc的实现'>5.2.2 XSRegisterHostAPIFunc的实现
  • GetParamAsInt的实现'>5.2.3 XSGetParamAsInt的实现
  • ReturnIntFromHost的实现'>5.2.4 XSReturnIntFromHost的实现
  • 5.2.5 XVM虚拟机与主应用程序的集成的一个例子
  • 5.2.6 程序实际运行界面截取
  • 5.3 本章小结
  • 第六章 XtremeScript编译器的设计与实现
  • 6.1 XtremeScript编译器的设计
  • 6.1.1 编译器的功能概述
  • 6.1.2 利用硬编码的决策树算法提取token
  • 6.1.3 语法制导的递归下降翻译
  • 6.1.4 表达式的翻译
  • 6.1.5 标签的生成与回填
  • 6.1.6 中间代码的生成
  • 6.1.7 目标代码的生成
  • 6.2 XtremeScript编译器的实现
  • 6.2.1 编译器中的文件结构介绍
  • 6.2.2 编译器中的主要数据结构
  • 6.2.3 错误处理策略
  • 6.2.4 主程序结构分析
  • 6.2.5 程序实际运行界面截取
  • 6.3 本章小结
  • 第七章 结束语
  • 7.1 研究工作总结
  • 7.2 下一步研究的方向
  • 致谢
  • 参考文献
  • 附录A 硕士期间发表的论文
  • 附录B XtremeScript语言定义
  • 附录C XVM汇编语言定义
  • 相关论文文献

    • [1].沉浸式教育导向的地震求生情景剧脚本设计原理[J]. 决策探索(中) 2019(04)
    • [2].排版软件脚本化研究[J]. 中国新技术新产品 2017(07)
    • [3].基于动作脚本的文本框交互式练习题[J]. 电脑知识与技术 2016(25)
    • [4].脚本语言下三维动画技术的研究与实现[J]. 通讯世界 2016(22)
    • [5].脚本[J]. 词刊 2009(05)
    • [6].青春脚本[J]. 芳草(青春版) 2010(06)
    • [7].微课选题及脚本设计制作例谈[J]. 安徽教育科研 2018(14)
    • [8].论企业应如何扎实有效地开展“无脚本演练”[J]. 山东工业技术 2017(13)
    • [9].教学设计在教育游戏脚本设计中的应用探讨——以某款教育游戏的脚本设计为例[J]. 软件导刊(教育技术) 2015(07)
    • [10].调用脚本 给Edge配装备[J]. 电脑爱好者 2016(07)
    • [11].为什么脚本无法使用[J]. 电脑爱好者 2017(17)
    • [12].用安全扩展拦截无用的脚本[J]. 电脑迷 2015(03)
    • [13].当前页面脚本发生错误的解决办法[J]. 计算机与网络 2012(20)
    • [14].协作脚本的研究综述[J]. 电化教育研究 2010(05)
    • [15].利用脚本封装抵御跨站脚本攻击[J]. 广州大学学报(自然科学版) 2010(05)
    • [16].微课脚本设计质量提升策略研究[J]. 广西职业技术学院学报 2019(04)
    • [17].脚本理论视角下的明喻意象翻译研究[J]. 长江大学学报(社科版) 2014(05)
    • [18].美国脚本阅读方案:评析与启示[J]. 学园 2012(01)
    • [19].脚本理论视角下行为文化的翻译[J]. 中国俄语教学 2012(02)
    • [20].脚本理论观照下的电影字幕翻译[J]. 电影文学 2012(06)
    • [21].协作脚本技术及其发展方向研究[J]. 中国电化教育 2011(02)
    • [22].基于社会脚本理论的英语听力认知策略研究[J]. 吉林工程技术师范学院学报 2009(07)
    • [23].脚本系统问题解决方案[J]. 程序员 2009(09)
    • [24].多媒体课件的脚本设计与制作[J]. 中等职业教育(理论) 2008(02)
    • [25].利用动作脚本制作动态进度条[J]. 电脑知识与技术 2020(05)
    • [26].列控系统脚本录制工具的研究与实现[J]. 铁道通信信号 2017(01)
    • [27].类C脚本架构设计及在电力系统中的应用[J]. 计算机技术与发展 2017(03)
    • [28].脚本语言及其应用[J]. 通讯世界 2016(16)
    • [29].微课程脚本设计的意义与要求[J]. 江苏第二师范学院学报 2015(06)
    • [30].自制脚本也能监控游戏[J]. 电脑爱好者 2011(10)

    标签:;  ;  ;  ;  

    游戏脚本引擎设计与实现
    下载Doc文档

    猜你喜欢