与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,更是让初学者无从下手。下面总结了一些入门方法和比较容易入手的资料。
首先你要精通一门高级语言,比如C++或者C#,其次,要有良好的英文阅读能力。对游戏开发者来说英文阅读能力是最重要也是最基本的工具之一,因为你遇到的大部分资源都将是英文的,不要总等着别人为你翻译。慢慢尝试着阅读英文资料,你会发现其实也并没有那么难:)
刚开始,你要做的就是选择一门图形API,一般就是DirectX或者OpenGL之间选一个。如果考虑到跨平台,那么OpenGL是首选. 如果只在PC平台,则DX是首选。我对OpenGL并不是很了解,所以下面大部门资料都是和DX相关的。
当然,作为准备工作之一,你首先要到DirectX Develop Center下载最新版的DirectX SDK。
DirectX:《Windows DirectX Graphics Documentation》官方提供的文档,安装SDK后自带的文档,详细介绍了HLSL的语法,如何使用,如何在Visual中调试,如何编译shader,都在文档中介绍的很清楚。然后,推荐<
不要一开始就看图形学的书,这个时候你对图形编程还没有一个基本的感性认识,因此八成看的云里雾里。不要以网上的教程和论坛提问作为主要学习途径,找一本好书,系统学习,效率才最高。不要马上看SDK里的例子,很多图形学的基本原理仅仅通过读代码是不会明白的。某些年代太过久远的书就不要看了,比如 《windows游戏编程大师技巧》(总看到有人在找这本书)。有人说基本的思想总是不变的,可惜对于现代GPU来说,很多早期的技术和优化技巧早就过时 了。图形编程是发展的非常快的技术,看看GPU的发展速度,1~2年就是一代产品的革新。
好了,入门之后,是你巩固和拓展视野的阶段。现在看计算机图形学就比较合适了。吐血推荐<
如果这个时候发现你当年数学没有学好,首先推荐冯乐乐写的《Unity Shader入门精要》中的数学知识讲解,用多少学多少,通俗易懂。而且数学部分在github已经公开,不用买也可以下载,还是推荐看看,写的很好很详细。传送门:https://github.com/candycat1992/Unity_Shaders_Book
还有三本数学书是为游戏程序员量身定制的:<<3D Math Primer for Graphics and Game Development>>, <
其实入门之后,就没有固定的学习路线了,最好根据你感兴趣的方向来学习。
Shader方面:《Cg_tutorial》和《The Complete Effect and HLSL Guide》都是不错的入门材料,当然还有SDK文档。<
地形:<
模型导入和动画:<
物理:<
LOD:<
Ray tracing:<< Physical-Based Rendering - From Theory to Implementation>>
引擎设计:说实话,这方面还没有特别好的书,大概越是核心的内容,越少有人愿意写 吧。<<3D Game Engine Architecture Engineering Real-Time Applications with Wild Magic>>只有第三章值得一读。<<3D Game Engine Programming>>可以选部分感兴趣的章节看看,不过总的来说,讲的比较浅。
AI:<