游戏引擎架构Note1
【游戏引擎架构】
1、第14章介绍的对游戏性相关系统的设计非常有价值。各个开发人员几乎都是凭经验设计,很少见有书籍对这些做总结。
5、通过此书以知悉一些知名游戏作品实际上所采用的方案。
6、书名中的架构二字,并不单是给出一个系统结构图,而是描述每个子系统的需求、相关技术及与其他子系统的关系。
7、本书的第11章(动画系统)及第14章(运行时游戏性基础系统)是本书特别精彩之处。
8、此书翻译历时3年半。
【Note1】
1、游戏有多个种类(category)和类型(genre)。此处genre译为体裁更为合适。
2、很多游戏工作室并不隶属于个别发行商,这些工作室把他们制作的游戏,卖给出最好条件的发行商。还有一些工作室让单一发行商独家代理他们的游戏,其形式可以是签署长期发行合同,或是成为发行商全资拥有的子公司。
3、物理模拟可能需要每秒更新120次以保持稳定。一个游戏角色的人工智能系统可能每秒最少要“最一次”才能显得不呆。另外,也可能需要每1/60秒调用一次声音程序库,以确保音频缓冲有足够的声音数据,避免发出一些短暂失灵声音。
4、游戏引擎或中间件组件越通用,在特定平台运行特定游戏的性能就越一般。
5、OGRE是一个架构优良,又易学易用的三维渲染引擎。
6、软件层的构建通常上层依赖下层,下层不依赖上层。
7、PhysX是一个流行的工作级物理及碰撞引擎,NVIDIA提供免费下载。没有碰撞检测,物体会互相穿透。
8、当用微软的编译器编译代码时,编译器会定义_MSC_VER宏;当使用GNU编译器,则会定义__GNUC__宏。
9、小端:最低有效字节存储于最低位,大端:最高有效字节存储于最低位。
10、解决字节序的其中一个方案为所有数据以文字方式写入文件。
11、字节对齐的其中一个原因是,内存控制器对于非对齐的内存需要2次存储才能取出。例如:0x6a341173开始的4字节数据,需要分别从0x6a341170和0x6a341174中2个4个节块中取出数据组装后才能被使用。有些平台下非对齐会导致程序崩溃(PS2)。
12、__FILE__、__LINE__这2个宏可以获取文件名和行号信息。
13、除了笛卡儿坐标系外还有圆柱坐标系,球坐标系。
14、当向一物体施加力(force),当且驻当其施力方向离开中心点,该力会对物体的旋转运动产生影响。由此产生的旋转力称为力矩(torque),其计算方法如下:给定力F,从质心(center of mass)至施力点的矢量r,则产生的力矩为N=r x F。
15、线性插值(linear intepolation)LERP。
16、存取主系统内存是缓慢的操作,通常需要几千个处理周期才能完成。存取寄存器只需数十个周期,甚至有时只需要一个周期。
17、当使用断点时,需要使用以下代码来避免每帧间隔过长问题。
if (dt > 1.0f / 30.0f)
{
dt = 1.0f / 30.0f
}
18、利用多核优势的模型有:
1)“分叉及汇合”
2)“每个子系统运行于独立线程”
3)作业模型,工作被拆分为小颗粒度的作业,这些作业可于任何闲置的处理器运行。
19、当玩家尝试转方向盘时,方向盘会产生阻力,以模拟困难的行车条件或急转弯。这叫力反馈(force-feedback)。
20、OutputDebugString()不支持格式化输出,它只能打印char数组形式的字符串。
21、常用的调试方法包括调试绘图,游戏内置菜单,游戏内置控制台
22、玩家角色(player character, PC),非玩家角色(non-player character,NPC)
游戏引擎架构Note1的更多相关文章
- 游戏引擎架构Note2
[游戏引擎架构Note2] 1.视觉属性(visual property)决定光线如何与物体表面产生交互作用. 2.一个Mesh所使用三角形的多少可以用细致程度(level-of-detail,LOD ...
- 游戏引擎架构 (Jason Gregory 著)
第一部分 基础 第1章 导论 (已看) 第2章 专业工具 (已看) 第3章 游戏软件工程基础 (已看) 第4章 游戏所需的三维数学 (已看) 第二部分 低阶引擎系统 第5章 游戏支持系统 (已看) 第 ...
- 游戏引擎架构 && windows 核心编程
欲想正人,必先正己. 静坐当思己过,闲谈莫论人非. 垂直同步的作用: 为避免画面撕裂,许多渲染引擎会在交换缓冲区之前,等待显示器的垂直区间消隐,即电子枪重归屏幕上角的时间. 高分辨率计时器的时间漂移 ...
- 游戏引擎架构,3d游戏引擎设计、Unreal引擎技术等五本PDF推荐
扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop135452397.taobao.com/ 联系店主
- 游戏制作之路:游戏引擎选择、Mac下和Windows下UnrealEngine 4体验对比、文档及其他
UnrealEngine 4和Unity3d的选择 订阅了UrealEngine4(UE4)开发者.我开始做网站用的是ASP.NET和C#,之后做网站虽然换用更方便的PHP(因为做的都是小网站).我想 ...
- 棒!使用.NET Core构建3D游戏引擎
原文地址:https://mellinoe.wordpress.com/2017/01/18/net-core-game-engine/ 作者:ERIC MELLINO 翻译:杨晓东(Savorboa ...
- U3D 游戏引擎之游戏架构脚本该如何来写
这篇文章MOMO主要想大家说明一下我在Unity3D游戏开发中是如何写游戏脚本的,对于Unity3D这套游戏引擎来说入门极快,可是要想做好却非常的难.这篇文章的目的是让哪些已经上手Unity3D游戏引 ...
- 【转载】U3D 游戏引擎之游戏架构脚本该如何来写
原文:http://tech.ddvip.com/2013-02/1359996528190113.html Unity3D 游戏引擎之游戏架构脚本该如何来写 2013-02-05 00:48:4 ...
- Unity3D游戏开发初探—1.跨平台的游戏引擎让.NET程序员新生
一.Unity3D平台简介 Unity是由Unity Technologies开发的一个让轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的 ...
随机推荐
- NLTK下载语言素材中碰到的certificate verify failed (_ssl.c:749)
NLTK是什么? NLTK是一个开源的项目,包含:Python模块,数据集和教程,用于NLP的研究和开发. NLTK由Steven Bird和Edward Loper在宾夕法尼亚大学计算机和信息科学系 ...
- LUAROCKS 报错解决办法
用luarocks 加载包时报错 Warning: falling back to curl - install luasec to get native HTTPS support 此时先安装 ./ ...
- 【Javascrpt 速成篇】 一:js基础
本系列文章Javascript一律简称js,javascript太长了((⊙﹏⊙)b) js概述 js是面向对象和基于事件驱动的解释型语言,主要用于WEB前端,处理用户交互.几年前js只是作为一种前 ...
- ZOJ-Big string(服气思维)
个人心得:我在分治上看到的,但是感觉跟分治没关系,一眼想到斐波那契数可以找到此时n的字符串,但是无法精确到字母,题解的思路 真是令人佩服,以BA为基准,然后只要此时的长度大于7那么必然可以减去最大的斐 ...
- WCF+上传+大文件处理
大文件处理的方式拆分读取,此文只为记录文件处理方式,供日后查阅. 源码来自http://blog.csdn.net/lywust/article/details/7009248 经过改编将源码改编为文 ...
- 【ASP.NET Web API2】Digest认证
Digest摘要认证 对于Basic认证方案来说,被传输的认证凭证仅仅采用Base64编码,所以包含密码的认证凭证基本上可以视为明文传输.Digest认证在此基础上进行了改善,在一定程度上提高了安全系 ...
- 找到最大或最小的N个元素
问题: 想在某个集合中找到最大或最小的N个元素 解决方案: heapq 模块中有两个函数 nlargest() 和 nsmallest() 它们正是我们需要的.例如: import heapq n ...
- 关于UNIDAC连接SQLITE3的心得笔记
关于查询某个SQLITE3DB的所有表单的语句: UniQuery1.SQL.Add('SELECT * FROM sqlite_master'); 关于UNIDAC提交数据: //在提交数据之前,必 ...
- WM_COMMAND 和 WM_NOTIFY 的区别
当我们按下一个菜单选项,或者一个控件需要通知父窗口一个事件发生(如鼠标单击.双击等),或者快捷键被按下时,Windows将会发送一个 WM_COMMAND 消息给父窗口.那么 WM_COMMAND 消 ...
- laravel修改命名空间中的App为各自项目的名称(个人喜好)
学习源头:https://blog.csdn.net/xx1129244705/article/details/77965618 laravel框架的应用默认命名空间是App,修改命名空间的可通过ap ...