游戏编程所需要的知识

C的话其实比较好学,谭浩强的大学C教材基本上就可以满足需求,只要掌握指针部分C语言就可以算入门了.
接下来就是C++,国内外大部分的C++书籍我不说都看完,看个大概是有的,c++ primer,
C++之父的 c++程序设计语言,大学教材 c++程序语言设计,范磊从新手到高手:C++全方位学习
c++ primer plus,C++沉思录,不知道是我自己笨还是理解能力有问题,反正我是一本都看不懂,甚至我会了C++后现在重翻c++ primer依然看不懂。

说完全看不懂有些绝对,谭浩强C++作为入门其实也是很不错的,但那本书有2个问题,虽然描述上也容易理解,就是示例太少,不合适自学,二是内容过于简单,C++里的很多东西像模板template,浅拷贝,运算符重载都没有讲清楚,国外的书籍虽然全,但是不好理解,当然我来这里不是发闹骚的,说这个垃圾那个垃圾.
自学C++的话我只推荐一本书,完美C++,2014年7月版的,虽然我现在会C++也买了一本来看,亚马逊有卖,内容非常的全,而且没有国外书籍那种很译文的翻译.有很多其他书籍没有讲解的点,像分页编译,(就是头文件和定义文件分散开来的做法),STL标准模板库(很重要的部分,可以说没有这个东西又不懂数据结构的话什么游戏都做不出来),链表,
流和文件I/O操作 (文件读取,输入输出)等等。
 
C/C++学完后,就该是数据结构了,因为数据结构的语言无关性,这方面的书籍很多,资料多,选择余地大,这里我推荐2个参考网站
传智播客的技术网站(不知道为什么弄这个那么丑的头像,以前都不是这样的)
虽然注释很少,也没有原理,但却是我在网上唯一能找到的数据结构C++实现的站点(
我看过的所有书籍都是C/JAVA实现,C++实现的可以说没有)
在了解原理后建议参考他们的代码自己实现一遍
http://blog.csdn.net/column/details/vcpp2012algorithm.html?&page=2


小甲鱼编程学习网
http://blog.fishc.com/category/structure
对初学者非常友好的网站,这个网站的所有内容都可以值得一看
他的C++部分讲不太好,但是C语言,数据结构,WINDOUS编程要重点学习
(数据结构我推荐多看资料,国内外的都可以,甚至算法导论,一下学会是不可能的,但至少了解原理对编程思维大有裨益)。
 
在学习方法上我只建议一点,因为编程里的东西很多,不可能全都记住,也不可能全都理解,有些东西你不是一下或者1,2个星期就能理解的,(比如搜索树,三维渲染流水管线),学不会不是智力有问题,很多自学者就是因为一个点卡住,然后C++好难,数据结构好难,卡了几个星期不会,然后觉得自己不适合编程就放弃了.Bjarne Stroupstrup在他书里有句话,大意是这样的 不要着急,所有细节都会随着时间逐渐明朗起来.我的理解就是不要淤泥于某些比较难的部分,如果学不会,请你跳过它,一个阶段后再来看就会简单一些,如果还是不能掌握,请重复以上步骤,这也是很多大师级编程书籍的建议.
 
接下来就是WINDOS编程,也叫WIN32编程,32指的是WINDOWS操作系统的32位环境,不要纠结于32这个数字,掌握32位也就会了64位的WIN7,甚至以后有128位也是换汤不换药.
WIN32里面东西非常的多,但是不用在各种API,框架,原理上浪费太多时间,只需要简单的创建窗口,使用GDI(简单来说就是画点画线贴图),处理键盘鼠标输入就可以了;如果你能成功学到这里,那你最快也用了2~3个月的时间,但我还是很遗憾的告诉你,你还是做不出一个游戏;
但是离你的第一款WINDOWS游戏也很近了,接下来请看这本书 Windows游戏程序设计基础
亚马逊搜索,这本书废话很少的快速教你如何制作一个雷电弹幕游戏,(很实用,但是他的代码有些问题,如果此贴看的人多的话我可以修复一下然后上传上来)

第二个是毛星云的CSDN博客,他的游戏编程文章在CSDN上非常的火,
不知道能不能发链接试一下( http://blog.csdn.net/zhmxy555/article/list/2)
他的书前一半讲了WIN32下的GDI制作2维游戏(先看这部分)
后面讲了D3D下的 DX9编程,除了没有骨骼动画也是非常好的一本书
 
这3步中间其实有个断层,就是你会了数据结构,会C++,WIN32,但是没有游戏编程逻辑的训练,好像连个贪吃蛇,连连看也做不出来,也找不到合适的书解决这个问题,这一步我打算在贴里进行详细的代码教学.游戏逻辑,循环,输入输出,其实只要你能独立做个10个小游戏基本上就算了解游戏的实际原理,即使在3D游戏里也是这样

首先是编译工具,WINDOWS下肯定是微软的东西支持度最好
网上下个 Visual Studio,2005,2008,2010版本都可以,其实也差不多,重点是下个visual assist_x 代码自动补全插件 VC6.0就不要用了(曾经的经典编译工具),对C++新功能支持不好
如果你在上面几步熬过来了,会做一些小游戏,并且在这里循环1~2个月,那么你已经了解了2D游戏开发的大概主线,接下来可以了解下3D的原理了
这里我不建议上来就是U3D,DX,游戏引擎什么的,如果你想做一个真正的游戏程序员,而不是API调用员或者CTRL_Z-CTRL_V熟练工,一定要掌握3维实现原理,这里具体的叫法是三维渲染流水管线,DX或者OPENGL就是根据这个原理写的渲染代码,而PC上的商用引擎,不管有多吊,寒霜,虚幻,cryengine,其实也是用的DX图形库(可以理解为使用DX显示游戏里的画面),这里不是我吹牛,掌握原理再去上手U3D也是分分种的问题

这一步需要不少的数学方面的准备工作,我先给一个目录
三角学
直角三角形
反三角函数
向量
向量长度
归一化(单位向量)
向量和标量的乘法
点积 (向量点乘)
叉积 (向量叉乘)
矩阵以及立体几何 投影变换


然后再学习<<计算机图形学>>
http://baike.baidu.com/link?url=q7yDorqAKCFcGUxJ2xRa73lK_zKLgGp2TBgYXMBFT9wc36K1GhBgxQ4XUEHg-CV-9Asl0XJ85RxpiVwD02Sjq_
其他书也可以,一定要有3D部分的
3D计算机图形学
http://baike.baidu.com/link?url=gLYfFWHk2S9OyNlKOF9jqZbzAFjfE1ZnRdDnwMRXhvdNwvKmUht8aP8AlHEvVM1aVJzpoz7BlwU2THWOWF1Ruq
游戏编程数学和物理基础
http://baike.baidu.com/link?url=txdOpTQ3v6kh6_FiALoN0e-eKA8Egph9DiBOEnX24UxLGNeYDMnBlxKQ_eqJZXCkD64I_tK-rPEzWZEwdVhdmq

3D计算机图形学完了,还是不会做一个3维游戏,大学书籍都有个问题就是原理方面很深很广,但就是没有几句代码,UV贴图不会吧,光照不会吧,模型绘制不会吧,这方面的实现如果用CPU而不是DX调用显卡的话叫软件渲染; 游戏编程所需要的知识_第1张图片



这里网上的资料非常少,甚至你百度软渲染连5个有效链接都没有
幸运的是中文里面只有一本书有详细的讲解,<3D游戏编程大师技巧>,包括了具体C++代码,这是从计算机图形理论部分到实际游戏中应用的实现.以前不懂的时候还记得有人说这本书过时了,太老了.这里我提一下,如果你能真正掌握这本书原理,DX对你来说就是秒懂

你这阶段已经已经可以自学任何内容了,看懂3D游戏编程大师技巧里面的原理,然后看DX红龙书,或者Direct3D游戏编程入门教程这种,OPENGL学习虽然要简单一些,但是现在在游戏应用上已经落后于DX,不做手机游戏的话还是学习DX比较好 图形引擎说实话我没接触过,没资格发言,给你我朋友的建议吧,学OGRE,资料比较多



 





 






 

你可能感兴趣的:(c)