第1篇 脚本编程的基本原理
第1章 脚本编程概论
1.1什么是脚本编程
1.2结构化的游戏内容——一种简单的游戏设计方法
1.3通过将逻辑和具体实现相互分离来改善这种方法
1.4硬编码的危险性
1.5将功能函数存放到外部文件
1.6脚本是如何运行的
1.6.1计算机程序设计概述
1.6.2脚本编程概述
1.7脚本系统的基本类型
1.7.1面向过程的语言系统和面向对象的语言系统
1.7.2基于命令的语言系统
1.7.3动态链接的模块系统
1.7.4编译型代码和解释型代码
1.7.5现有的脚本设计方法
1.8总结
第2章 脚本编程系统的应用
2.1编写脚本的普遍目的
2.2角色扮演游戏(Role Playing Games,RPGs)
2.2.1复杂而又有深度的故事情节
2.2.2非玩家角色(Non-Player Characters,NPCs)
2.2.3物品和武器
2.2.4敌人
2.3第一人称射击游戏(First-Person Shooters,FPSs)
2.3.1物品、迷题和开关
2.3.2敌人智能(enemy AI)
2.4总结
第2篇 基于命令的脚本
第3章 基于命令的脚本编程绪论
3.1基于命令的脚本编程的基础知识
3.1.1高级的引擎控制
3.1.2命令
3.1.3你这个领域中的大师
3.1.4实际解决掉的一些问题
3.2基于命令的脚本编程综述
3.2.1游戏引擎的功能估计
3.2.2载入和执行脚本
3.3实现一种基于命令的语言
3.3.1设计这种语言
3.3.2编写脚本
3.3.3实现
3.4为一个游戏的介绍顺序编写脚本
3.4.1语言
3.4.2脚本
3.4.3执行
3.5为RPG游戏中某个角色的行为编写脚本
3.5.1语言
3.5.2改进语法
3.5.3管理游戏中的角色
3.5.4脚本
3.5.5执行
3.5.6游戏演示中的主循环
3.6并发的脚本执行
3.7总结
3.8 CD上的内容
3.9挑战
第4章基于命令的高级脚本.
4.1新的数据类型一
4.1.1布尔变量
4.1.2支持浮点数
4.1.3通用目的符号常量
4.2简单迭代和条件逻辑
4.2.1条件逻辑和游戏标记
4.2.2将代码按块分组
4.2.3块列表
4.2.4迭代逻辑
4.2.5嵌套
4.3基于事件的脚本
4.4将脚本编译成二进制格式
4.4.1提高执行速度
4.4.2检测编译时的错误
4.4.3恶意的脚本攻击
4.4.4商用编译器是如何工作的
4.5基本的脚本预处理
4.6总结
第3篇 结构化的脚本编程语言概述
第5章 结构化的脚本编程系统介绍
5.1总体的脚本编写结构
5.1.1高级代码
5.1.2低级代码
5.1.3虚拟机
5.2深入分析XtremeScript
5.2.1高级代码/编辑
5.2.2低级代码/汇编
5.2.3虚拟机
5.3 XtremeScript系统
5.3.1高级部分
5.3.2低级部分
5.3.3运行时间
5.4总结
第6章 对现有脚本编程系统的集成和使用
6.1集成(Integration)
6.2脚本系统的执行过程
6.3跳动的外星人头像演示
6.4Lua(以及基本的脚本编程概念)
6.4.1Lua系统一瞥
6.4.2Lua语言
6.4.3将Lua语言与C语言相集成
6.4.4高级的Lua话题
6.4.5网络链接
6.5Python
6.5.1 Python系统一览
6.5.2 Python语言
6.5.3 Python与C的集成
6.5.4高级话题
6.5.5网络链接
6.6Tcl
6.6.1ActiveStateTcl
6.6.2Tcl语言
6.6.3Tcl和C的集成
6.6.4.高级主题
6.6.5网络链接
6.7你到底该使用哪个脚本编程系统呢
6.8编写一个实际的游戏
6.9总结
6.10CD上的内容
第7章 设计一个面向过程的脚本编程语言
7.1语言的常见类型
7.1.1汇编类型的语言(Assembly—Style Languages)
7.1.2权衡利弊
7.2函数
7.2.1面向对象程序设计.
7.2.2XtremeScript语言概述
7.2.3语法和特性
7.2.4保留字列表
7.3总结
第4篇 设计和实现一种底层语言
第8章 汇编语言入门
8.1什么是汇编语言
8.2为什么现在讲述汇编
8.3汇编语言是怎样工作的
8.3.1指令
8.3.2助记符和操作码
8.3.3 RISC和CISC
8.3.4正交指令集
8.3.5寄存器
8.3.6堆栈
8.4XVM汇编简介
8.4.1初始赋值
8.4.2 XVM指令集
8.4.3.XASM指示符
8.5XVM汇编语言概要
8.6小结
第9章 构造XASM汇编器
9.1一个简单的汇编器是如何运作的
9.1.1指令的汇编
9.1.2变量的汇编
9.1.3操作数的汇编
9.1.4字符串型字面量的汇编
9.1.5跳转指令和函数调用的汇编
9.2 XASM概述
9.2.1 内存管理.
9.2.2输入:一个XVM汇编脚本的结构
9.2.3输出:一个XVM可执行文件的结构
9.3汇编器的实现
9.3.1基本的词法分析/语法分析理论
9.3.2基本字符串处理
9.3.3汇编器的框架
9.3.4词法分析/属性字识别
9.3.5错误处理
9.3.6语法分析
9.3.7构建.XSE可执行文件
9.3.8汇编过程
9.4小结
9.5CD上的内容
9.6挑战
第5篇 设计和实现虚拟机
第10章 汇编语言入门
10.1虚拟机的灵魂
10.1.1模拟硬件
10.1.2虚拟机的主要组成部分
10.1.3多线程
10.1.4和主应用程序的集成
10.2虚拟机生命周期的简单概述
10.2.1装载脚本
10.2.2从入口点开始执行
10.2.3执行周期
10.2.4 函数调用
10.2.5终止和关闭
10.3 XVM原型的结构概述
10.3.1脚本头
10.3.2,运行时值
10.3.3指令流
10.3.4运行时堆栈
10.3.5函数表
10.3.6主应用程序API调用表
10.3.7最终的脚本结构
10.4建立XVM原型
10.4.1装载.XSE可执行文件
10.4.2结构接口
10.4.3初始化虚拟机
10.4.4执行周期
10.4.5终止与关闭
10.5概述
10.6CD上的内容
10.7挑战
第11章 高级虚拟机的概念和问题
11.1新一代虚拟机
11.2多线程
11.2.1多线程的基本原理
11.2.2装载和存储多个脚本
11.2.3执行多线程
11.3主应用程序集成
11.3.1和主应用程序并行运行脚本
11.3.2集成接口简介
11.3.3XVM的公有接口(Public Interface)
11.3.4实现集成接口
11.3.5增加线程优先级
11.4演示最终的XVM
11.5小结
11.6CD上的内容
11.7挑战
第6篇 编译高级代码
第12章 编译理论概论
12.1编译理论概述
12.1.1编译的几个阶段
12.1.2XtremeScript与.XASM是如何工作的
12.1.3高级编译理论
12.2总结
第13章 词法分析器
13.1基础知识
13.1.1从字符到单词
13.1.2属性标注.
13.1.3词法分析方法
13.2词法分析器的工作
1 3.2.1读入并保存文本文件
13.2.2显示结果
13.2.3错误处理
13.3一个数值词法分析器
13.3.1分词策略
13.3.2完成这个演示程序
13.4分析标识符和保留字
13.4.1新的状态和属性符
13.4.2测试文件
13.4.3升级词法分析器
13.4.4完成这个演示程序
13.5最后的词法分析器:分隔符、运算符和字符串
13.5.1分析分隔符
13.5.2分析字符串
13.5.3运算符
13.5.4完成这个演示
13.6总结
13.7CD上的内容
13.8挑战
第14章 构造XtremeStcript编译器框架
14.1策略纵览
14.1.1前端
14.1.2中间代码模块
14.1.3后端
14.1.4主要结构
14.1.5接口和封装
14.1.6编译器的生命周期
14.2命令行接口
14.2.1Logo和使用信息
14.2.2读入文件名称
14.2.3读入选项
14.3初始化数据结构
14.3.1链表
14.3.2堆栈
14.4初始化和关闭
14.4.1全局变量和数据结构
14.4.2初始化
14.4.3关闭
14.5编译器的模块
14.6装载模块
14.7预处理模块
14.7.1单行注释
14.7.2块注释
14.7.3预处理指令
14.8编译器的表格
14.8.1符号表
14.8.2函数表
14.8.3字符串表
14.9集成词法分析器模块
14.9.1回卷属性符流
14.9.2一种新的源代码格式
14.9.3其他新的函数
14.9.4重置词法分析器
14.10语法分析器模块
14.11错误处理
14.11.1普通错误
14.11.2代码错误
14.11.3错误层叠
14.12中间代码模块
14.12.1实现中间代码的方法
14.12.2XtremeScript中间代码.
14.12.3接口
14.13代码生成模块
14.13.1代码生成基础
14.13.2通用格式
14.14生成最终的可执行体
14.15整理
14.15.1初始化编译进程
14.15.2打印编译统计数据
14.1.5.3编写测试脚本
14.16总结
14.17CD上的内容
14.18挑战
第15章 语法分析和语义分析.
15.1什么是语法分析器.
15.1.1语法和语义分析
15.1.2表达式语法
15.1.3语法树
15.1.4语法分析是如何工作的
15.2 XtremeScript语法分析器模块
15.2.1基础
15.2.2分析策略
15.3分析语句和代码块
15.3.1语法图
15.3.2实现
15.4分析声明语句
15.4.1函数声明
15.4.2变量和数组声明
15.4.3主应用程序API函数声明
15.4.4测试代码生成模块
15.5分析简单的表达式
15.5.1表达式分析策略
15.5.2理解表达式语法分析器
15.5.3编码表达式分析
15.6完整表达式分析
15.6.1新因子类型
15.6.2分析函数调用
15.6.3新的单目运算符
15.6.4新的双目运算符
15.6.5逻辑和关系运算符
15.6.6左值和右值
15.7独立的运行时环境
15.7.1本地应用程序
15.7.2主应用程序API
15.8分析高级语句和结构
15.8.1赋值语句
15.8.2函数调用
15.8.3return
15.8.4 While循环
15.8.5 flor循环.
15.8.6 If分支
15.9语法图总结
15.10测试驱动
15.10.1Hello,World!
15.10.2绘制矩形
15.10.3 Bouncing Head示例
15.11总结
15.12CD上的内容
15.13挑战
第7篇 完成培训
第16章 应用这个系统开发的一个完整游戏
16.1介绍LockDown
16.1.1素材来源
16.1.2最初的计划和设置
16.2脚本策略
16.2.1集成XtremeScript
16.2.2主API
16.2.3编写脚本
16.2.4装载和运行脚本
16.2.5速度问题
16.3如何玩Lockdown
16.3.1控制
16.3.2与物体交互
16.3.3区域地图
16.3.4战斗
16.3.5完成这个目标
16.4总结
16.5CD上的内容
16.6挑战
第17章 从今往后,何去何从
17.1现在究竟该干什么呢
17.2扩展你的知识
17.2.1编译器理论
l7.2.2运行时环境
17.3高级话题和思想
17.4总结