第1章 通用编程技术
绪论
Scott Bilas
1.1 优化C++游戏
Andrew Kirmse
1.1.1 对象的创建和销毁
1.1.2 内存管理
1.1.3 虚拟函数
1.1.4 代码长度
1.1.5 标准模板库
1.1.6 高级特性
1.1.7 参考文献
1.2 内联函数和宏
Peter Dalton
1.2.1 内联函数的优点
1.2.2 何时使用内联函数
1.2.3 何时使用宏
1.2.4 微软特有的情况
1.2.5 参考文献
1.3 抽象接口编程
Noel Liopis
1.3.1 抽象接口
1.3.2 添加一个工厂(factory)
1.3.3 抽象接口特性
1.3.4 一切都是有代价的
1.3.5 结论
1.3.6 参考文献
1.4 从DLL中导出C++类
Herb Marselas
1.4.1 导出函数
1.4.2 导出类
1.4.3 导出类成员函数
1.4.4 导出虚拟类成员函数
1.4.5 总结
1.5 避免DLL困境
Herb Marselas
1.5.1 显式链接还是隐式链接
1.5.2 LoadLibrary和GetProcAddress
1.5.3 提防DirectX
1.5.4 使用操作系统特有的特性
1.5.5 总结
1.6 动态类型信息
Scott Wakeling
1.6.1 动态类型信息类简介
1.6.2 暴露和查询DTI
1.6.3 继承的含义是“是一个”
1.6.4 处理通用对象
1.6.5 实现永久性类型信息
1.6.6 将永久性类型信息用于游戏保存数据库中
1.6.7 结论
1.6.8 参考文献
1.7 用于通用C++成员访问的属性类
Charles Cafrelli
1.7.1 代码
1.7.2 其他用途
1.7.3 推荐读物
1.8 一个游戏实体工厂
Franois Dominic Laramée
1.8.1 组件
1.8.2 flyweight类、行为类和导出类
1.8.3 flyweight对象
1.8.4 SAMMy,你在哪里?
1.8.5 行为类层次
1.8.6 使用模板方法模式来完成行为任务
1.8.7 导出类
1.8.8 实体工厂
1.8.9 在运行阶段选择策略
1.8.10 最后的注意事项
1.8.11 参考文献
1.9 在C++添加摒弃功能
Noel Llopis
1.9.1 可能的解决方案
1.9.2 理想的解决方案
1.9.3 使用和指定被摒弃的函数
1.9.4 使用C++实现摒弃功能
1.9.5 可改进的地方
1.9.6 致谢
1.9.7 参考文献
1.10 一个插入式调试内存管理器
Peter Dalton
1.10.1 内存管理器初步
1.10.2 内存管理器的记录工作
1.10.3 报告信息
1.10.4 注意事项
1.10.5 进一步的改进
1.10.6 参考文献
1.11 一个内置的游戏剖析模块
Jeff Evertt
1.11.1 有关剖析的基本知识
1.11.2 商用工具
1.11.3 为何要自己开发模块
1.11.4 剖析模块(Profiling module)的需求
1.11.5 架构和实现
1.11.6 实现的细节
1.11.7 分析数据
1.11.8 有关实现的注意事项
1.12 用于Windows游戏的线性编程模型
Javier F. Otaegui
1.12.1 更新背景
1.12.2 解决方案:多线程(Multithreading)
1.12.3 参考文献
1.13 栈缠绕
Bryon Hapgood
1.13.1 简单的TempRet
1.13.2 TempRet链
1.13.3 Thunking
1.13.4 递归
1.14 自我修改的代码
Bryon Hapgood
1.14.1 RAM代码的原理
1.14.2 一个快速的Bit Blitter
1.15 使用资源文件来管理文件
Bruno Sousa
1.15.1 何为资源文件
1.15.2 设计
1.15.3 实现
1.15.4 有关实现的最后一些说明
1.15.5 结论
1.15.6 参考文献
1.16 游戏输入的记录和重放
Bruce Dawson
1.16.1 记录输入有何用途
1.16.2 原理
1.16.3 测试输入记录功能
1.16.4 结论
1.16.5 参考文献
1.17 一个灵活的文本分析系统
James Boer
1.17.1 分析系统
1.17.2 宏、头文件和预处理技术
1.17.3 该分析系统的结构
1.17.4 小结
1.18 一个通用的调节器
Lasse Staff Jensen
1.18.1 需求分析
1.18.2 实现
1.18.3 使用
1.18.4 图形用户界面
1.18.5 附注
1.18.6 致谢
1.19 生成真正的随机数
Pete Isensee
1.19.1 伪随机
1.19.2 真正随机
1.19.3 随机输入源
1.19.4 硬件源
1.19.5 混合函数
1.19.6 局限性
1.19.7 实现
1.19.8 GenRand的随机程度
1.19.9 参考文献
1.20 使用Bloom过滤器来提高计算性能
Mark Fischer
1.20.1 Bloom的方式
1.20.2 可能的情形
1.20.3 工作原理
1.20.4 定义
1.20.5 范例1
1.20.6 范例2
1.20.7 最后的说明
1.20.8 结论
1.20.9 参考文献
1.21 3Ds MAX中的Skin导出器和动画工具包
Marco Tombesi
1.21.1 导出
1.21.2 参考文献
1.22 在视频游戏中使用Web摄像机
Nathan dObrenan
1.22.1 初始化Web摄像机捕获窗口
1.22.2 操纵Web摄像机数据
1.22.3 结论
1.22.4 参考文献
第2章 数学技巧
第3章 人工智能
第4章 几何体管理
第5章 图形显示
第6章 音频编程
展开