|
|
这条路很长,因为需要知道和用到的东西太多了。. T/ l c5 n' \: D& |) C, T
( Q) ^; A/ n! z2 G学习次序/ O n/ }0 @( w! f6 B& i. l
1、首先是语言方面,这个问题没有太多的选择的余地,基本上是用C和C++;VB的也有,但是很少;C#因为微软的力挺,在游戏开发中也逐渐多了示例。了解基本语义和语法就可以下一步了。如果想C++学精通了在往下学,估计就没有机会往下学了,因为你的热情可能在这都耗费了。这个的学习是要不断重复的,想一遍学好是不可能的。
4 A; z( S+ l. i% w5 K! j7 j i v5 V2、数据结构的知识。这是基本的,而且对于算法的优化,速度的提升,在游戏开发中也是极为讲究的。教程很多,关键还是自己的思考和把握。. p" g; l \' I4 R5 r0 N
3、Visual Studio 环境的使用。这个比较简单但是却十分重要,如果连筷子都不会用,想吃面条,那是比较费劲的,呵呵。看MSDN中相关帮助部分。& {4 S4 ~: c6 V6 z% h F6 w* |
4、Win32编程。想全面就看《Windows 程序设计》就可以。网上有电子版,中英文都有,自己搜。想粗略了解就看《Windows游戏编程大师技巧》第一部分。
1 f6 y) _# S5 \+ G! e- A5、COM接口的使用。想粗略了解就看《Windows游戏编程大师技巧》第二部分。
" t9 s3 f2 l2 N- L/ q, e6、图形学。这个是理论部分的内容,我认为可以先看DirectX或者OpenGL,然后再翻回头看这个。其实我是看了DirectX之后,又看了两遍图形学,才对图形学有了切实的感觉。9 S: n1 i9 {" ?0 p
7、图形软件开发包。主要是DirectX和OpenGL。任选一个深入地学,学好之后,再学另一个,否则就会白白地浪费很多精力,因为他们相通或者相同的东西是主要的,不同的地方是次要的。
) n& `- F0 |" g0 \8、软件工程。任何一个大型软件的开发,都离不开软件工程的支持。引擎开发就是一个大的工程。所以应该对软件工程有个大概了解。2 m- N" ~/ ~& d, W! U3 r6 `2 g
9、设计模式。有不少引擎大量地应用设计模式提高软件的性能,比如Ogre。4 Z) s s6 X: N" |
其实还有,但是最主要的就是上面这些了。其他的内容,等上面这些了解了,就自然知道下一步要干什么了。
9 n4 I$ E: t2 H( K2 F4 J2 N1 r% J% ]. ?. {0 ~& ^5 ?- m
图书推荐' |) }6 S1 I1 I/ K; U/ \3 l) x" s
不要被上面的说法唬住,呵呵。如果想开始,那么按照下面的推荐书籍顺序看,应该入门比较轻松一些。这是我走过之后,发现的一个比较好的学习路径。当然我买了很多内容级别重复的书,在此就不推荐了。5 U) m A+ s/ U, z; z4 A- k3 L+ F( ]
1、概述部分:《游戏的设计与开发——梦开始的地方》(网上有中文电子版,是本了解游戏全貌的好书。)* p: Y* c$ s9 q( V0 D
2、基础部分:《Windows游戏编程大师技巧》 《精通DirectX 3D图形与动画程序设计》% m% ^2 ~1 ]& A* F
3、提高部分:《advanced animation with directx》(中文版翻译的很烂,有不少错句,假如你认真看的话,可能看不懂。如果有时间,还是看英文的好。)《DirectX 游戏开发终极指南》
! }, W0 c$ p6 a: `7 c* b F4、高端部分:《3D Game Engine Programming》(网上有电子版,但没有中文版,以后我时间充裕了可能会翻译部分章节。),然后是开源引擎分析,比如Ogre
/ E* o* y6 [9 F1 m4 E2 K2 t7 v, i7 k5、终极部分:自己开发,然后改进。
" b+ @4 w/ p) k7 z ~5 F# W5 ?$ x) f0 g& H5 |* W, X a
图形学是以数学为基础的(其实用到的数学并不难),而无数经典资料是英文的,而且没有合适的翻译,或者根本没有翻译。这就需要大家的英语要好。所以,英语数学很重要。不要小看了你的四级,过了看一些英文文章就没有什么大的障碍;不要逃避你的高数,如果深入研究,高数哪都用得到。6 Y5 S1 ^4 j0 L0 s
这是我自己的切身经验,希望对大家有用。
7 s6 U9 R W. ]( b; L* Y. a0 Q1 N2 F
) J8 P0 ?; b) v3 L! g补充内容:; u' b% J9 v4 x2 G- \
上面分析的主要是图形引擎部分,而没有涉及到其他的引擎部分,比如人工智能引擎、物理引擎、网络引擎等等部分。当上面的熟悉了之后,自然就会看过很多的资料,然后自己肯定知道下面应该怎么走,在此,我就不多说了,因为我也没有走的更深入,呵呵。: k- K2 Q# Z5 X& ]" C
6楼的bluebirddm说的网络部分,其实如果都搜索的话,还是有一些资料的,不过大多是英文的。《3D Game Engine Programming》的第12章介绍的就是。能够搜到的资料还有Developer's.Guide.To.Multiplayer.Games.pdf和Programming.Multiplayer.Games.(2004).EEn;.BM.OCR.6.0.ShareConnector.pdf。4 W! d7 q* }) s% f
, Z5 j6 X6 N, Y/ Q" Z* B7 ^1 H原创内容,版权所有。
! j0 n/ S4 n) b/ J4 \% ]* F
# R3 Q/ ]0 |9 q% `! Q7 g[ 本帖最后由 gehan 于 2009-2-13 22:57 编辑 ] |
|