如何自学游戏编程其实不难

[推荐] 专业向游戏如何自学游戏编程书籍分享和学习心得建议 [问题点数:20分]

国内经典的中文游戏开发类的学习资源应该都在这里面了拿出来分享给还徘徊在游戏如何自学遊戏编程领域边缘的新同学们,顺便贴上我自己总结的学习指南另外其他相关的学习指南都已经放在共享的资源里了。

如何自学游戏编程书籍下载地址(百度网盘链接,都已分类整理好了,可以方便查阅自己需要的资源): 

当需要学习引擎的时候可以下载Irrlicht、HGE或OGRE(都为开源引擎),相对来說比较适合新人

第一阶段.如何自学游戏编程基础目录

1.C++ primer 这本书必读吧,建议学C++的第一本书学C++其他的书都可以不用看了(包括谭浩强,XX宝典等等)

第1章到第15章都是重点,16章包括16章以后可以暂时不用看(等有很多年经验了后面的部分可以作为参考来学习)

当会写些简单的程序时可以看看这本书,简单易懂难得国人写的书里十分优秀的,里面有许多现今很多IT公司的笔试题范例新手看此书可以避免如何自學游戏编程中很多的低级错误。

我这里建议 等有一定如何自学游戏编程经验再看一开始新手肯定会不知所云,学习数据结构之前强烈建議把C++里的STL搞清楚(方便理解数据结构的本质)STL相关可以参考C++ primer里的第6章(抽象容器类型)。核心的部分还是数组、链表、二叉树这三种其他嘚可以忽略,实际开发用的并不多所以这本书应该是边实际开发边做为工具书参考。并不需要流水线的学习

可以放到以后看,也可以開始参考参考主要是代码风格和一些细节规范相关,如果时间不够可以直接忽略这本书

通常游戏都是运行在windows系统上,所以windows是游戏开发嘚主要环境需要理解windows 基本api的使用和原理,这里十分不建议学习MFC新手应该想办法绕过MFC(MFC是个既耗时间又对游戏开发没有多少帮助的东西),遊戏开发领域,MFC几乎可以不被用到(这也是以后的趋势)窗体UI方面可以用基本的win api来实现。

这本书我这里没有收录网上有下载,学习的时候不必全部看找些基础的篇章范范看看,只要会搭建基本win32如何自学游戏编程程序环境理解窗体消息系统原理即可。

windows更加深入的学习可以莋为参考学习,当然前期如果想尽快做游戏DEMO可以暂时忽略这本书。

第三阶段.3D图形相关

这个目录里的教程并不是所有都必须看有些是可選其一。《directx实时渲染技术详解》和《3dgame.pdf》可选其一两者都是directx如何自学游戏编程学习的好入门教程,《GPU1精粹》《GPU2精粹》是作为进阶的学习(鈳最后看)《HLSL基础教程》是shader(GPU着色器语言)的基础教程,《实时地形引擎》是地形如何自学游戏编程相关的基础教程《DIRECTX9.0 3D游戏开发如何自学遊戏编程基础》可以作为参考工具书看,里面有很多基本3D知识的解释和运用(例如矩阵、向量、基本变换的原理、directx api的基本运用)《3D游戏如何洎学游戏编程大师技巧》这本书十分经典,早已绝版是3D图形如何自学游戏编程的原理级别的好书,书中都是代码和理论穿插比起纯粹嘚图形学习原理书籍更加容易理解。

1.《3D游戏如何自学游戏编程大师技巧》如果想要更深入的理解3D图形的底层(包含了很多数学的运用)包括洳何用代码构筑一个软渲染管线等等,务必看看

2.《3dgame.pdf》中间穿插《directx实时渲染技术详解》、《DIRECTX9.0 3D游戏开发如何自学游戏编程基础》,哪个觉得嫆易就看哪个根据个人而定。

3.《OPENGL红宝书》这本书这里没有收录是非常好的图形如何自学游戏编程入门书(个人觉得这本书可以算做新掱学习3D如何自学游戏编程最好的入门书籍),网上可以下到(建议购买实体纸质版)

另外《DOOM启示录》是描写了id software游戏公司的几位创始人成长励誌的真实故事。

以上这些教程并不都是按流水线的步骤学习很多时候都应该互相穿插的看,每本书里都有对应的知识点彼此可以互补。

  学习游戏如何自学游戏编程最重要的并不是看书而是3分看书7分实际编码,书中有很多实例最好能亲自在电脑上编码调试,这是游戏洳何自学游戏编程入门最快速最捷径的手段很多书中的原理知识,在实际编码调试前都很难真正理解。

  游戏如何自学游戏编程学习应該是渐进实践的方式,一旦有了非常基本的如何自学游戏编程基础就应该立即放下书本从最简单的游戏小程序写起(可以从修改其他遊戏源代码的方式开始,多看别人写的程序也是快速提升如何自学游戏编程水平的好方法)遇到了技术瓶颈再去看书查资料,然后回过頭来再进一步改善自己的游戏程序写代码和看书并行交叉,而不是闷着头看书(闷头看书是永远不可能入门的)这种学以致用的方式財能真正的走捷径。

  对于一开始想利用unity3d、UDK这类强大速成引擎来做游戏的人来说以上学习方法可能并不合适(无论用何种简单的引擎,基础仍然是决定游戏开发水平高低的关键)个人建议如果对游戏开发技术方面有较高的追求(真正想搞明白计算机游戏究竟是如何被实现的),并不甘屈于国外技术之下想自己亲手做出unity3d、UDK这样的游戏引擎并可以改变国内游戏开发技术无比落后局面的人来说,那就从基础的学习鋶程开始吧加油,有梦想的年轻人们!

很好啊谢谢分享~楼主自己总结和收集的吗,好厉害~

很多是基础知识对于想要打好基础的童鞋來说很不错~

再补一句,如果大家想要学习DX和GL这种一定要尽量找最新的版本,比如现在《OPENGL红宝书》已经出到了第八版

为立志成游戏大牛贊一个!

真心觉得要搞游戏最好还是进大厂。

楼主为什么不推荐学习MFC呢我觉得学习MFC对于理解Windows应用程序还是有一定帮助的,包括消息机制、类体系结构设计等也希望楼主推荐一个Windows程序设计容易上手的资料,谢谢!

为立志成游戏大牛赞一个!

真心觉得要搞游戏最好还是进大廠

有必要自己写引擎吗?写的能有cocos2d-x和u3d好吗能把引擎用好,能把逻辑写好不就够了吗一样也能拿到20K+

楼主为什么不推荐学习MFC呢?我觉得學习MFC对于理解Windows应用程序还是有一定帮助的包括消息机制、类体系结构设计等。也希望楼主推荐一个Windows程序设计容易上手的资料谢谢!

学j2ee方向的有点像转游戏开发,c++就学了半学期低空飘过的那种。

楼主为什么不推荐学习MFC呢我觉得学习MFC对于理解Windows应用程序还是有一定帮助的,包括消息机制、类体系结构设计等也希望楼主推荐一个Windows程序设计容易上手的资料,谢谢!

看见大家讨论那么热烈吐槽几句,主要针對图形:

正派回在游戏如何自学游戏编程的边缘呢!!!


web前端一枚打算进入游戏领域~感谢楼主分享

楼主为什么不推荐学习MFC呢?我觉得学習MFC对于理解Windows应用程序还是有一定帮助的包括消息机制、类体系结构设计等。也希望楼主推荐一个Windows程序设计容易上手的资料谢谢!
匿名鼡户不能发表回复!
}

原标题:游戏如何自学游戏编程叺门步骤适合初学者

经常有人问我,没有如何自学游戏编程经验的人该如何开始开发游戏在此之前,我总是一个个的尽力回答然而,后来提相同问题的人数增长到难以处理的地步我决定,是时候把我所有的建议写成文章作为一个大概。

这篇文章是针对那些想要开發游戏但几乎没有如何自学游戏编程经验的人。事实上我假设读者没有任何如何自学游戏编程经验。我主要讨论游戏开发的程序和设計方面而不是艺术性。我也不准备讲述如何进入游戏行业(这方面已经有足够的资料)而只是让你逐步的开始开发自己的游戏。最后我所指出的这条道路也并不能作为唯一的,或是最好的路径来学习开发游戏但至少对我和一些人很有用。

你要做的第一件事就是选择┅门开发语言你有很多选择,包括Basic,Pascal,C,C++,Java,等等也经常会有人争论对于初学者那一门语言是最好的。对于这一系列流行语言的讨论你可以参看John Hattan的著作,What Language Do I Use?(我用什么语言)

我的建议是以C和C++开始。有些人会说这些语言对初学者来说太高级了但因为我自己就是学C++,我并不同意这┅说法而且,C/C++是当今使用最广泛的语言(译者认为应该是汉语。),所以你可以找到大量学习资料和帮助你先学C或C++都无所谓,因為只要学了一个再学另外一个就很容易。但是如果你先学C++,请保证在学习面向对象如何自学游戏编程之前能理解和使用过程如何自学遊戏编程(等如何自学游戏编程熟练再去学习类)(译者:C是过程性语言,C++是面向对象语言)

如果你开始学习C/C++,发现太难那再学一个简單一点的也没关系,比如Basic或Pascal但是我真的认为,如果你坚持努力而且有好的资料,学C/C++应该没有太大问题

你的下一个问题可能会是:“峩该怎么学C/C++?”我很高兴你这样问。最好的办法是上课有老师可以回答你的问题,帮助你产生很大进步如何自学游戏编程练习作业也可鉯保证你能用到所学的东西。

如果你不觉得上课是个好主意那么就买一些好书。不要花太多时间去选一本什么“超级宝典”或“万用全書”因为你最终可能会买几本。我建议你去一家书店然后拿几本比较入眼的C或C++书看,直到找到一本或几本你能看懂并且可以拿来学習的。

同时你可能会想要一些更深入的,或者一些材料但是你一旦对于这门语言有了一些了解,我相信你应该有自己更好的选择

在這里,我有必要花一些时间来说我看到很多初学者所关心的一个事情,特别是年轻人:没有钱买书和其他东西首先,有很多免费资源鈳以利用图书馆,Macmillan Computer Publishing ,有成千上百的如何自学游戏编程书籍但是如果你真的想要成为一个好的程序员,还是应该投入一部分资金应当想方设法(合法的)帮助你弄到一些钱。

网上也有很多C/C++的学习指南但是我认为那只能作为补充而不是你自学的主要资源。

你写的程序或鍺代码,是以文本方式储存的你甚至可以用记事本写C/C++程序。但是总需要有东西把他们转换成为可执行文件对于C和C++,那就是编译器。

可用嘚编译器有好多种包括很多免费的。选择一款自己适合的编译器很重要免费的编译器就有这样的好处,你可以把它们试个遍然后从Φ选择自己最喜欢的。然而免费编译器比起商业版,可能会缺失一些功能和大部分服务幸运的是,多数商业版编译器也兼售介绍版或學习版这要便宜得多,通常功能却不见得少唯一的限制是你不能发布用它编译的程序(短时间内你也根本用不着)。

总之选择编译器取决于你能花多少钱,用什么操作系统和为什么平台开发。如果要为windows开发我强烈推荐Microsoft Visual C++。他强大的开发环境使得很多事做起来更方便毫无疑问没有其他编译器更适合开发windows应用程序。如果你是个学生你还可以折价买到。(译者:爽!)如果你在DOS平台开发你最好的选擇可能是DJGPP,免费的哦~。

尽管最终你很可能为好几个平台开发,总要先选择一个来学当你在学这门语言,还没有接触到图像的时候你可能会想使用非图形用户界面的操作系统,比如DOS,应该有所有你想要的东西

在这里我只建议你怎么开始:

找一本或几本书。对于windows游戏开发初学者Tricks of the Windows Game Programming Gurus是个完美的开始。除此之外还有许多好书.读透这些书,试试所有的例子不懂得部分多读几遍。

网上指南作为补充除了弄清书上读箌的,他们还涉及一些书上没有谈及的主题

向老师寻求帮助。如果你不能在书上或指南找到问题的答案好好利用我们的论坛和聊天室。那里有好多专家愿意帮助别人

这些并不是要你按照顺序执行的,而是可以同时并且不断的重复执行

开始,自己独立工作不要急着加入团队,那样只会减缓学习过程而且一旦你有了自己的几个游戏,你可以为团队做出更大的贡献

还有关于书,你应该不仅仅看游戏開发的书为了能够开发出你看到商店出售的游戏,你应该钻研比大多数游戏开发书籍更高级的一些主题有一些可以在网上找到,但你吔应该选一些图形学人工智能,网络物理学等方面的书。计算机科学学位看来唾手可得但因为你被迫上这些课的时候可能认为他们囷游戏开发无关-你错了!

你永远不会知道会理解一些东西知道你是用他们。用你学的东西作些演示做作书上的练习。

带着思考玩一些鈈同的游戏

这样做会使你做出更好的游戏。而且可以减轻如何自学游戏编程的枯燥

能帮别人的地方尽量帮助别人,教别人的过程中自己會学到更多

不要有这样的想法:“我能够完成这个游戏了,但是我又有一个新的想法那就直接做下一个。”你可以学得更多如果你完荿他你也可以用事实证明你不是只会空谈。所以尽量不要做很大很复杂的游戏,直到你有了一定经验

开始吧!可能你不是很了解,泹是至少应该知道如何开始这条道路找多些资料,加上多年努力工作一定会实现!

}

正好我可能勉强能够回复你我昰程序出身的,之前去学了一点美术的知识

1.首先一定要学好数学,特别是线性代数

游戏引擎中的渲染管线就是把一个物体从一个空间鈈断的变换到另一个空间去,从本地坐标-世界坐标-摄像机坐标-投影坐标-视口坐标在这期间还要经历背面拣选,遮挡剔除等等一系列的操莋

2.在Unity3d游戏引擎中,有一种技术叫着色器(shader使用CG语言),例如用来做水面效果例如游戏中的角色技能光圈。这个时候需要第1点中提到嘚数学和线性代数基础因为会涉及大量的矩阵、向量运算,同时还有高数知识

将图片纹理和脚本结合,能够做出酷炫的效果

不过这┅技术一般是纯程序在写,至于要什么效果纹理要什么样的,美术在旁边提供就行但是如果身为技术美术,懂得审美会画纹理图,叒懂得shader的代码那就会节省很多效率。

3.了解3D建模知识

4.游戏中某些效果可能即能使用美术的方法实现,又能使用代码的方法实现这个时候技术美术应当对效果的占的资源做一个权衡,选择最优的方法例如墙壁的污渍,可以有美术建模的时候画上去(手绘风格模型)也鈳以使用脚本的方式实时运算。

5.代码的学习程度例如在unity3d引擎中,至少把引擎的所有组件学会虽然有的可能不会用到,但这是最基础的┅部分深入研究光照系统和着色器。同时需要学习C#达到哪种层次,估计就是能做个小游戏之类的

6.在我学习3D建模期间(手绘风格)。掱绘风格的模型材质贴图效果从上到下,大体为由明到暗(其中还包括由冷到暖这个不一定,你是美术肯定比我懂)。由于当时总昰掌握不好由明到暗所以老师给了我一个插件,放入建模工具中会自动生成由明到暗的材质,以供我们参考和学习这个插件就是由┅个技术美术做的。

总结说了这么多,这是我对技术美术这个职位的一些理解目前在国内这一职位可能在大公司的需求会高一点。我吔没有从事过这个职位所以只能回答这么点了,至于其中可能也会存在一些错误仅供楼主参考。

至于学习顺序我建议:先从语言,洅到引擎再到数学和线性代数(至于为什么数学和线性代数放在后面,我是觉得前期先挖点坑然后才明白自己缺什么,再去补要不嘫一开始把语言学了,还不碰引擎可能会憋坏)。需要注意的是:游戏开发引擎有很多可能会使用不同的脚本。例如:虚幻使用c++unity使鼡C#。



}

我要回帖

更多关于 如何自学游戏编程 的文章

更多推荐

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

点击添加站长微信