简介 3
第一部分 Windows 编程基础 3
第一章 无尽之旅 3
历史一瞥 3
设计游戏 6
游戏类型 6
集思广益 7
设计文档和情节图片板 8
使游戏具有趣味性 9
游戏的构成 9
常规游戏编程指导 14
使用工具 18
从准备到完成--使用编译器 20
实例:FreakOut 22
总结 39
第二章 Windows编程模型 40
Windows的历史 40
多任务和多线程 43
按照Microsoft方式编程:匈牙利符号表示法 47
世界上最简单的Windows程序 50
真实的Windows应用程序 57
Windows类 57
注册Windows类 64
创建窗口 64
事件处理程序 67
主事件循环 73
产生一个实时事件循环 78
打开多个窗口 79
总结 81
第三章 高级Windows编程 82
使用资源 82
使用菜单编程 101
图形设备接口GDI介绍 113
处理重要事件 127
将消息传递给自己 144
总结 146
高级GDI图形 147
第四章 Windows GDI、控件和突发奇想 147
点、线、平面多边形和圆 154
关于文本和字体 163
定时的重要性 164
使用控件 170
获取信息 177
T3D游戏控制程序 183
总结 188
第二部分 DirectX和2D基础 191
第五章 DirectX基础和令人生畏的COM 191
DirectX基础 191
COM:这是Microsoft的工作,还是魔鬼的? 195
应用DirectX COM对象 207
COM的前景 214
总结 214
第六章 首次接触:DirectDraw 215
DirectDraw界面 215
创建DirectDraw对象 219
和Windows协同工作 223
进入事件模式 227
巧妙的色彩 230
创建一个显示画面 234
总结 255
真彩色模式下工作 256
第七章 高级DirectDraw和位图图形 256
双缓冲 269
动态画面 274
页面变换 277
应用图形变换器 283
剪切基础 295
采用位图 308
备用画面 319
位图的旋转和缩放 328
离散采样理论 330
色彩效果 334
人工色彩变换或者查询表 342
新的DirectX色彩和Gamma控制接口 343
GDI和DirectX混合使用 344
获取DirectDraw的真相 346
在画面上冲浪 348
使用调色板 349
在窗口模式下应用DirectDraw 349
总结 358
第八章 矢量光栅化及2D变换 359
绘制线条 359
线框多边形 384
2D平面的变换 388
矩阵引论 401
变换 408
旋转 409
缩放 409
填充实心多边形 412
多边形碰撞检测 429
定时与同步详解 437
滚动和视角场景 439
伪3D等角引擎 445
T3DLIB1库函数 449
BOB(变换对象)引擎 477
总结 485
第九章 用DirectInput和力反馈进行输入 486
输入循环回顾 486
DirectInput序曲 488
力反馈详述 525
编写通用的输入系统:T3DLIB2.CPP 528
总结 534
第十章 用DirectSound和DirectMusic演奏乐曲 535
PC上的声音编程 535
声音产生的原因 536
数字与MIDI--发声大,填充少 539
发声硬件 542
数字化记录:工具和技术 543
DirectSound中的麦克风 544
启动DirectSound 546
主要与辅助的声音缓冲 549
播放声音 554
用DirectSound反馈信息 557
读取磁盘中数据 559
DirectMusic:伟大的试验 563
DirectMusic的结构 564
启动DirectMusic 566
加载MIDI段 568
操作MIDI段 571
T3DLIB3声音和音乐库 573
DirectSound API封装 576
总结 585
第三部分 编程核心 589
第十一章 算法、数据结构、内存管理及多线程 589
数据结构 589
算法分析 598
递归 600
树结构 601
优化理论 611
制作演示程序 620
保存游戏的策略 621
实现多人游戏 623
多线程编程技术 624
总结 648
第十二章 人工智能在游戏中的运用 649
人工智能入门 649
明确的AI算法 650
模式和基础控制脚本 657
行为状态系统建模 663
应用软件对存储和学习建模 670
计划和决策树 672
导航 678
高级AI脚本 689
人工神经网络 695
遗传算法 698
模糊逻辑 700
在游戏中创建真正的AI 718
小结 719
第十三章 基本物理建模 720
物理学基本定律 721
线性动量的物理性质:守恒和传递 731
万有引力效果模型 734
摩擦力 740
基本的特殊碰撞反应 746
2D物体间的碰撞响应(高级) 757
解决n-t坐标系统 760
简单运动学 766
微粒系统 772
游戏关键:创建游戏的物理模型 781
总结 785
第十四章 综合运用 786
Outpost的初步设计 786
编制游戏的工具 788
游戏领域:空间滚动 789
游戏者的飞船:“鬼怪号” 790
行星领域 792
敌人 794
供给能量 800
HUD 801
微粒系统 805
执行游戏 805
编译Outpost 805
结束语 807
第四部分 附录 811
附录A CD上的内容 811
附录B 安装DirectX和使用C/C++编译器 813
使用C/C++编译器 814
附录C 三角函数和矢量 816
三角 816
矢量 819
附录D C++基础 828
C++是什么 828
关于C++应当了解的内容 831
新类型、关键词以及协议 831
内存管理 834
输入/输出流 834
类 836
作用域操作符 845
函数和操作符重载 846
小结 848
附录E 游戏编程资源 849
游戏编程网站 849
下载站点 850
2D/3D引擎 850
游戏编程书籍 850
Microsoft DirectX多媒体展示 851
世界性新闻组网络系统 851
抓住产业:蓝调新闻 851
游戏开发杂志 852
游戏网站开发人员 852
Xtreme Games LLC 852
附录F ASCII表 854