《Windows游戏编程大师技巧》还最值得学习的编程语言花时间去学习吗

我在浏览图形学和游戏开发相关问题时发现很多人推荐这本书,我也去关注了一下,发现这本书居然是04年出的,想问一下为什么还有这么多人推荐这本书?
我觉得不老 两年前看完的 看完以后前几天看完了3D游戏大师编程技巧 拉莫泽的书真心好看 这本书看完基本上会写2D游戏啦 我就是看完这本书 用edgamemaker做了个仿梦幻西游的游戏 关键是第一章就把完整的打砖块的源码教给你 后面每章都是循序渐进 教你的是游戏的制作原理 而不是特定平台的api等等
建议找MS Press 过的书吧,这样至少有指导性一些。
建议找MS Press 过的书吧,这样至少有指导性一些。
已有帐号?
无法登录?
社交帐号登录
立志做游戏开发的全栈【转】如何学好3D游戏引擎编程(三) | 游戏开发小组 | 果壳网 科技有意思
2742人加入此小组
《3D游戏编程大师技巧》继承了《WINDOWS游戏编程大师技巧》里面2D函数,然后3D功能以及流水线和引擎都是自己完成,这本书的代码量要有十几万,我当时用C++重新封装了《3D游戏编程大师技巧》代码,自己设计了一个面向对象固定流水线模式,代码量13W左右,这个过程很艰辛,这本书我看了2遍,最后一共零零散散花费了大约9。10个月的时间。你会感觉你立刻升级了,HP,MP,CP都增长了,当然也包括RP,哈哈!(不知道这些术语的,大家多玩玩RPG游戏吧!)好东西去追求,不要怕浪费时间,浪费精力,你想想,你得到的最后会大于你的付出,这些都不算什么。很多人问我怎么学3D,我建议他们不能着急,要从学《3D游戏编程大师技巧》开始,大约要8,9个月时间,把每个细节都弄明白,闭上眼睛,怎么实现就很清楚,书上每一页写什么都很明确。他们都觉得浪费时间,那么这样是永远学不好的1 3D数学是你要攻克的虽然你数学学的好,但国内的教科书还是和游戏中用的有些不同,毕竟没有上过专门讲解游戏中数学知识的课程。这需要你系统学习游戏编程中数学,3*3矩阵为什么有的人用,而有的人用4*4矩阵,为什么有的用矩阵转置有的用矩阵的逆。《3D游戏编程大师技巧》这本书介绍的很详细,还有一本书就是《3D数学基础:图形与游戏开发》很不错(有中文的),先系统学习下,然后在学习游戏编程时,不懂的时候,再回头看看这些书,把所有的东西都彻底弄清。你如果数学基础好,学这些都很容易,以后游戏编程中最深奥的地方之一就是数学。基本上我总结下,你要知道的是:向量 4维 和 3维向量有什么不同 矩阵 4*4 和 3*3 矩阵有什么不同四元数ELUER角以后有机会深入研究碰撞中的各种算法,还会遇到很多关于数学的问题,上面只是渲染有关系。2 3D流水线的实现过程我无法用言语来表明这个过程的重要性,整个3D流水线是是3D游戏的脊柱,你的基础知识牢固与否,主要看你这里。3D流水线每一个细节我希望大家都要搞清楚,这个过程对初学者是要花费大量的时间专研与琢磨,D3D的固定流水线都是由硬件完成,如果你的硬件不支持,它会用软件模拟,好,关键就在这里,软件模拟是怎么回事,而《3D游戏编程大师技巧》的流水线是自己用C语言写的,也就是用软件完成,这样你能了解整个流水线的细节,同时你在学D3D时,对照着来学,你会发现,D3D学起来很容易。现在D3D和硬件都支持可编程流水线,而且DX10没有固定流水线,所有变换过程都用SHADER语言控制显卡完成,这个过程是3D流水线的缩影,所以3D流水线的重要性是是可想而知的。我说了这么多,3D流水线对你是一个新鲜的名词,我也没有去解释它,我不想去解释,完全留给你自己去,我始终坚持着,我只告诉你去的路,路上有什么困难,应该怎么走,你自己去体会这条路上的酸甜苦辣。我希望大家多花些时间在这上面,真真正正的自己写代码实现一下,基础对你真的很重要,记住我说的话,很多人学习时,认为自己理解了,没有去实现,其实还是那句话“纸上得来终觉浅,绝知此事必躬行”,相信我,没错的。 基本上我总结下,你要知道的是:3D中的顶点结构,每个分量都用来干什么,三角形是基本渲染单元。模型空间——》世界空间——》相机空间——》投影空间——》屏幕空间——》光栅化 这个过程和运行原理材质究竟是什么? 常用的宏光照模型原理,光源类型光源和材质和法向量关系光照在哪个空间去执行(其实不是很严格)纹理寻址,纹理映射方式,纹理混合,纹理过滤。1D 2D 3D CUBE 纹理Z 1/Z缓冲2种相机模型ALPHA 透明关于光栅化三角形要特别注意,他最后混合纹理和光照颜色和ALPHA透明,还要判断深度缓冲,最后是插值填写每个象素。3 D3D究竟要如何学习《3D游戏编程大师技巧》和D3D流水线过程还是有些差别的,比如在投影矩阵上,其实它们都是大同小异,只不过表现形式不同,原理都一样。我希望大家自己可以找出来,深刻理解里面原理。还有一个重要的东西,就是哪些是D3D开发游戏必须有的,哪些是D3D自己扩展的。必须有的,就是同硬件打交道的部分,而D3D中自己扩展了很多库函数,例如数学库,这个完全可以没有,我们自己来实现,还有D3D中的EFFECT接口,它自己定义的。X文件所有函数接口。也就是说,你要理解,哪些是游戏开发中必须有的,哪些是游戏开发中自己完全可以不接触底层来实现的。游戏编程中有3个缓冲区,颜色缓冲,深度缓冲,模板缓冲,前2个《3D游戏编程大师技巧》中,都详细的介绍,而模板对初学者可能很晦涩,大家先弄明白模板的机制,然后多看些例子,我想你会深刻理解它的含义的。D3D的学习,可以看D3D SDK的例子,也可以找一些书籍,很多的。基本上我总结下,你要知道的是:D3D提供基本常用底层接口,那些是是D3D为了编程必须提供的,那些是不用提供的,比如数学库我们完全可以自己写。D3D顶点 索引BUFFER颜色缓冲,模版缓冲,深度缓冲 以及对这些缓冲的操作目标渲染对象、D3D 中的3D流水线单通道渲染,多通道渲染。熟练操作上面的所有,这些都足够了,其他的都是D3D中多余的,如果你要自己做引擎,很多都要自己实现,当然初学者可以就用它扩展的函数库,也很方便的。4 其他要知道的游戏知识下面知识都属于很强的游戏技术范畴,他们只属于单单游戏中技术支持,引擎就是用合理的方式,把所有3D相关包括流水线和下面这些都整和到一起,但这种整和是有效的管理。场景管理算法 :BSP OCTREE QUADTREE PORTAL PVS动画系统 :骨骼动画,蒙皮骨骼动画,渐变动画,和这些动画的混合阴影 :阴影体 投影阴影 阴影影射剔除算法 :包围球 OBB AABB BHV算法LOD系统 :视点无关LOD 视点相关LOD广告牌 :跟踪相机方向 和 只围绕y轴旋转 粒子系统这些是比较常用的,常常碰到的,根据基本的颜色运算,空间运算还能衍生出很多游戏特效,等待你自己去看书,去解决。七。3D引擎编程,令你的挑战达到了极限就象我前面说的,引擎没有严格定义划分,但对于当代的引擎,似乎大家都趋向于越好的东西,越健壮的支持,才称上引擎。现在游戏玩家对画面拟真程度要求很高,这就要求引擎能更好的处理3D世界中大量数据,一个好的引擎,起码要做到以下几点(引用《3D.Game.Engine.Architecture.Engineering.RealTime.Applications.with.Wild.Magic》里面的话)1。如何把3D世界中大量数据,让它实时快速处理。2。引擎中的渲染器(用来管理数据,进行渲染处理的)接口应该怎么定义。3。如何让使用引擎的人,能很容易的使用引擎。4。当引擎中添加新特性时,如果让引擎改动最小。我感觉这4句话,概括的很精辟,如果让我来概括,好象我现在还没这个能力。这是一个当代引擎的新的定义,虽然不是全面,但它一语道破天机,如果你的引擎能达到上面4点,我想它已经足够的优秀,同时说明你也很优秀了。下面我就分别解刨这4句话,让大家对引擎有一个深刻的了解。我只是分析,这4句话要求高手才可以完全去达到,我现在还不具备这个能力,所以只能帮大家分析。1。如何把3D世界中大量数据,让它实时快速处理。3D世界中充满了大量得数据,有效的处理只可以看见的,能感受到的就可以了。3D引擎中,很多时候都在处理剪裁和剔除的问题,把不可见的或者和碰撞无关的数据用最快的方法弄掉,不让它进入显卡,一切还是停留在3D空间中。剪裁,剔除还有碰撞处理,永远是3D引擎中最常见的话题,现在有很多成型的方法,大家自己通过学习就可以了解的。2。引擎中的渲染器(用来管理数据,进行渲染处理的)接口应该怎么定义。即使你把3D数据给了显卡,还是不能达到最快显示,我们要把这些数据分类,重新组织,这里面还涉及到存储管理的问题。你的渲染器的接口要定义的和底层提供的DX或者OPGL相通,因为最后你要调用的是这2个库里面的函数。3。如何让使用引擎的人,能很容易的使用引擎。这是一个经验问题,一个软件设计给用户使用,怎么让用户很容易上手。但无论什么样的用户,你必须对3D有了解才可以使用,否则神仙也没法完成这个引擎。4。当引擎中添加新特性时,如果让引擎改动最小。经常说的一句话就是“计划没有变化快”,怎么能让引擎跟上时代的步伐,当硬件有革新,我们引擎就有革新,出现新的处理方法,引擎也要改进,用户需求改变,引擎接口也要改变,我们要求引擎的所有改动最小,这样才是一个完美的引擎。引擎是软件设计+算法+编程的结合体,难点在软件设计上,一个好的引擎,代码几百万很正常,没有一个好的设计来规范它们,混乱是不可避免的。对于一个引擎,从设计到编程都很重要,一个人完成一个好的引擎是不可能的,多人协作来完成引擎,在大家相互配合的同时,每个人对自己的要完成的任务必须精通,还要有人协调这些工作。好的引擎,要有一个抽象层次,然后是渲染API层次,还要支持多操作系统平台,我在这里没有过多介绍各种技术细节,因为很多细节在书中都可以找到,加上你的聪明,很多技术算法可以自己创造的。对于游戏中大量算法,引擎中到处都是,碰撞,场景管理,光照,纹理混合,动画系统,粒子系统,内存管理,资源管理等等大家要多实践,多思考,多看书,多看资料,把握每一个细节,把握每一个整体。看书时要带着问题去看,同时也要带出问题,因为没有一个方法是完美的,必定会有或多或少的缺陷。现在开源的引擎确实不少,其实程序员都有一个共性,看别人代码有时不如自己写,确实这样,有时只看代码去体会别人的思想真的很难,但有时为了去学习也要硬着头皮去看的,跟踪代码。开始时,如果你不了解引擎究竟是什么,这时最好集中看一个开源引擎,一定要把它的工作原理都弄明白,这样你会得到很大的提升,你就会明白引擎是什么,为什么不用D3D直接编写游戏,还有一点就是,有机会一定要去实现,这样你的体会会更深。八 浅谈物理与人工智能这2个都不是中国游戏中的优势,它们和图形一样,要求一定能力积累才可以胜任。如果我没有预测的话,未来中国游戏中大量的需求将来自物理和人工智能,传统的网络RPG会慢慢不能满足大家需要,而被时代所抛弃的。这2方面的编程我只是略知一二,还算一个小白,在此简单谈谈。10。1 物理游戏中大部分物理模拟都集中在力学和运动学上,本来它们就是一个整体。因为最后效果是大家看到的,而看到的都是物体在屏幕上的移动,所以所有的计算最终都归结到物体移动上。因为游戏毕竟是游戏,人也毕竟是人,没有必要模拟的那么精确,同时人也是感觉不出来的。所以要想做好物理上的编程,必须对力学和运动学有系统的了解,高中学的力学部分还不是很足够,对于旋转部分,也就是处理力矩和转动惯量上,高中物理书都没有讲(我那时是没有讲,而且很多直线线形运动方程推倒其实是用微积分推倒的,高中书上都没有明确推倒)物理上的模拟也没有逃脱物理计算基本规则,先是受力分析,然后计算合力,计算加速度,计算速度,最后计算位置,也可能涉及到动能和动量等知识,还有些流体力学等等吧。物理其实处理的问题基本就是检测物体碰撞,碰撞后的反映,物体运动情况。至于理论,大家弄本大学物理,力学部分就足够,如果数学好的话加上高中的物理知识,应该学起来不难的。《游戏开发物理学》这本书很好,可惜绝版了,但有电子版的,也有中文版。10。2 AI相对物理的编程书籍来说,AI的书很多。AI是研究生必须学的课程,包括传统的AI和计算智能。游戏中常用的传统AI包括自动机理论,A* 算法,回溯,图搜索,剪枝等等吧。计算智能包括的是:遗传算法,模糊计算,人工神经网络。我答UBI笔试的时候,里面很多题都是A*算法,可见FPS游戏中大量存在的都是AI的路径搜索问题,让电脑更加智能。AI的游戏编程书很多,我就看过几本。《WINDOWS游戏编程》中有一部分讲的AI,《游戏开发中人工智能》 《游戏编程中的人工智能技术》这3本都有中文的,而且都有大量的实例,对于那些大量理论的书籍来说,看看它们还是很通俗的。还有很多好书,都是英文的。
+ 加入我的果篮
文如其名,这些个任务一丝不苟地做完真是条汉子= =||
膜拜一个……看完之后……正在犹豫是不是放弃好了……
引用 的话:膜拜一个……看完之后……正在犹豫是不是放弃好了……别被吓大啊。。现在游戏引擎成熟了,就方便好多。。
引用 的话:别被吓大啊。。现在游戏引擎成熟了,就方便好多。。问楼主点问题啊,我写了个3D引擎,骨骼动画部分能给我说说么
引用 的话:参考OGRE引擎。。
(C)2015果壳网&京ICP备号-2&京公网安备 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
windows游戏编程大师技巧(第二版)
下载积分:3000
内容提示:windows游戏编程大师技巧(第二版),游戏编程入门,3d游戏编程大师技巧,matlab编程第二版,windows优化大师,windows美化大师,windows核心编程,windows8 优化大师,windows编程,windows网络编程
文档格式:PDF|
浏览次数:5|
上传日期: 02:49:56|
文档星级:
该用户还上传了这些文档
windows游戏编程大师技巧(第二版)
官方公共微信}

我要回帖

更多关于 电脑编程技巧与维护 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信