【游戏引擎架构】数组
一、第14章介绍的对游戏性相关系统的设计很是有价值。各个开发人员几乎都是凭经验设计,不多见有书籍对这些作总结。架构
五、经过此书以知悉一些知名游戏做品实际上所采用的方案。性能
六、书名中的架构二字,并不单是给出一个系统结构图,而是描述每一个子系统的需求、相关技术及与其余子系统的关系。动画
七、本书的第11章(动画系统)及第14章(运行时游戏性基础系统)是本书特别精彩之处。人工智能
八、此书翻译历时3年半。spa
【Note1】线程
一、游戏有多个种类(category)和类型(genre)。此处genre译为体裁更为合适。翻译
二、不少游戏工做室并不隶属于个别发行商,这些工做室把他们制做的游戏,卖给出最好条件的发行商。还有一些工做室让单一发行商独家代理他们的游戏,其形式能够是签署长期发行合同,或是成为发行商全资拥有的子公司。设计
三、物理模拟可能须要每秒更新120次以保持稳定。一个游戏角色的人工智能系统可能每秒最少要“最一次”才能显得不呆。另外,也可能须要每1/60秒调用一次声音程序库,以确保音频缓冲有足够的声音数据,避免发出一些短暂失灵声音。代理
四、游戏引擎或中间件组件越通用,在特定平台运行特定游戏的性能就越通常。
五、OGRE是一个架构优良,又易学易用的三维渲染引擎。
六、软件层的构建一般上层依赖下层,下层不依赖上层。
七、PhysX是一个流行的工做级物理及碰撞引擎,NVIDIA提供免费下载。没有碰撞检测,物体会互相穿透。
八、当用微软的编译器编译代码时,编译器会定义_MSC_VER宏;当使用GNU编译器,则会定义__GNUC__宏。
九、小端:最低有效字节存储于最低位,大端:最高有效字节存储于最低位。
十、解决字节序的其中一个方案为全部数据以文字方式写入文件。
十一、字节对齐的其中一个缘由是,内存控制器对于非对齐的内存须要2次存储才能取出。例如:0x6a341173开始的4字节数据,须要分别从0x6a341170和0x6a341174中2个4个节块中取出数据组装后才能被使用。有些平台下非对齐会致使程序崩溃(PS2)。
十二、__FILE__、__LINE__这2个宏能够获取文件名和行号信息。
1三、除了笛卡儿坐标系外还有圆柱坐标系,球坐标系。
1四、当向一物体施加力(force),当且驻当其施力方向离开中心点,该力会对物体的旋转运动产生影响。由此产生的旋转力称为力矩(torque),其计算方法以下:给定力F,从质心(center of mass)至施力点的矢量r,则产生的力矩为N=r x F。
1五、线性插值(linear intepolation)LERP。
1六、存取主系统内存是缓慢的操做,一般须要几千个处理周期才能完成。存取寄存器只需数十个周期,甚至有时只须要一个周期。
1七、当使用断点时,须要使用如下代码来避免每帧间隔过长问题。
1 if (dt > 1.0f / 30.0f) 2 { 3 dt = 1.0f / 30.0f 4 }
1八、利用多核优点的模型有:
1)“分叉及汇合”
2)“每一个子系统运行于独立线程”
3)做业模型,工做被拆分为小颗粒度的做业,这些做业可于任何闲置的处理器运行。
1九、当玩家尝试转方向盘时,方向盘会产生阻力,以模拟困难的行车条件或急转弯。这叫力反馈(force-feedback)。
20、OutputDebugString()不支持格式化输出,它只能打印char数组形式的字符串。
2一、经常使用的调试方法包括调试绘图,游戏内置菜单,游戏内置控制台
2二、玩家角色(player character, PC),非玩家角色(non-player character,NPC)