转自http://blog.csdn.net/soilwork/archive/2009/01/08/3731645.aspx

和http://bbs.gameres.com/showthread.asp?threadid=136722

附网上搜索到的圣剑2源码http://www.hackchina.com/cont/158863

入门书籍

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

首先你要精通一门高级语言,比如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的方方面面。另外再配上<< Advanced 3D Game Programming With DirectX 9.0>> ,书名虽然是advanced,但实际上没有多少advanced级别的内容。看完这两本书,你基本上已经对DirectX比较熟悉了。如果你希望学习XNA,也是一样的,毕竟XNA是以DX为基础。

不要一开始就看图形学的书,这个时候你对图形编程还没有一个基本的感性认识,因此八成看的云里雾里。不要以网上的教程和论坛提问作为主要学习途径,找一本好书,系统学习,效率才最高。不要马上看SDK里的例子,很多图形学的基本原理仅仅通过读代码是不会明白的。某些年代太过久远的书就不要看了,比如《windows游戏编程大师技巧》(总看到有人在找这本书)。有人说基本的思想总是不变的,可惜对于现代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年才出的新书。

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

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>>

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

模型导入和动画:<<Advanced Animation with DirectX>>,仅此一本足以。

物理:<<Game Physics>>和<<Game Physics Engine Development>>都不错。<<Real-time Collision Detection>>是碰撞检测方面最好的书,可惜目前还没有电子版。

LOD:<<Level of Detail for 3D Graphics>>

Ray tracing:<< Physical-Based Rendering - From Theory to Implementation>>

引擎设计:说实话,这方面还没有特别好的书,大概越是核心的内容,越少有人愿意写吧。<<3D Game Engine Architecture Engineering Real-Time Applications with Wild Magic>>只有第三章值得一读。<<3D Game Engine Programming>>可以选部分感兴趣的章节看看,不过总的来说,讲的比较浅。更新:<<3D Game Engine Design, Second Edition>>出了影印版本,强烈推荐。最近发现<<Pro OGRE 3D Programming>>也很不错,200多页短小精干,但是可以让读者快速了解一个既有引擎的设计和构架。

AI:<<Programming Game AI by Example>>非常不错,好像还有中文版,备选<<Artificial Intelligence for Games>>。当然<<AI Programming Wisdom>>系列也是必读作品,不过目前网络上只有1~2册。

网络:%##@% ...(本人是网络白痴 +_+........)

综合:<<Game Programming Gems>>系列,不过由于内容涉及的过于广泛,文章质量参差不齐,选择性阅读就可以了。历年GDC, Gamefest t,Siggraph等大型会议的paper也是应该关注的。

至于那些“All in one”或者n天较你写出个FPS游戏的书就不要读了,这类书的通病是什么都说了,结果什么也没说清楚。

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

www.GameDev.net 除了大量教程以外,论坛里多年累计下来的内容保罗万象。好好利用论坛搜索,你会发不管你多厉害,那里总有一些比你强大的人在很久以前就遇到了和你同样的问题,并且给出了解决方案。

Nvidia和ATI的开发者中心

creators.xna.com XNA官方网站

www.gamasutra.com 与GameDev类似

www.beyond3d.com 这里的除了讨论软件以外,还能看到对硬件构架的分析

www.ziggyware.com 最好的XNA教程网站

www.gameres.com 国内唯一比较专业的游戏编程网站,可惜和GameDev相比就显得太寒碜了-_-#

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

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

五大开源游戏引擎介绍

对游戏编程初哥来说,选择一个好的游戏引擎是一个很头疼的事。市面上鱼目混杂,并且价格不菲。今天我要隆重推出开源游戏引擎五强(严格上说是四个,有一个是图像引擎)。他们不仅被证明是可靠的,而且全部开放源码。

  1. Irrlicht http://irrlicht.sourceforge.net/

  始于2003,次年即被评为最佳开源游戏引擎。官方支持C++和.Net,拓展语言绑定包含java,perl,ruby,python.跨平台支持,使用D3D,OpenGL以及自带API.

  优点:容易上手;跨平台;自带XML解析器;大的社区;

  缺点:最[来源:GameRes.com] 近开发慢下来了

  2. Panda3D http://www.panda3d.org/

  由迪斯尼开发,卡耐基-梅隆娱娱乐科技中心支持。Python是官方推荐语言。也支持C++。

  优点:有用的社区;大量功能;定期开发;

  缺点:缺乏工具支持;极差的文档;

  3. jME (爪哇猴子引擎) http://www.jmonkeyengine.com/

  全部由Java实现。最流行的Java游戏引擎之一。

  优点:容易上手;活跃的社区;内置物理引擎

  缺点:我不太知道,因为没用过

  4. OGRE http://www.ogre3d.org/

  图像引擎中最好的一个。2000年立的项。推荐使用C++语言。需要非常熟悉编程才行。初学者不宜。

  优点:大量功能;优异的文档;大规模的社区;活跃的开发

  缺点:不适合初哥;只有图像引擎

  5. Crystal Space http://www.crystalspace3d.org/main/Main_Page

  1997年发行,用C++编写的开源游戏引擎。推荐使用C++

  优点:不错的社区支持;大量功能;

  缺点:难学;

  我个人的经验是,C++初学者应从Irrlicht着手,这是最容易上手的。我没有Java编程经验,所以不好说什么。但是我认为jME还是可以踹踹的,很好的社区支持啊。

游戏编程入门书籍与开源引擎相关推荐

  1. python游戏编程入门书籍推荐-游戏编程入门书籍推荐:想要游戏编程尽快入门这些书不要错过...

    游戏编程一直都是编程之中的一大热点,这也是由于游戏本身的火热造成的结果,所以每年都有很多人在关注着游戏编程.介于此小编今天就来将一些好的游戏编程入门书籍推荐给大家,希望对想要了解和学习游戏编程的朋友能 ...

  2. quake3 android,Android 3D游戏引擎研发(基于Quake3开源引擎移植)

    摘要: 随着移动设备的性能提高和3D图形技术在移动设备领域的应用,在移动设备上研发3D游戏.3D场景将会成为一个新的亮点.3D游戏引擎是研发3D游戏.3D场景的核心技术.目前Android系统发展迅速 ...

  3. 游戏编程之十 图像引擎DirectXDraw

    视频课:[免费]跨平台APP JQuery Mobile开发-1-初探移动开发-张晨光的在线视频教程-CSDN程序员研修院 图像引擎DirectXDraw 目前win95下比较常用的图像引擎是Dire ...

  4. python游戏编程入门书籍推荐-Python游戏编程入门3

    用户输入:Bomb Catcher游戏 本章介绍使用键盘和鼠标获得用户输入.包括如下主题: 学习pygame事件 学习实时循环 学习键盘和鼠标事件 学习轮询键盘和鼠标的状态 编写Bomb Catche ...

  5. DX9绘图-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(8)

    DX9绘图 前边讲了一些绘图基础,看不懂不要紧,其实我也看不懂哦.数学基础不好的话,确实不容易看懂,但只要懂的调用,能完成想要做的工作,那就马马虎虎吧,若是深入研究的话,建议买本计算机视觉艺术,计算机 ...

  6. 为什么Cocos2D开源引擎最适合游戏创业团队?

    http://www.csdn.net/article/2012-10-09/2810603-wangzhe-cocos2d Cocos2D王哲MDCC 摘要:Cocos2D-X核心开发者王哲认为,只 ...

  7. Cocos2D开源引擎最适合游戏创业团队

    [由CSDN和创新工场联合举办的"移动开发者大会•中国2012"将于2012年10月19-20日在国家会议中心举办.移动开发者大会(MDCC)是中国最大规模的移动开发者顶级盛会,历 ...

  8. 最大的幻术-游戏开发-到底是先学游戏引擎还是先学游戏编程

        学习游戏的目的     我们学习游戏制作,游戏开发,游戏编程,游戏XX,我们的目的只有一个,打造一个非常牛逼,非常屌,非常让人开心的虚拟体验.我们用自己的学识让玩家在虚拟世界征战,生活,一步一 ...

  9. DX9贴图-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(11)

    DX9贴图 先准备2张图片,蜘蛛为m1.png,单眼怪物为m2.png 创建一个Form1.frm,输入如下源码: Private Sub Form_Load()'新手注意:游戏编程中, '通常将窗体 ...

最新文章

  1. 在Github上搭建Jekyll博客和创建主题
  2. curl head请求_CURL速查
  3. HeapAlloc与malloc的区别
  4. 干货|机器学习零基础?不要怕,吴恩达机器学习课程笔记2-多元线性回归
  5. 判断一个男人穷还是富,只看这几点!
  6. 电大计算机考试题目excel,电大计算机考试复习题EXCEL部分
  7. Jquery网页元素里面的操作以及JSON
  8. 软件定义网络(Software Defined Network )
  9. QThread: Destroyed while thread is still running的处理方法
  10. 数字IC-1.2 用CMOS管构建逻辑门电路 及 逻辑化简方法(与、或、非、与非、或非)
  11. 播布客学习视频_C学习笔记_simple
  12. 电机matlab程序计算公式,MATLAB用于电机电磁计算的计算机编程
  13. [leetcode]179 Largest Number
  14. Spring JPA 随手记
  15. c# 容联云_Rest Server Demo_开发文档_容联云通讯
  16. 黑马程序员中的简单网页制作
  17. 氧化锌@聚丙烯腈(ZnO@PAN)静电纺丝纳米纤维膜材料|金属有机框架材料ZIF-8@聚丙烯腈(ZIF-8@PAN)纳米纤维膜材料
  18. 自学网络安全,一般人我劝你放弃吧!
  19. 网络多媒体素材加工【1】
  20. 使用TensorRT加速YOLOX目标检测算法

热门文章

  1. [solved]mac maven settings.xml
  2. Codeforces Round 700 (Div. 2) B题 英雄杀怪兽
  3. javascript常用到的东西(珍藏)
  4. Chris 评论 城堡岩 第一季(这篇剧评可能有剧透)
  5. 服务器的文件的快捷方式,ftp服务器怎么保存快捷方式
  6. GBase 8d 数据库ldapsearch命令讲解和示例分析
  7. 新买的阿里云ECS基本安全运维
  8. 基于Qt平台利用UDP协议传输大文件(百度网盘免费代码)
  9. 关于如何晾干你的衣服,洗衣机品牌比你更着急
  10. [小巩u3d] Stats窗口