如何成为一个程序员:想成为一个游戏程序员需要有以下资料



、书籍:

算法和数据结构:

数据结构(C语言版)——严蔚敏、吴伟民 清华出版社

我觉得其配套习题集甚至比原书更有价值每个较难题都值得做



Introduction to Algorithms第 2版 中文名算法导论

有关算法标准学习教材和工程参考手册在去年CSDN网站WebSite上其翻译版竟然评为年度 2十大技术畅销书同时杂志上开设了“算法擂台”栏目这些溯源固本举动不由得使人对中国现今浮躁不堪所谓“IT”业又产生了线希望这本厚厚幸亏打折我才买得起虽然厚达千页但其英文通俗晓畅内容深入浅出可见经典的作往往比般水准书还耐读还能找到MIT视频教程节课那个老教授嘻皮笑脸后面就是长发助教上课了



C语言名题精选百则 窍门技巧篇——冼镜光 机械工业出版社

作者花费年时间搜集了各种常见C极具窍门技巧性编程法其内容都是大有来头而且给出了详细参考资料个普通Fibonacci数就给出了非递归解、快速算法、扩充算法等步步深入直至几无油水可榨对于视速度如生命个普通浮点数转化为整数都另辟蹊径以减少CPU cycle游戏怎可不看?



计算机算法基础(第 2版)—— 佘祥宣等 华中科大出版社

我看到几个学校研究生拿它作教材(研究生才开算法太开玩笑了吧)这本书薄是薄了点用作者话来说倒也“精辟”其实此书是Fundamentals of Computer Algorithms缩写版不过原书出版太久了反正我是没找到



The Art of Computer ProgrammingVolume 1-3

作者Donald E. Knuth是我心目中和冯.诺依曼、DijkstraShannon并列 4位大师这本书作者从读大学本科时开始写直写到博士时十年磨足见其下足了功夫可作为计算机技术核心——算法和数据结构终极参考手册创新处也颇多譬如常见Shell排序他在书中提出可用(3i-1)/2间隔这使其稍快于O(n1. 5)当然这套书描述高度数学化为此恐怕人(我?)最好还得先看本数学预备书Concrete Mathematics(直译为混凝土数学?^^)再说可惜是这套书才出到第 3卷并没有覆盖全部常见算法内容不过好在对于游戏员来说越常见算法用得越多这也不算是什么要命损失



STL源码剖析—— 侯捷 华中科大出版社



侯捷不用介绍了华人技术作家中旗舰说其有世界级水准也不为过这本书我以为是C和数据结构葵花宝典(欲练此功必先自宫)也就是说不下几层地狱很难看懂它要求预备知识太多了STL、数据结构、泛型编程、内存管理都要很扎实(为此是不是还要看看有内存管理设计模式的称Small Memory Software这本书呢?)但是旦看懂真会是所向披靡



Data Structures for Game Programmers

每个数据结构例程都是个小游戏还用SDL库实现了个算法演示系统虽然内容失的于浅但起码让人了解了数据结构在游戏中作用



其实游戏并不比其它特殊甚至要求基本功更加扎实所以花时间做些看似和实际应用不甚相干习题对今后工作是大有裨益而且有些应用很广算法如常被人津津乐道[Page]A*算法及其变种牵涉到图检索周游和分枝-限界法恐怕还得读些艰深论文才能充分明白运用Donald E. KnuthAn analysis of alpha-beta cutoffs其实还有不少此类好书Data Structures and Algorithms in CProgramming PearlsMore Programming Pearls(算法珠玑)等我却以为要先看严谨著作再看内容随笔



汇编:

IBM-PC 汇编语言设计第 2版 

国内经典教材

The Art of Assembly Language

这本书足有1600噢!



C语言:

The C Programming Language第 2版

虽然篇幅短小但每个例程都很经典(我们老师开始拿它作教材后面换为谭小强C语言书理由为:例子尽是些文本处理我就纳了闷了难道现代计算机不是将大量时间消耗在串和文本处理上吗?)



C:

学过C语言再学C先看这本C Primer缩写版:

Essential C



C有个入门了解再看

C Common Knowledge: Essential Intermediate Programming

就不会有什么重要知识点完全不知所措了接下来是

The C Standard Library : A Tutorial and Reference

标准库当然主要是标准模板库标准学习参考手册然后最好平时边写边参悟

Effective C

我是说书名以形容词 + C那些书计有 7 8本慢慢看吧罗马不是日建成

(Essential CEffective CMore Effective CAccelerated CEffective STLExceptional CMore Exceptional CImperfect C虽然书名格式相似但每本都绝非马虎的作)



谁说CC要慢?那就请看下面:

The Design and Evolution of C

知其过去才能知其未来才能应用

Inside the C Object Model

揭露C编译器模型

Efficient C Performance Programming Techniques

当算法优化已到极致在运用汇编的前最后还可看看此书有时高级和低阶都能做成相同事情



还有两本特别书:

Modern C Design : Generic Programming and Design Patterns Applied

作者想把设计模式和泛型编程结合起来并写了个尝试提供Loki库来实作,不过其观点并未得到C社区普遍响应尽管如此本书仍称得上思想前沿性和技术实用性结合典范



C Template Metaprogramming

把编译器当作计算器?本书介绍了Boost

MPL模板元编程库当然提到Boost对于游戏员不能不提到其中GraphThe Boost Graph Library书可看还有其中Python号称国内首款商业 3维图形引擎起点引擎就用了BoostPython说实话我觉得起点引擎还是蛮不错那个自制 3维编辑器虽然界面简陋但功能还算蛮完善给游戏学院用作教学内容也不错另有个号称中国首款自主研发全套网游解决方案我看到它那个 3维编辑器心想这不就是国外个叫freeworld3D编辑器吗?虽然有点偏门但我以前还较劲尝试破解过呢还把英文界面汉化了大概用[Page]exescope这样资源修改软件Software就能搞定吧我又心想为什么要找freeworld3D这个功能并不太强大编辑器呢?仅仅是它便宜到几十美金?它唯特别地方就是支持导出OGRE图形引擎场景格式这样想不由得使人对它图形引擎“自主”性也产生怀疑了这样“自主”研发真让人汗颜只要中国还没封sourceforge这个网站WebSite(据说以前和freeBSD网站WebSite起被封过?)国人就能“自主”研发




有人还会推荐C PrimerThinking in CThe C Programming Language等书吧诚然这些书也很好但我总觉得它们太大部头了还不如多花点时间看看国外好源代码



Windows编程

Operating Concepts第 5版

国内有些操作系统教程其实就是它缩写版



Windows 95 Programming Secrets

深入剖析了Windows操作系统种种种种有人爱看Linux内核完全注释有人爱看自己动手写操作系统这样煽情但我想作为商业操作系统Windows内核剖析到这地步也高山仰止了



Programming Applications for Microsoft Windows第 4版

先进程线程再虚存管理再动态链接库最多讲到消息机制作者在序言中说:“我不讲什么ActiveX, COM等等当你了解了这些基础后那些东西很快就会明白!”可以作为Programming Windows先修课



计算机体系:

Computer s : A Programmers Perspective

The Art of Computer Programming在我心中是计算机史上两本称得上伟大计算机组成原理操作系统汇编编译原理计算机网络等等课程汇成这本千页大书计算机在作者眼中就是个整体





开源阅读:

Code Reading : The Open Source Perspective

张大千临摹了几百张明代石涛山水画出画以假乱真后来他去敦煌潜心临摹几年回来画风大变终成大家员其实有40%时间是在读别人源代码侯捷先生说:“源码面前了无秘密”又说“天下大事必作于细”可以和他上穷碧落下黄泉源码追踪经验谈参看



MFC:

深入浅出MFC

我实在以为没有看过侯捷先生深入浅出MFC人多半不会懂得MFC编程其实我是打算用年多时间写个给游戏美工用 3维编辑器顺便作为毕业设计图形库就用MFC反正也没得选择如果要用wxWidgets无非是猎奇而已还不是MFC翻版当然它跨平台了就象阻击手对自己枪械零件了如指掌要想用MFC写出非玩具定要了解其内部构造还有本书叫MFC深入浅出并不是同



IDE:

Microsoft Visual Studio 2005 Unleashed

工欲善其事必先利其器当然我认为和其用形如Source InsightSlick EditCode Visualizer的类代码阅读器、图形化工具还不如用自己大脑但如果你嫌打源代码慢可以用Visual AssistX如果嫌老是写重复相似代码可以用Code Smith单元测试可以用CppUnitBoost库中测试框架也不错有心情可以吧Visual Studio外接[Page]IntelCompiler内嵌STLport但不是大工程性能分析没必要动不动就用下VTune



员的路:

游戏的旅——我编程领悟

云风大哥在我心目中游戏员国外首推卡马克国内首推云风也许过两年我会到网易当云风大哥助理员吧Its my dream.(^-^)他写这本书时候本着只有透彻理解东西才写出来因此内容不会很酷新但是相信我每读遍都有新收获主要还不是知识上知识是学无止境授人以鱼不如授人以渔精神上启迪才是长久诚如经典游戏仙剑奇侠传主力员兼美术指导姚壮宪(人称姚仙)在序言中所说“云风得到只是些稿费而整个中国民族游戏产业得到将是次知识推动”此言不虚矣



编程高手箴言

梁肇新是豪杰超级解霸作者本来每个合格员(Programmer , 而非Coder

)都应该掌握东西现在变成了编程高手独家箴言不知是作者幸运还是中国IT悲哀知识点还是讲得蛮多不过对MFC地位颇有微词我实在认为MFC名声就是那些不懂得用它人搞臭不过作者牢骚也情有可原每个具有创造力员都应该不太喜欢framework




Masters of DOOM: How Two Guys Created an Empire and Transformed Pop Culture中文名DOOM启世录

卡马克罗洛斯这些游戏史上如雷贯耳名字(现在卡马克已专注于火箭制造上罗洛斯则携妻回乡隐居)要不是没上过大学卡马克和图形学大师亚伯拉罕功勋可能到现在游戏中还不知 3维为何物勿庸置疑在计算机界历史是英雄们所推动这本书真实记录了这些尘世英雄所为所思



作为我对这几本策划和美工书也产生了浓厚兴趣以前搞过两年3DS MAX插件编程觉得用maxscript还是好过MaxSDK毕竟游戏开发中所多是模型场景数据导入导出大可不必大动干戈



策划:

Creating Emotion in Games : The Craft and Art of Emotioneering

在壮丽煊目宏伟 3维世界背后在残酷杀戮动人心魄情节背后我们还需要什么来抓住玩家心?答对了就是emotion.真正打动人心才是深入骨髓



Ultimate Game Design : Building Game Worlds

从名字可以看出写给关卡设计师特别是讲室外自然场景构建颇有可取的处



Developing _disibledevent=>s Guide

就象名为反模式书讲软件Software团队(Team)运营这本书讲商业运作多过技术个历经艰难现在盛大游戏翻译了这本书



美工:

Digital Cinematography & Directing

数字摄影导演术每当你在3DS MAX或者Maya等 3维创作软件Software中摆放摄影机设计其运动轨迹时你可曾想过你也站在导演位置上了?



The Animators Survival Kit



看着这本讲卡通角色运动规律边产生温习猫和老鼠念头边继续对前不久新闻联播中有关中国产生了某计算机自动卡通动画生成软件Software报道蔑视这条报道称此举可大大加快中国卡通动画产量我且不从技术上探讨其是否是在放卫星(其实我知道得很清楚前文已表本人搞过两年卡通动画辅助软件Software编程)但计算机机械生成动画怎可代替人类充满灵性创作?[Page]



The Dark Side of Game Texturing

Photoshop制作材质贴图还真有些学问



3维图形学:

搞 3维图形学首先还是要扎扎实实先看解析几何、线性代数、计算几何教材后面习题个都不能少国内数学书还是蛮好苏步青大师计算几何称得上具有世界级水准可惜中国CAD宏图被盗版给击垮了现在是我们接过接力棒时候了Its time!





Computer Graphics Geometrical Tools

计算机图形学几何工具算法详解算法很多纰漏处也不少



3D Math Primer for Graphics and Game Development

浅易可作为 3维数学“速食“



Mathematics for 3D Game Programming & Computer Graphics第 2版

比上面那本深入证明推理数学气也浓可作为专业数学书和编程实战个过渡桥梁吧内容涉猎也广射线追踪光照计算可视裁剪碰撞检测多边形技术阴影算法刚体物理流体水波数值思路方法曲线曲面还真够丰富



Vector Game Math Processors

想学MMX,SSE那就看它吧不过从基础讲起要耐心哦



DirectX:

Introduction to 3D Game Programming with DirectX 9.0

DirectX入门龙书作者自己写简单举例框架后面我干脆用State

模式把所有例子绑到块儿去了




Beginning Direct3D Game Programming

作者取得律师学位后变成了游戏真是怪也哉本书虽定位为入门级书内容颇有独特可取的处它用到举例框架是DXSDK Sample Framework而不是现在通行DXUT要想编译有两种办法吧是自己改写成用DXUT 2是找旧Sample Framework我又懒得为了个举例框架下载整个早期版本DirectX后面在Nvidia SDK 9.5中发现了



Advanced Animation with DirectX

DirectX高级动画技术骨骼系统渐变关键帧动画偶人技术表情变形粒子系统布料柔体动态材质而足我常常在想从 3维创作软件Software导出种种效果变成textbinary先加密压缩打包再解包解压解密再用游戏重建Lite动画系统游戏员也真是辛苦



OpenGL:

NeHe OpenGL Tutorials

虽是网络教程不比正式书逊本来学OpenGL就不过是看百来条C文档工夫吧,如果图形学基础知识扎实



OpenGL Shading Language

OpenGL支持最新显卡技术要靠修修补补插件扩展所以还要配合

Nvidia OpenGL Extension Specications

来看为上



Focus _disibledevent=>

Focus _disibledevent=>

Focus _disibledevent=>

顾名思义 3本专论虽然都很不深但要对未知 3维模型格式作反向工程前研读Geomipmapping地形算法论文前CAD还是要看看它们为上如果没从别处得过到基础



脚本:



先看

Game Scripting Mastery

等自己了解了虚拟机构造可以设计出简单脚本解释执行系统了

再去查Python , Lua [Page]Ruby手册吧会事半半功倍倍



Programming Role Playing Games with DirectX 8.0

边教学边用DirectX写出了GameCore初具引擎稚形



Isometric Game Programming with DirectX 7.0

3维也是建立在 2维基础上这就是这本书现在还值得看原因



Visual C网络游戏建模和实现

联众员写功力很扎实讲棋牌类游戏编程特别讲了UML建模和Rotional Rose



Object-Oriented Game Development

套用某人话:“I like this book.



Shader:

要入门可先看

Shaders for Game Programmers and Artists

讲在RenderMonkey中用HLSL高级着色语言写Shader.



再看

Direct3D ShaderX : Vertex and Pixel Shander Tips and Tricks

用汇编着色语言纯银赤金



3大宝库:



Game Programming Gems

我只见到1-6据说第78本也出来了?附带源代码常有bug不过瑕不掩瑜这套世界顶级游戏员每年技术文集涉及游戏开发各个方面我觉得富有开发经验人更能在其中找到共鸣



Graphics Gems全 5本

图形学编程Bible看了这套书你会明白计算机领域科学家和工程师区别的所在科学家总是说这个东西在理论上可行工程师会说要使问题在logN时限内解决我只能忍痛割爱舍繁趋简



GPU Gems出了 2本

Nvidia公司召集图形学Gurus等到看懂我也有心情跑去Siggraph国际图形学大会上投文章碰运气



游戏引擎编程:

3D Game Engine Programming

ZFXEngine引擎设计思路阐释很平实冇太多惊喜



3D Game Engine Design

数学物理理论知识讲解较多本来这样就够了还能期待更多吗?



人工智能:

AI Techniques for Game Programming

讲遗传算法人工神经网络主要用到位图算法原型是根据作者发表到GameDev.net论坛上内容整理出来还比较切中实际



AI Game Programming Wisdom

相当于AI编程Gems



PC游戏编程(人机博弈)

以象棋为蓝本介绍了很多种搜索算法除了常见极大极小值算法及其改进

--负极大值算法还有深度优先搜索以外更提供了多种改进算法如:Alpha-Beta,Fail-soft alpha-beta,Aspiration Search, Minimal Window Search,Zobrist Hash,Iterative Deepening,History Heuristic,Killer Heuristic,SSS*,DUAL*,MFD and more.琳琅满目实属难得




反外挂:

加密和解密(第 2版) 看雪论坛站长 段钢

破解序列号和反外挂有关系么?不过世上哪两件事情的间又没有关系呢?



UML Distilled Martin Fowler

很多人直到看了这本书才真正学懂UML

Martin Fowler是真正大师,从早期分析模式,到这本UML精粹,革命性重构都是他提出,后来又写了企业模式现在领导个软件Software开发咨询公司去年JavaOne中国大会他作为专家来华了吧个人网站WebSite:MartinFowler.com[Page]



设计模式 3剑客:

Design Patterns Elements of Reusable Object-Oriented Software

Design Patterns Explained

Head First Design Patterns



重构 3板斧:

Refactoring : Improving the Design of Existing Code

Refactoring to Patterns

Refactoring Workbook



软件Software工程:

Extreme Programming Explained : Embrace Change第 2版

其中SimplicityValue真是振聋发聩这就是我什么都喜欢轻量级原因





Agile Software Development Principles,Patterns,and Practices


敏捷真是炒得够火连企业都有敏捷不过大师是不会这么advertising



Code Complete第 2版

名著



数学:

数学确定性丧失M.克莱因

原来数学也只不过是人类发明和臆造用不着供入神殿想起历史上那么多不食人间烟火科学家(多半是数学家)自以为发现了宇宙运作奥秘是时候走下神坛了



物理:

普通物理学 Physics for Game Developers

物理我想就到此为此吧再复杂我可要用Newton Engine,ODE等待物理卡PPU普及那天就可充分发挥PhysX功效了看过最新细胞分裂游戏Demo演示成千上万个Box疯狂Collide骨灰级玩家该边摸钱包边流口水了



2、开源代码:

Irrlicht

著名鬼火引擎从两年前第眼看到它这个轻量级 3维图形引擎就喜欢上了它源代码优雅高效且不故弄玄虚值得每个C并不限于图形编程者周边中也有不少轻量级东西Lightfeather扩展引擎ICEIrrlichtRPGIrrWizard.还有IrrEditIrrKlangIrrXML可用(可能是为了效率原因很多开源作者往往喜欢自己写XML解析库如以上IrrXML,即使有现成tinyXML库可用这真会让tomcat里面塞AxisAxis里面塞JUDDI弄得像俄罗斯套娃玩具Java Web Service Coder们汗颜)



OGRE

排名第开源图形引擎当然规模是很大周边也很多除了以C#写就OgreStudio ofusion嵌入3DS MAX作为WYSWYG 3维编辑器也是棒棒特别是其几个场景、地形插件值得研究以至于Pro OGRE 3D Programming书专论其使用方法搜狐天龙 8部游戏就是以其作为图形引擎当然还另外开发了引擎插块啦我早知道OGRE开发组中有个中国人谢他以前做了很多年传统软件Software编程次天龙 8部游戏图形模块出错信息中包含了串某工作目录个文件夹名即是谢英文名我据此推断谢员即是搜狐北京主程看来中国对开源事业还是有所贡献王开源哥哥努力看来不会白费!(

^-^)不过我侦测手法也有些像网站WebSite数据库爆库了非君子的所为作




RakNet

基于UDI网络库竟还支持声音传输以后和OpenVision结合起来做个视聊试试



Blender

声誉最盛开源 3维动画软件Software竟还带个游戏引擎虽然操作以快捷键驱动也就是说要背上百来个快捷键才能熟练使用但是作为从商业代码变为开源的作威胁 3维商业巨头轻骑兵历经十年锤炼代码达百万行此代码只应天上有人间哪得几回看怎可不作为长期源码参考?[Page]



风魂

2维图形库云风大哥成名的作虽然不代表其最高水平(最高水平作为商业代码保存在广州网易互动SVN里呢)但是也可以仰风采了



圣剑英雄传

2维RPG几个作者已成为成都锦天主力锦天老总从百万发家 3年时间身价过亿也是代枭雄了这份代码作为几年前学生作品也算可以了个工程讲究是 4平 8稳并不定要哪个模块多么出彩反正我是没有时间写这么个东东连个美工都找不到只能整天想着破解别人资源(^-^)



Boost

C准标准库我想更多时候可以参考学习其源代码



Yake

我遇到最好轻量级游戏框架了在以前把个工程中图形引擎从Irrlicht换成OGRE尝试中遇到了它OGRE周边工程在我看来都很庸肿没有完善文档情况下看起来和Linux内核差不多不过这个Yake引擎倒是很喜欢它以FSM有限状态机作为实时调度核心然后每个模块:物理、图形、网络、脚本、GUI、输入等等都提供个接口接口的下再提供到每种具体开源引擎接口然后再接具体引擎通过这样层层抽象此时你是接Newton Engine,ODE还是PysX都可以;是接OGRE,Crystal Space还是Irrlicht都可以;是接RakNet还是LibCurl都可以;是接PythonLua还是Ruby都可以是接CEGUI还是others是接OIS还是others(呵呵,记不起来others)都可以所以Yake本质上不是OGRE周边虽然用Neoengine人都倒向了它但是现在版本还很早特别是我认为学习研究时定要有这种抽象的抽象接口的接口东西把思维从具体绑定打开而开发时抽象要有限度就像蔡学镛在

Java夜未眠中讲面向对象用得过滥也会得OOOO(面向对象过敏强迫症)




Quake Doom系列

据说很经典卡马克这种开源黑客精神就值得赞许把商业源代码放出来走自己创新的路让别人追去吧不过QuakeUnreal引擎 3维编辑器是现在所有编辑器鼻祖看来要好好看看了



Nvidia SDK 9.X

3维图形编程大宝库这些Diret3DOpenGL举例都是用来展示其最新显卡技术硬件厂商往往对软件Software产品不甚在意源代码给你看,东西给你用去吧学完了还得买我硬件Intel编译器PhysX物理引擎大概也都是这样Havok会把它Havok物理引擎免费给别人用吗?别说试用版连个Demo都看不到所以这套SDK内容可比MS DirectX SDK里面那些入门级举例酷多了反正我是如获至宝 3月不知愁滋味不过显卡要so-soGeForce 6600有两 3个跑不过去,差强人意



3、网站WebSite:

www.CSDN.net

员大本营吧软文和“新技术秀”讨厌了点blog和社区是精华的所在



www.

基础编程学习知识的家起点



www.GameRes.com

游戏员基地文档库中还有点东西投稿接收者Seabug和圣剑英雄传主程Seabug会是同个人吗?个在成都锦天担当技术重担高手还有时间维护网站WebSite吗?我不得而知



“何苦做游戏”网站WebSite

名字很个性站长也是历尽几年前产业发展初期艰难才出此名字[Page]



www.66rpg.com

2维游戏图片资源很多站长柳柳主推RPGMaker 软件Software也可以玩玩吧但对于专业开发者来说不可当真





www.GameDev.net

论坛中有不少热心国外高手在活动



www.SourceForge.net

不用说了世界最大开源代码库入金山怎可空手而返?看到国外那些学生项目动不动就像模像样(DirectX稚形就是英国学生项目在学校还被判为不合格)



www.koders.com

源代码搜索引擎,支持正则表达式,google Lab中也有当你某种功能写不出来时,可以看下开源代码如何写,当然不过是仅供参考,开源代码未必都有产品级强度说到google,可看Google Power Tools Bible你会发现google众多产品原来也有这么多使用门道

Tags:  如何成为程序员

延伸阅读

最新评论

发表评论