书籍详情

游戏脚本高级编程(含盘)

游戏脚本高级编程(含盘)

作者:(美)瓦兰尼斯

出版社:清华大学出版社

出版时间:2006-10-01

ISBN:9787302130796

定价:¥98.00

购买这本书可以去
内容简介
  本书引领读者进入程序员们称之为“游戏脚本编程”的全新领域,本书将从概括论述什么是脚本编程以及它是如何实现的开始,阐述游戏编程的理念,根据作者多年的开发经验,使读者掌握使用脚本是把游戏代码和主引擎分离开的最理想的办法,带读者进入神秘的游戏脚本语言世界,学习如何编写脚本语言,编译器理论,享受游戏编程方面的极大乐趣。.本书是游戏开发经典丛书系列之一,适合游戏开发人员、业余游戏软件开发爱好者,也可以作为大专院校相关专业的参考书。...
作者简介
  本书提供作译者介绍Alex Varanese从20世纪80年代中期,也就是在他5岁时就被游戏开发给迷住了,他首先把眼光投向了——带着迷恋和某种不可解释的亲密——8位的任天堂娱乐系统;同时他也对艺术有极大的热情,但是后来才成为一个真正的代码编写者,大约是在15岁左右,那个时候使用的是QBASIC。18岁的时候,他作为一个Java程序员在硅谷开始了他的程序员生涯,从事J2EE平台上的一些爆发的B2B项目,而在这之前大约一年他还是一个半自由撰稿人和室内图形设计者。.然而由于感觉到在办公室的生活太受限制,他又...
目录
目    录
第1篇  脚本编程的基本原理
第1章  脚本编程概论    2
1.1  什么是脚本编程    2
1.2  结构化的游戏内容——一种简单的游戏设计方法    3
1.3  通过将逻辑和具体实现相互分离来改善这种方法    7
1.4  硬编码的危险性    9
1.5  将功能函数存放到外部文件    10
1.6  脚本是如何运行的    12
1.6.1  计算机程序设计概述    12
1.6.2  脚本编程概述    14
1.7  脚本系统的基本类型    16
1.7.1  面向过程的语言系统和面向对象的语言系统    16
1.7.2  基于命令的语言系统    17
1.7.3  动态链接的模块系统    18
1.7.4  编译型代码和解释型代码    19
1.7.5  现有的脚本设计方法    20
1.8  总结    21
第2章  脚本编程系统的应用    22
2.1  编写脚本的普遍目的    22
2.2  角色扮演游戏(Role Playing Games,RPGs)    24
2.2.1  复杂而又有深度的故事情节    24
2.2.2  非玩家角色(Non-Player Characters,NPCs)    25
2.2.3  物品和武器    31
2.2.4  敌人    34
2.3  第一人称射击游戏(First-Person Shooters,FPSs)    38
2.3.1  物品、迷题和开关    39
2.3.2  敌人智能(enemy AI)    44
2.4  总结    46

第2篇  基于命令的脚本
第3章  基于命令的脚本编程绪论    48
3.1  基于命令的脚本编程的基础知识    48
3.1.1  高级的引擎控制    49
3.1.2  命令    51
3.1.3  你这个领域中的大师    51
3.1.4  实际解决掉的一些问题    51
3.2  基于命令的脚本编程综述    52
3.2.1  游戏引擎的功能估计    52
3.2.2  载入和执行脚本    54
3.3  实现一种基于命令的语言    56
3.3.1  设计这种语言    56
3.3.2  编写脚本    56
3.3.3  实现    57
3.4  为一个游戏的介绍顺序编写脚本    67
3.4.1  语言    68
3.4.2  脚本    69
3.4.3  执行    69
3.5  为RPG游戏中某个角色的行为编写脚本    70
3.5.1  语言    71
3.5.2  改进语法    71
3.5.3  管理游戏中的角色    72
3.5.4  脚本    74
3.5.5  执行    75
3.5.6  游戏演示中的主循环    78
3.6  并发的脚本执行    80
3.7  总结    82
3.8  CD上的内容    82
3.9  挑战    82
第4章  基于命令的高级脚本    84
4.1  新的数据类型    85
4.1.1  布尔变量    85
4.1.2  支持浮点数    85
4.1.3  通用目的符号常量    86
4.2  简单迭代和条件逻辑    92
4.2.1  条件逻辑和游戏标记    93
4.2.2  将代码按块分组    94
4.2.3  块列表    96
4.2.4  迭代逻辑    97
4.2.5  嵌套    98
4.3  基于事件的脚本    100
4.4  将脚本编译成二进制格式    102
4.4.1  提高执行速度    102
4.4.2  检测编译时的错误    103
4.4.3  恶意的脚本攻击    103
4.4.4  商用编译器是如何工作的    104
4.5  基本的脚本预处理    108
4.6  总结    111
第3篇  结构化的脚本编程语言概述
第5章  结构化的脚本编程系统介绍    114
5.1  总体的脚本编写结构    114
5.1.1  高级代码    115
5.1.2  低级代码    115
5.1.3  虚拟机    116
5.2  深入分析XtremeScript    118
5.2.1  高级代码/编辑    119
5.2.2  低级代码/汇编    122
5.2.3  虚拟机    124
5.3  XtremeScript系统    125
5.3.1  高级部分    125
5.3.2  低级部分    125
5.3.3  运行时间    125
5.4  总结    126
第6章  对现有脚本编程系统的集成和使用    127
6.1  集成(Integration)    127
6.2  脚本系统的执行过程    131
6.3  跳动的外星人头像演示    132
6.4  Lua(以及基本的脚本编程概念)    135
6.4.1  Lua系统一瞥    136
6.4.2  Lua语言    137
6.4.3  将Lua语言与C语言相集成    153
6.4.4  高级的Lua话题    182
6.4.5  网络链接    183
6.5  Python    183
6.5.1  Python系统一览    183
6.5.2  Python语言    185
6.5.3  Python与C的集成    200
6.5.4  高级话题    219
6.5.5  网络链接    220
6.6  Tcl    220
6.6.1  ActiveStateTcl    221
6.6.2  Tcl语言    223
6.6.3  Tcl和C的集成    241
6.6.4  高级主题    255
6.6.5  网络链接    255
6.7  你到底该使用哪个脚本编程系统呢    256
6.8  编写一个实际的游戏    258
6.9  总结    258
6.10  CD上的内容    258
第7章  设计一个面向过程的脚本编程语言    259
7.1  语言的常见类型    259
7.1.1  汇编类型的语言(Assembly-Style Languages)    260
7.1.2  权衡利弊    263
7.2  函数    265
7.2.1  面向对象程序设计    268
7.2.2  XtremeScript语言概述    269
7.2.3  语法和特性    271
7.2.4  保留字列表    280
7.3  总结    281
第4篇  设计和实现一种底层语言
第8章  汇编语言入门    284
8.1  什么是汇编语言    284
8.2  为什么现在讲述汇编    285
8.3  汇编语言是怎样工作的    285
8.3.1  指令    285
8.3.2  助记符和操作码    294
8.3.3  RISC和CISC    296
8.3.4  正交指令集    298
8.3.5  寄存器    298
8.3.6  堆栈    299
8.4  XVM汇编简介    304
8.4.1  初始赋值    305
8.4.2  XVM指令集    306
8.4.3  XASM指示符    310
8.5  XVM汇编语言概要    312
8.6  小结    313
第9章  构造XASM汇编器    314
9.1  一个简单的汇编器是如何运作的    315
9.1.1  指令的汇编    315
9.1.2  变量的汇编    317
9.1.3  操作数的汇编    319
9.1.4  字符串型字面量的汇编    321
9.1.5  跳转指令和函数调用的汇编    322
9.2  XASM概述    326
9.2.1  内存管理    326
9.2.2  输入:一个XVM汇编脚本的结构    328
9.2.3  输出:一个XVM可执行文件的结构    338
9.3  汇编器的实现    345
9.3.1  基本的词法分析/语法分析理论    345
9.3.2  基本字符串处理    350
9.3.3  汇编器的框架    356
9.3.4  词法分析/属性字识别    376
9.3.5  错误处理    398
9.3.6  语法分析    400
9.3.7  构建.XSE可执行文件    418
9.3.8  汇编过程    423
9.4  小结    427
9.5  CD上的内容    428
9.6  挑战    428
第5篇  设计和实现虚拟机
第10章  汇编语言入门    430
10.1  虚拟机的灵魂    430
10.1.1  模拟硬件    430
10.1.2  虚拟机的主要组成部分    432
10.1.3  多线程    433
10.1.4  和主应用程序的集成    434
10.2  虚拟机生命周期的简单概述    434
10.2.1  装载脚本    435
10.2.2  从入口点开始执行    436
10.2.3  执行周期    436
10.2.4  函数调用    437
10.2.5  终止和关闭    439
10.3  XVM原型的结构概述    440
10.3.1  脚本头    440
10.3.2  运行时值    441
10.3.3  指令流    442
10.3.4  运行时堆栈    443
10.3.5  函数表    444
10.3.6  主应用程序API调用表    445
10.3.7  最终的脚本结构    445
10.4  建立XVM原型    446
10.4.1  装载.XSE可执行文件    446
10.4.2  结构接口    456
10.4.3  初始化虚拟机    471
10.4.4  执行周期    473
10.4.5  终止与关闭    488
10.5  概述    490
10.6  CD上的内容    490
10.7  挑战    490
第11章  高级虚拟机的概念和问题    492
11.1  新一代虚拟机    492
11.2  多线程    492
11.2.1  多线程的基本原理    493
11.2.2  装载和存储多个脚本    503
11.2.3  执行多线程    511
11.3  主应用程序集成    515
11.3.1  和主应用程序并行运行脚本    515
11.3.2  集成接口简介    517
11.3.3  XVM的公有接口(Public Interface)    524
11.3.4  实现集成接口    526
11.3.5  增加线程优先级    550
11.4  演示最终的XVM    557
11.5  小结    563
11.6  CD上的内容    563
11.7  挑战    563
第6篇  编译高级代码
第12章  编译理论概论    566
12.1  编译理论概述    566
12.1.1  编译的几个阶段    567
12.1.2  XtremeScript与XASM是如何工作的    578
12.1.3  高级编译理论    579
12.2  总结    587
第13章  词法分析器    588
13.1  基础知识    588
13.1.1  从字符到单词    589
13.1.2  属性标注    590
13.1.3  词法分析方法    590
13.2  词法分析器的工作    594
13.2.1  读入并保存文本文件    595
13.2.2  显示结果    596
13.2.3  错误处理    597
13.3  一个数值词法分析器    598
13.3.1  分词策略    598
13.3.2  完成这个演示程序    606
13.4  分析标识符和保留字    608
13.4.1  新的状态和属性符    609
13.4.2  测试文件    610
13.4.3  升级词法分析器    610
13.4.4  完成这个演示程序    613
13.5  最后的词法分析器:分隔符、运算符和字符串    616
13.5.1  分析分隔符    616
13.5.2  分析字符串    619
13.5.3  运算符    622
13.5.4  完成这个演示    636
13.6  总结    640
13.7  CD上的内容    641
13.8  挑战    641
第14章  构造XtremeStcript编译器框架    642
14.1  策略纵览    642
14.1.1  前端    643
14.1.2  中间代码模块    645
14.1.3  后端    645
14.1.4  主要结构    646
14.1.5  接口和封装    648
14.1.6  编译器的生命周期    649
14.2  命令行接口    651
14.2.1  Logo和使用信息    651
14.2.2  读入文件名称    652
14.2.3  读入选项    654
14.3  初始化数据结构    658
14.3.1  链表    658
14.3.2  堆栈    664
14.4  初始化和关闭    666
14.4.1  全局变量和数据结构    666
14.4.2  初始化    666
14.4.3  关闭    667
14.5  编译器的模块    667
14.6  装载模块    669
14.7  预处理模块    670
14.7.1  单行注释    671
14.7.2  块注释    672
14.7.3  预处理指令    674
14.8  编译器的表格    676
14.8.1  符号表    676
14.8.2  函数表    680
14.8.3  字符串表    683
14.9  集成词法分析器模块    684
14.9.1  回卷属性符流    684
14.9.2  一种新的源代码格式    687
14.9.3  其他新的函数    689
14.9.4  重置词法分析器    693
14.10  语法分析器模块    693
14.11  错误处理    693
14.11.1  普通错误    693
14.11.2  代码错误    694
14.11.3  错误层叠    695
14.12  中间代码模块    696
14.12.1  实现中间代码的方法    696
14.12.2  XtremeScript中间代码    699
14.12.3  接口    703
14.13  代码生成模块    708
14.13.1  代码生成基础    708
14.13.2  通用格式    709
14.14  生成最终的可执行体    722
14.15  整理    724
14.15.1  初始化编译进程    724
14.15.2  打印编译统计数据    724
14.15.3  编写测试脚本    726
14.16  总结    730
14.17  CD上的内容    731
14.18  挑战    731
第15章  语法分析和语义分析    732
15.1  什么是语法分析器    732
15.1.1  语法和语义分析    733
15.1.2  表达式语法    734
15.1.3  语法树    736
15.1.4  语法分析是如何工作的    739
15.2  XtremeScript语法分析器模块    741
15.2.1  基础    741
15.2.2  分析策略    745
15.3  分析语句和代码块    745
15.3.1  语法图    746
15.3.2  实现    747
15.4  分析声明语句    750
15.4.1  函数声明    750
15.4.2  变量和数组声明    756
15.4.3  主应用程序  API函数声明    759
15.4.4  测试代码生成模块    763
15.5  分析简单的表达式    765
15.5.1  表达式分析策略    765
15.5.2  理解表达式语法分析器    769
15.5.3  编码表达式分析    771
15.6  完整表达式分析    780
15.6.1  新因子类型    780
15.6.2  分析函数调用    782
15.6.3  新的单目运算符    783
15.6.4  新的双目运算符    784
15.6.5  逻辑和关系运算符    784
15.6.6  左值和右值    787
15.7  独立的运行时环境    787
15.7.1  本地应用程序    788
15.7.2  主应用程序API    790
15.8  分析高级语句和结构    792
15.8.1  赋值语句    792
15.8.2  函数调用    798
15.8.3  return    799
15.8.4  While循环    802
15.8.5  for循环    812
15.8.6  If分支    812
15.9  语法图总结    817
15.10  测试驱动    817
15.10.1  Hello,World!    818
15.10.2  绘制矩形    819
15.10.3  Bouncing Head示例    822
15.11  总结    843
15.12  CD上的内容    843
15.13  挑战    844
第7篇  完 成 培 训
第16章  应用这个系统开发的一个完整游戏    846
16.1  介绍LockDown    846
16.1.1  素材来源    846
16.1.2  最初的计划和设置    847
16.2  脚本策略    857
16.2.1  集成XtremeScript    857
16.2.2  主API    858
16.2.3  编写脚本    860
16.2.4  装载和运行脚本    867
16.2.5  速度问题    868
16.3  如何玩Lockdown    870
16.3.1  控制    870
16.3.2  与物体交互    870
16.3.3  区域地图    870
16.3.4  战斗    870
16.3.5  完成这个目标    871
16.4  总结    871
16.5  CD上的内容    871
16.6  挑战    872
第17章  从今往后,何去何从    873
17.1  现在究竟该干什么呢    873
17.2  扩展你的知识    874
17.2.1  编译器理论    874
17.2.2  运行时环境    876
17.3  高级话题和思想    878
17.4  总结    888
猜您喜欢

读书导航