首页 > 其他分享 >Game Engine Architecture(游戏引擎架构)

Game Engine Architecture(游戏引擎架构)

时间:2023-04-28 10:02:06浏览次数:40  
标签:Engine 翻译 游戏 程序员 Game 引擎 Architecture 开发 Milo

推荐序1

最初拿到《GameEngineArchitecture》一书的英文版,是编辑侠少邮寄给我的打印版。他建议我接下翻译此书的合同。当时我正在杭州带领一个团队开发3D游戏引擎,我和我的同事都对这本书的内容颇有兴趣,两大本打印的英文书立刻在同事间传开。可惜那段时间个人精力顾及不来,把近千页的英文读物精读而后翻译成中文对个人的业余时间是个极大的挑战,不能担此翻译任务颇为遗憾。

不久以后听说Milo Yip (叶劲峰)已开始着手翻译,甚为欣喜。翻译此巨著,他一定是比我更合适的人选。我和Milo虽未曾蒙面,但神交已久。在网络上读过一些他的成长经历,和我颇为相似,心有戚戚。他对游戏3D实时渲染技术研究精深为我所不及,我们曾通过Google Talk讨论过许多技术问题,他都有独到的见解。翻译工作开始后,Milo是香港人,英文技术术语在香港的中文译法和大陆的有许多不同。但此书由大陆出版社出版,考虑到面对的读者主要是大陆程序员,Milo希望能更符合大陆程序员的用词习惯,所以在翻译一开始就通过Google Docs创建了协作页面,邀请大家共同探讨书中技术名词的中译名。从中我们可以一窥他作为译者的慎重。

在阅读本书的过程中,我不只一次地获得共鸣。例如在第5章的内存管理系统的介绍中, 作者介绍的几种游戏特有的内存管理方法我都曾在项目中用过,而这是第一次有书籍专门将这些方法详尽记录;又如第11章动画系统的介绍,我们也同样在3D引擎开发过程中改进原有动画片段混合方法的经历。虽然书中介绍的每个技术点,都可能可以在某篇论文,某本其他的书的章节,某篇网络blog上见过,但之前却无一本书可以把这些东西放在一起相互参照。对于从事游戏引擎开发的程序员来说,了解各种引擎在处理每个具体问题时的方案是相当重要的。而每种方案又各有利弊,即使不做引擎开发工作而是在某一特定游戏引擎上做游 戏开发,从中也可以理解引擎的局限性以及可能的改进方法。尤其是第14章介绍的对游戏性相关系统的设计,各个开发人员几乎都是凭经验设计,很少见有书籍对这些做总结。对于基于渲染引擎做开发的游戏程序员,这是必须面对的工作,这一章会有很大的借鉴意义。

本书作者是业内资深的游戏引擎开发人,他所参与的《神秘海域》和《最后生还者》都是我的个人最爱。在玩游戏的过程中,作为游戏程序员的天性,自然会不断地猜想各个技术点是如何实现的,背后需要怎样的工具支持。能在书中一一得到印证是件特别开心的事 情。作者反复强调代码实践的重要性,在书中遍布着C+ +代码。我不认为这些代码有直接取来使用的价值,但它们极大地帮助了读者理解书中的技术点。书中列出的顽皮狗工作室用lisp方言作为游戏配置脚本的范例也给我很大的启发,有了这些具体的代码示例以及作者本身的一线工程师背景,也让我确信书中那些关于主机游戏开发相关等,我所没有接触过的内容都也绝非泛泛而谈。

标签:Engine,翻译,游戏,程序员,Game,引擎,Architecture,开发,Milo
From: https://www.cnblogs.com/2008nmj/p/17361018.html

相关文章

  • MegEngine 使用小技巧:量化
    常见神经网络模型所用的Tensor数据类型一般是float32类型,而工业界出于对特定场景的需求(极少的计算资源,极致的推理速度),需要把模型的权重和或激活值转换为位数更少的数值类型(比int8,float16)——整个过程被称为量化(Quantization)。通常以浮点模型为起点,经过中间的量化处理后......
  • MegEngine 使用小技巧:量化
    常见神经网络模型所用的Tensor数据类型一般是float32类型,而工业界出于对特定场景的需求(极少的计算资源,极致的推理速度),需要把模型的权重和或激活值转换为位数更少的数值类型(比int8,float16)——整个过程被称为量化(Quantization)。通常以浮点模型为起点,经过中间的量化处理......
  • Node.js Event Loop & V8 engine & libuv All In One
    Node.jsEventLoop&V8engine&libuvAllInOne事件循环constcb1=()=>console.log(`1`);constcb2=()=>console.log(`2`);constcb3=()=>console.log(`3`);constcb4=()=>console.log(`4`);constcb5=()=>console.log(......
  • tdengine安装部署
    1.下载最新版本https://docs.taosdata.com/get-started/package/#!官方网址,详细介绍都有2.centos7上解压文件tar-zxvfTDengine-server--Linux-x64.tar.gz3.安装进入解压后的目录,执行sudo./install.sh4.自定义日志,缓存,数据存储位置创建三个文件夹修改配置文件vim/et......
  • 【数据库开发】国产数据库之涛思TDengine
    文章目录1、简介2、安装2.1安装TDengine服务2.2运行TDengine服务(taosd)2.3执行TDengine命令行(taos)3、测试3.1新建数据库(命令行命令)3.2新建数据库(脚本文件)3.3命令行参数3.4taosBenchmark命令(体验写入速度)3.5TDengineCLI命令(体验查询速度)3.6基础命令3.7节点管理3.8用户管......
  • 题解:【CF235D】Graph Game
    题目链接根据期望的线性性,一次操作使得接下来要递归处理\(|G|\)个点,将这些贡献分摊到\(|G|\)个点上,这样我们接下来只需要计算概率。首先考虑如果是树怎么做。操作等价于随机一个排列,顺次删掉排列中的点,并求出删掉当前点之前其所处的连通块的大小。记当前\(x\)为点分治中心......
  • 蓝牙Sig Mesh 概念入门③——分层结构Layered architecture
    文章目录一、Modellayer二、FoundationModellayer三、Accesslayer四、Transportlayer五、Networklayer六、Bearerlayer一、Modellayermodel定义了一个节点支持的功能特性,每一个model都定义了自己的opcode和status。比如genericonoffmodel,定义了GenericON/OFF/G......
  • Google Earth Engine(GEE)——全球河流网络及相应的水资源区数据集
    全球河流网络及相应的水资源区河流网络和水资源区(WRZ)对于水资源的规划、利用、开发、保护和管理至关重要。目前,世界上的河网和水资源区大多是根据数字高程模型数据自动获得的,这些数据不够准确,尤其是在平原地区。此外,WRZ代码与河网不一致。作者提出了一系列方法,生成了分辨率较高、......
  • UVA Children’s Game(贪心)
    Description4thIIUCInter-University ProgrammingContest,2005AChildren’sGameInput:standardinputOutput:standardoutputProblemsetter: Md. KamruzzamanTherearelotsofnumbergamesforchildren.Thesegamesareprettyeasytoplaybutnotsoeasyt......
  • 1、题目:Engineering Design Thinking, Teaching, and Learning
    期刊信息 (1)作者:Dym,CliveL.,Agogino,AliceM.,Eris,Ozgur,Frey,DanielD.,Leifer,LarryJ. (2)期刊:JournalofEngineeringEducation:94-1-103-120,01/2005 (3)DOI:10.1002/j.2168-9830.2005.tb00832.x (4)ISSN:10694730 (5)IF:3.288(SQ2)......