游戏引擎架构学习

本书的主页
第一部分 基础php

第1章 导论
1.1 典型游戏团队的结构html

工程师;艺术家;游戏设计师;制做人;其余工做人员;发行商&工做室前端

1.2 游戏是什么程序员

软实时模拟算法

1.3 游戏引擎是什么编程

1.4 不一样游戏类型中的引擎差别设计模式

第一人称射击平台及其余第三人称游戏;格斗游戏竞速游戏实时策略游戏大型多人在线游戏;其余游戏类型缓存

1.5 游戏引擎概观网络

雷神之锤引擎家族;虚幻引擎;Source引擎;微软XNA Game Studio;CryTek的 CryEngine 3;其余商业引擎;专有内部引擎;开源引擎数据结构

注:

1.《雷神之锤》&《雷声之锤2》源代码能够在id Software网站下载(404啦)。学习建议:源码+游戏资产(重游戏中得到)----> 分析游戏引擎的实际实现。如:搜索“Quake 源码下载”。

2. Unreal Developer Network,UND;Unreal Development Kit,UDKBeyond Unreal

3. CryTek公布的研究成果

4. XNA Creators Club Online

5. C4引擎C4 wiki

6. 开源引擎列表;常见开源引擎:OGRE,Panda3D,Yake,Crystal Space,Irrlicht

1.6 运行时引擎架构

目标硬件(PC,Xbox360,PS3);

设备驱动程序;

操做系统;

第三方软件开发包和中间件:数据结构及算法(STL,STLport,Boost,Loki),图形(Glide,OpenGL,DirectX,libgcm,Edge),碰撞和物理(Havok,PhysX,Open Dynamics Engine),角色动画(Granny,Havok Animation,Edge),人工智能,生物力学角色模型;

平台独立层;

核心系统:断言,内存管理,数学库,自定义数据结构及算法 等;

资源管理;

渲染引擎:低阶渲染器;场景图/剔除优化,视觉效果,前端;

剖析和调试工具;

碰撞和物理:Open Dynamics Engine(ODE),I-Collide(学术性),V-Collide(学术性),RAPID(学术性);Bullet(具备工业强度的开源实时碰撞侦测系统,使用了GJK算法)

动画;

人体学接口设备;

音频;

在线多人/网络;

游戏性基础系统:游戏世界和游戏对象模型,事件系统,脚本系统,人工智能基础;

个别游戏专用子系统;

1.7 工具及资产管道

数字内容创做工具;资产调节管道;三维模型/网格数据;骨骼动画数据;音频数据;粒子系统数据;游戏世界数据及世界编辑器;一些构建工具的方法

第2章 专业工具

2.1 版本控制

2.2 微软Visual Studio

2.3 剖析工具

2.4 内存泄漏和损坏检测

2.5 其余工具

第3章 游戏软件工程基础

3.1 重温C++及最佳实践

扼要重温面向对象编程:类和对象,封装,继承(多重继承 & 其问题之菱形继承问题diamond problem),多态,合成及聚合,设计模式;

编码标准:为何&须要多少。Making Wrong Code Look Wrong

推荐书籍:《冒号课堂:编程范式与OPP思想》《Effective C++》《Effective STL》《Large-Scale C++ Software Design》

3.2 C/C++的数据、代码及内存

数值表达形式:数值底数,有符号及无符号整数,定点记法,浮点记法,基本数据类型,多字节及字节序;

声明定义及连接规范:再谈翻译单元,声明与定义,连接规范;

C/C++内存布局:可执行映像,程序堆栈,动态分配的堆;

成员变量:类的静态成员;

对象的内存布局:对齐和包裹,C++中类的布局;

3.3 捕捉及处理错误

错误类型;

错误处理:处理玩家错误;处理开发者错误;处理程序员错误;

实现错误检查及处理:错误码返回,异常,断言;

第4章 游戏所需的三维数学
4.1 在二维中解决三维问题
4.2 点和矢量

点和笛卡尔坐标;

左手坐标系与右手坐标系的比较;

矢量;

矢量运算;

点和矢量的线性插值;
4.3 矩阵

矩阵乘法;

以矩阵表示点和矢量;

单位矩阵;

逆矩阵;

转置矩阵;

齐次坐标;

基础变换矩阵;

4×3矩阵;

坐标空间:模型空间,世界空间,观察空间;

基的变动;

变换法矢量;

内存中存储矩阵;

4.4 四元数

把单位四元数视为三位旋转;

四元数运算;

以四元数旋转矢量;

等价的四元数和矩阵;

旋转性的线性插值;

4.5 比较各类旋转表达方式

欧拉角;

3×3矩阵;

轴角;

四元数;

SQT变换;

对偶四元数;

旋转和自由度;

4.6 其余数学对象

执行/光线/线段;

球体;

平面;

轴对齐包围盒;

定向包围盒;

平截头体;

凸多面体区域;

4.7 硬件加速的SIMD运算

SEE寄存器;

_m128数据类型;

用SSE内部函数编码;

用SSE实现矢量对矩阵想乘;
4.8 产生随机数

线性同余产生器;

梅森旋转算法;

全部之母及Xorshift


第二部分 低阶引擎系统

第5章 游戏支持系统

5.1 子系统的启动和终止 

5.2 内存管理

优化动态内存分配;

内存碎片;

缓存一致性;

5.3 容器

容器操做;

迭代器;

算法复杂度;

创建自定义的容器类;

5.4 字符串

字符串的使用问题;

字符串类;

惟一标识符;

本地化;

5.5 引擎配置

读/写选项;

个别用户选项;

第6章 资源及文件系统

6.1 文件系统

文件名和路径;

基本文件I/O;

异步文件I/O;

6.2 资源管理器

离线资源管理及工具链;

运行时资源管理;

第7章 游戏循环及实时模拟

7.1 渲染循环

7.2 游戏循环

7.3 游戏循环的架构风格

7.4 抽象时间线

真实时间;

游戏时间;

局部及全局时间;

7.5 测量及处理时间 

7.6 多处理器的游戏循环

7.7 网络多人游戏循环

第8章 人体学接口设备(HID)

8.1 各类人体学接口设备

8.2 人体学接口设备的接口技术

8.3 输入类型

8.4 输出类型

8.5 游戏引擎的人体学接口设备系统

8.6 人体学接口设备使用实践 

第9章 调试及开发工具

9.1 日志及跟踪

9.2 调试用的绘图功能

9.3 游戏内置菜单

9.4 游戏内置主控台

9.5 调试用摄像机和游戏暂停

9.6 做弊 

9.7 屏幕截图及录像

9.8 游戏内置性能剖析

9.9 游戏内置的内存统计和泄漏检测

第三部分 图形及动画

第10章 渲染引擎

10.1 采用深度缓冲的三角形光栅化基础

场景描述:高端渲染软件所用的表示法,三角形网格,构造三角形网格,模型空间,世界空间及网格实例化;

描述表面的视觉特性:光&颜色,顶点属性,顶点格式,属性插值,纹理,材质;

光照基础:局部及全局光照模型,phong氏光照模型,光源模型;

虚拟摄像机:观察空间,投影,观察体积及平截头体,投影及齐次裁剪空间,屏幕空间及长宽比,帧缓冲,三角形光栅化及片断,遮挡及深度缓冲

10.2 渲染管道

10.3 高级光照及全局光照 42610.4 视觉效果和覆盖层 43810.5 延伸阅读 446第11章 动画系统 44711.1 角色动画的类型 44711.2 骨骼 45211.3 姿式 45411.4 动画片断 45911.5 蒙皮及生成矩阵调色板 47111.6 动画混合 47611.7 后期处理 49311.8 压缩技术 49611.9 动画系统架构 50111.10 动画管道 50211.11 动做状态机 51511.12 动画控制器 535第12章 碰撞及刚体动力学 53712.1 你想在游戏中加入物理吗 53712.2 碰撞/物理中间件 54212.3 碰撞检测系统 54412.4 刚体动力学 56912.5 整合物理引擎至游戏 60112.6 展望:高级物理功能 616第四部分 游戏性 617第13章 游戏性系统简介 61913.1 剖析游戏世界 61913.2 实现动态元素:游戏对象 62313.3 数据驱动游戏引擎 62613.4 游戏世界编辑器 627第14章 运行时游戏性基础系统 63714.1 游戏性基础系统的组件 63714.2 各类运行时对象模型架构 64014.3 世界组块的数据格式 65714.4 游戏世界的加载和串流 66314.5 对象引用与世界查询 67014.6 实时更新游戏对象 67614.7 事件与消息泵 69014.8 脚本 70714.9 高层次的游戏流程 726第五部分 总结 727第15章 还有更多内容吗 72915.1 一些未谈及的引擎系统 72915.2 游戏性系统 730参考文献 733中文索引 737英文索引 755

相关文章
相关标签/搜索