游戏程序员养成计划

与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,更是让初学者无从下手。下面总结了一些入门方法和比较容易入手的资料。

         首先你要精通一门高级语言,比如C++或者C#,其次,要有良好的英文阅读能力。对游戏开发者来说英文阅读能力是最重要也是最基本的工具之一,因为你遇到的大部分资源都将是英文的,不要总等着别人为你翻译。慢慢尝试着阅读英文资料,你会发现其实也并没有那么难:)

 

         刚开始,你要做的就是选择一门图形API,一般就是DirectX或者OpenGL之间选一个。如果考虑到跨平台,那么OGL是首选. 如果只在ms的平台,则DX是首选。我对OGL并不是很了解,所以下面大部门资料都是和DX相关的。当然,作为准备工作之一,你首先要到DirectX Develop Center下载最新版的DirectX SDK。

 

         入门书籍非常重要,推荐

<<Introduction to 3D Game Programming with DirectX 9.0>>(好像去年出了中文版)也就是传说中的龙书,这可以说是最好的DX入门教材,Frank Luna从浅入深,讨论了DX的方方面面。另外再配上

<<DirectX 9 Graphics  the Definitive Guide to Direct3D>>,书名虽然是definitive ,但实际属于入门基本的书。看完这两本书,你基本上已经对DirectX比较熟悉了。如果你希望学习XNA,也是一样的,毕竟XNA是以DX为基础。

更新(2010.11.6): 

<<Introduction to 3D Game Programming with DirectX 9.0>>的第二版,

《xxx, A Shader Approach》也可以找到了。

更新(2011.10.23):如果有dx9或者10基础,希望学习DX11的话 

<<Practical Rendering & Computation with Direct3D 11>> 是最好的书,目前暂无电子版

 

         不要一开始就看图形学的书,这个时候你对图形编程还没有一个基本的感性认识,因此八成看的云里雾里。不要以网上的教程和论坛提问作为主要学习途径,找一本好书,系统学习,效率才最高。不要马上看SDK里的例子,很多图形学的基本原理仅仅通过读代码是不会明白的。某些年代太过久远的书最好*不要*看了,比如<<windows游戏编程大师技巧>>  <<3D游戏编程大师技巧>> 。有人说基本的思想总是不变的,可惜对于现代GPU来说,很多早期的技术和优化技巧早就过时了。图形编程是发展的非常快的技术,看看GPU的发展速度,1~2年就是一代产品的革新。

 

          好了,入门之后,是你巩固和拓展视野的阶段。现在看计算机图形学就比较合适了。吐血推荐

<<Real-Time-Rendering>>,这本书算得上是所有图形程序员的必读书籍和参考手册了。最近刚出了第三版(更新:已经有电子版了)。可惜国内只有第二版,稍微有点老,如果实在找不到第三版,还是值得一读。国内其他所有以图形学命名的书都有一个共同点:枯燥,过时。只需看看其中二维三维变换和曲线曲面表示的部分即可。如果这个时候发现你当年数学没有学好,那么有三本数学书是为游戏程序员量身定制的:

<<3D Math Primer for Graphics and Game Development>>, 

<<Mathematics for 3D Game Programming and Computer Graphics>>和

<<Essential Mathematics Guide 2nd Edition>>,第一本书有中文版,最后一本则是08年才出的新书。
更新(2011.10.23) 

<<Mathematics for 3D Game Programming and Computer Graphic>>第三版已有电子版,推荐。

 

更新(2010.11.6)  看完上述入门书籍之后,就应该花点时间好好的完整阅读DirectX文档以及部分sample了,加深对DX整个系统,函数的了解。你会发现普通论坛里60%的问题都是文档里讲过的。

 

         其实入门之后,就没有固定的学习路线了,最好根据你感兴趣的方向来学习。

 

Shader方面

《Cg_tutorial》和《The Complete Effect and HLSL Guide》都是不错的入门材料,当然还有SDK文档。

<<Shaders for Game Programmers and Artists>>有大量入门的例子。

<<Advanced Lighting And Materials With Shaders>>详细介绍了各种光照模型和技术。

<<GPU Gems>> 1~3册肯定是必读的,虽然有1,2有中文版,但某些翻译并不是很理想,强烈建议直接看英文版。ShaderX系列也是很经典的系列,每年出版一本,包含了最新的实时渲染技术,如今已经出了第6册了。不过网络上只能找到1~3册。1,2册大部分shader都是用asm写的,不过看懂原理,转换为HLSL也并不难。另外Nvidia SDK和ATI SDK也是学习shader的重要资源。最后还有刚出的

<< Programming Vertex, Geometry, and Pixel Shaders>>

更新(2010.4.30):ShaderX已经出版了第7册,后续的版本由于版权原因,改名为GPU Pro: Advanced Rendering Techniques,仍然每年出版一本。

更新(2010.11.6): 天朝人民的智慧是无限的,很多图形学的新书都能在taobao买单翻印的纸版了,包括ShaderX系统等等.....

更新(2010.11.6): 关于ShaderX和GPU Gems常常有人问我较老的几册值不值得看,还有看不懂怎么办。这里是我个人的看法,仅供参考:ShaderX和GPU Gems收录的都是比较前沿的技术,虽然每本之间没有连续性,但很多技术都建立在之前的方法上。有时间的话,建议从第一本看起。两本书都属于论文集,章节之间并没有太多连续性,所以不必从第一页看到最后一页,选择你感兴趣的部分即可。比如对阴影感兴趣,就只看阴影相关的章节,你可以看到整个阴影技术近10年的发展,变化,很有价值。另外,书里很多前沿,实验性的技术,由于硬件限制,通常要2,3年后才有可能普及,现在看以前的几册也不会太"过时"。 最后,这样的书内容涉及了图形学的方法面面,2d,3d,图像处理,ai,游戏构架,gpgpu等等,范围太过广泛,特别是GPU Gems相比ShaderX更偏重学术研究,很多技术最终不一定能实际应用到产品中,有些章节看不懂也属于正常现象。

 

地形:

<<Real Time 3D Terrain Engines Using C++ And DX9>>非常全面的讨论了关于地形渲染的各种技术,至少应该把第5~9章都浏览一遍。之后便可以 到virtual terrain查阅近期的地形渲染技术。

更新(2010.11.6): 经常尝试用PIX分析你电脑上的游戏,地形渲染通常是最容易分析的部分,而且可以让你马上了解目前流行的地形渲染方法。

 

模型导入和动画:

<<Advanced Animation with DirectX>>,仅此一本足以。

更新(2010.5.5):

<<Character Animation With Direct3D>>已经可以很容易的找到了, 此书介绍了目前最新的游戏动画技术,作者是xbox360大作Alan Wake的开发人员,完全可以替代上面提到的那本。

 

物理:

<<Game Physics>>和

<<Game Physics Engine Development>>都不错。

<<Real-time Collision Detection>>是碰撞检测方面最好的书。:

<<3D Game Engine Design, 2nd>>的8,9章也值得一看。

 

LOD:

<<Level of Detail for 3D Graphics>>

 

Ray tracing:

<< Physical-Based Rendering - From Theory to Implementation>> 
更新(2010.4.30): 一本免费的入门教程

Another Introduction to Ray Tracing

更新(2011.10.23): 此书已有第二版,并且有电子版。

 

引擎设计:
说实话,这方面还没有特别好的书,大概越是核心的内容,越少有人愿意写吧。

<<3D Game Engine Architecture Engineering Real-Time Applications with Wild Magic>>只有第三章值得一读。

<<3D Game Engine Programming>>可以选部分感兴趣的章节看看,不过总的来说,讲的比较浅。
更新:

<<3D Game Engine Design, Second Edition>>出了影印版本,此书是

<<3D Game Engine Architecture Engineering>>更新版,强烈推荐。
最近发现

<<Pro OGRE 3D Programming>>也很不错,200多页短小精干,但是可以让读者快速了解一个既有引擎的设计和构架。
更新(2010.7.15): 新出的

《Game Engine Architecture》非常不错,注意是Jason Gregory的版本。如果只推荐一本引擎方面的书,绝对是这本。传说有扫描电子版了。

更新(2010.6.28): 

<<Game Engine Gems>>是关于引擎设计的新系列丛书,与ShaderX类似,也是每年一本,目前已经出版了第一册,已有电子版

 

AI & Game Programming
<<Programming Game AI by Example>>非常不错,好像还有中文版,备选

<<Artificial Intelligence for Games>>(已有第二版)。当然

<<AI Programming Wisdom>>系列也是必读作品,不过目前网络上只有1~2册。
更新(2010.5.28):

<<AI Game Engine Programming>>已比较好找了,虽然说这是一本名不副实的书,并没有完全介绍一个"one for all"类型的引擎,也没有具体算法讨论,但针对各种不同类型游戏的AI设计做了详细介绍,可作为一本指参考导性书选择阅读。


网络:mai%25##&%...(本人网络白痴 +_+........)

 

综合:
<<Game Programming Gems>>系列,不过由于内容涉及的过于广泛,文章质量参差不齐,选择性阅读就可以了。历年GDC, Gamefest,Siggraph等大型会议的paper也是应该关注的。至于那些“All in one”或者n天较你写出个FPS游戏的书就不要读了,这类书的通病是什么都说了,结果什么也没说清楚。

 

除了书以外,再推荐一些不错的网络资源:

http://www.gamedev.net/ 除了大量教程以外,论坛里多年累计下来的内容保罗万象。好好利用论坛搜索,你会发不管你多厉害,那里总有一些比你强大的人在很久以前就遇到了和你同样的问题,并且给出了解决方案。
Nvidia和ATI的开发者中心
creators.xna.com  XNA官方网站
http://www.gamasutra.com/ 与GameDev类似
http://www.beyond3d.com/ 这里的除了讨论软件以外,还能看到对硬件构架的分析
http://www.gameres.com/ 国内唯一比较专业的游戏编程网站,可惜和GameDev相比就显得太寒碜了-_-#

         当然,不要忘了收集各大论坛里牛人们的blog:)

         最后,仅仅靠看书是不够的,多写多练才是王道。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 我很抱歉,但是我无法回答这个问题。首先,我是一个人工智能,我无法为你提供有关未来的信息,因为我的知识截止时间是2021年。此外,我也不知道你是哪位程序员,所以我无法为你特别定制计划。但是,我可以提供一些建议,帮助你制定计划。 1. 首先,你可以确定你的目标和愿景,确保你的计划与你的长期目标一致。 2. 然后,你可以制定具体的行动计划,帮助你实现你的目标。例如,你可以计划学习新技能,参加社区活动或者完成特定的项目。 3. 你还可以考虑设定中期和短期目标,帮助你实现你的长期目标。 4. 最后,你应该定期评估你的进展,并根据需要调整你的计划。 希望这些建议能帮助你制定一份有效的计划。如果你有其他问题,欢迎随时联系我。 ### 回答2: 程序员2023计划的编写是一个重要的过程,它需要考虑到未来几年的技术趋势、个人的职业发展目标以及行业的需求。在编写2023计划时,可以采取以下步骤: 1. 设定目标:明确自己在2023年想要达到的职业发展目标,可以是提升技术能力,担任更高级别的职位,或者开始自己的创业等等。 2. 分析趋势:了解当前和未来几年的技术趋势,例如人工智能、云计算、大数据等领域,这将有助于确定自己应该学习和掌握的技术。 3. 制定学习计划:基于个人的目标和技术趋势,制定具体的学习计划。可以列出要学习的技术、学习的时间安排以及学习的资源和方式。同时,还可以制定目标的评估方法,如参加相关的认证考试或完成项目。 4. 参与社区:积极参与技术社区,与其他程序员进行交流和学习。这不仅能够获取行业内的最新信息,还可以建立有价值的人脉关系。 5. 规划项目:在2023年的计划中,可以考虑参与一些实际的项目,这将有助于提升自己的实践能力和项目管理能力。 6. 提升软技能:作为一名程序员,除了技术能力外,还需要具备良好的沟通能力、团队合作能力以及问题解决能力等软技能。在计划中,可以列出提升这些软技能的具体计划。 7. 定期评估和调整:定期评估自己的计划执行情况,根据实际情况进行调整和修正。这样可以确保计划的有效性,并及时应对行业和个人发展的变化。 总之,程序员2023计划的编写需要综合考虑个人职业发展目标、技术趋势以及行业需求,制定合理的学习和发展计划,并及时评估和调整。这将有助于个人在未来几年取得良好的职业发展。 ### 回答3: 程序员2023计划的编写是为了规划和指导程序员在2023年的工作和发展。以下是一个可能的写作思路: 首先,程序员应该对自己的现状进行全面的评估。评估包括技术能力、工作经验、专业知识等方面。在这个评估的基础上,程序员可以确定自己在2023年的发展目标和方向。 其次,程序员应该制定具体的学习计划。技术的快速发展和演变意味着程序员必须不断学习和更新知识。程序员可以列出需要掌握的关键技术和知识点,并确定学习的时间表和方式。同时,程序员还应该注重提高解决问题和思考能力,这将有助于他们在实际项目中更好地发挥作用。 第三,程序员应该规划个人项目和实践。个人项目可以是一个小的软件开发项目,一个开源项目或者一个博客等。通过个人项目和实践,程序员可以深入了解特定领域的知识和技术,并提升自己的项目管理和协作能力。 第四,程序员应该积极参与行业交流和社区活动。参加技术会议、研讨会和社区活动可以帮助程序员与其他领域专家和同行进行沟通和交流,分享经验和互相学习。此外,还可以通过参加编程比赛和贡献开源项目等方式展示自己的技术能力和才华。 最后,程序员需要时刻关注职业发展和行业趋势。技术行业变化快速,新的技术和趋势不断涌现。因此,程序员应该保持学习的状态,密切关注新的技术和行业动态,及时调整自己的计划和目标。 综上所述,程序员2023计划的编写需要对个人现状进行评估,制定学习计划,规划个人项目和实践,积极参与交流和社区活动,并保持关注行业发展趋势。通过制定一个全面的计划程序员可以为自己在2023年的工作和发展打下良好的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值