游戏编程的学习路线大概是怎样的?

2014-06-28 18:41:58 +08:00
 hx1997
朋友说以后想做游戏程序员,帮问。

请大家说说游戏编程要怎样学习编程知识?(假设零基础,希望能推荐几本书)
另外,游戏编程需要哪些除编程以外的知识?(如数学三角函数这类)

Thanks!

P.S. 这个问题我 Google 过,也得到一些答案,但毕竟鱼龙混杂,还是希望听听大家的意见。
11662 次点击
所在节点    问与答
23 条回复
Mutoo
2014-06-28 18:46:19 +08:00
我收藏的一些资料
http://blog.mutoo.im/links.html
YouXia
2014-06-28 18:55:58 +08:00
首先你得说明是做端游、手游还是页游。
hx1997
2014-06-28 19:01:57 +08:00
@YouXia 应该是端游,不好意思。还有什么遗漏之处也请指出,谢谢。:-)
YouXia
2014-06-28 19:08:06 +08:00
@hx1997

端游比较难,C++,算法,图形学这三大块吧。如果想去网易游戏,腾讯这种公司,首先要考个计算机排名前十左右的学校,因为这个对学校要求比较高,比如网易多清北的。
hx1997
2014-06-28 19:18:22 +08:00
@YouXia 算法学习有没有偏重点呢? i.e. 有没有哪种算法对于游戏编程来说比较重要?
YouXia
2014-06-28 19:24:53 +08:00
@hx1997
如果学生的话,会问基础数据结构和算法相关的,但是很多智力算法题,与平常算法训练关系比较大,面试时候图形学问好多,肯定少不了。因为端游对容错率要求必须很低,一个产品几年才能出来,所以面试要求你比较聪明,并且写代码要做到bug free。

社招不知道。
acros
2014-06-28 19:31:38 +08:00
http://www.cnblogs.com/clayman/archive/2009/05/17/1459001.html
这里有篇我觉得比较契合的,讲得还比较全面了。

预备知识挺麻烦的:
高数、线性代数、物理(这个要求一般不是很高)、英语、C++、VisualStudio只要也要用熟····
chaixl
2014-06-28 20:09:11 +08:00
游戏程序员,这个太宽泛了。渲染只是游戏开发中一小部分。只不过渲染所需要的图形学是相对专业的领域,所以都会特别提一提。

实际开发中,主要可以粗略得分为游戏引擎和GamePlay两个层面,大部分还是涉及GamePlay多一点。

[程序+数据结构] 想立志成为游戏程序员,首先打好基本功,程序+数据结构,引擎层面主要是C++,GamePlay就很难讲了,脚本语言居多,不过学习什么编程语言不是关键,这种东西,一通百通的,建议学好C++,以后走遍天下都不怕,哈哈。算法方面除了教科书上的,可以了解一些游戏相关的算法,比如A*寻路算法。

[数学] 线性代数必须掌握。推荐一本书。
http://item.jd.com/10078629.html

[相关专业知识] 这个看方向,渲染、AI、物理等等

[实践]
前面一大堆,其实都很虚,最重要的是实践起来。搞起来就知道缺什么了。

前期可以做一些简单的小游戏,主要是练编程和算法,比如连连看,扫雷什么的。

然后接触一款游戏引擎! 2D方面没什么太多好推荐的,看看cocos2d吧;3D方面可以玩一玩Unity3D,比较容易上手。有兴趣的话可以接触Unreal Engine,UE4现在好便宜呀好便宜。不过像UE4这种级别的,进入游戏公司以后再玩不迟。


有以上经验后,应聘游戏公司成功的机率还是很高的。
对于实届生,实际上公司也不会有太多专业方面的要求,我招人的时候只看基本功。基本功扎实,什么都好说。
canesten
2014-06-28 22:22:43 +08:00
零编程经验+零数学经验?
想做端游几乎不可能
没公司会要这种背景的人
省省吧
xiaowangge
2014-06-28 23:27:14 +08:00
零基础学编程端游(C++),时间成本,收益上来说,不值得。

页游的话,ActionScript可以学学,算是前端。

HTML5的话,可以学学,相对来说容易。


另外,有的人也把Unit3D做出来的游戏叫端游,。

Cocoas2d-x. lua也可以尝试一下。

没必要非「端游」哈。

据说能进网易游戏部门的程序员,月薪至少3万吧,零基础的话,要很狠很狠努力才有可能(^_^)
hx1997
2014-06-29 00:00:36 +08:00
@canesten 只是一个志向而已,何必这么打击别人?更何况我们还是学生,又不是什么早就大学毕业几百年的人。
LetFoxRun
2014-06-29 00:08:12 +08:00
@hx1997
一般打击人的话说的都是真话。端游的话,基本上毕业时候拿不到offer,社招更没可能了。
比如网易游戏,腾讯游戏这种,特别是前者,清华北大这种学校概率比较高,北航北邮浙大这种级别学校能去个几个,也就几个,其他比这学校差的,基本可以洗洗睡了。
s51431980
2014-06-29 00:10:28 +08:00
@hx1997 人家说话直接了点,但却是基本是事实
hx1997
2014-06-29 00:13:29 +08:00
@LetFoxRun 真话不一定要用打击人的方式来说。再者他所说的我也不是不懂,我们只是以初学者的身份希望得到一个答案。谢谢你的提醒。
hx1997
2014-06-29 00:17:51 +08:00
@s51431980 见上,这些“现实”问题我们心中自然有数,也宁愿相信他是好言相劝但心直口快。谢谢。
LetFoxRun
2014-06-29 00:27:34 +08:00
@hx1997
恩。
其实吧,自己想做游戏开发,没必要文章说什么朋友之乐的,不丢人。
另外,你应该在读高中吧,好厉害。
hx1997
2014-06-29 00:35:15 +08:00
@LetFoxRun 嗯,在读高中。事实就是我朋友想做啊,如果是我自己想做我完全不会也没必要隐瞒的。:-)
arzusyume
2014-06-29 00:40:51 +08:00
flykite
2014-06-29 01:13:26 +08:00
端游的游戏程序员,你需要确定是要做前端,后端还是工具(比如编辑器等)。因为几者的技术路线差异可能很大。无论是哪个,对应的解决方案都很多,语言也绝不限于C++。

所以,做游戏,首先得确定一个方向。很多人入行是从GUI做起来的,其实游戏GUI,对程序员的要求也不低。你可以看一下mygui,虽然很老,但是还是有很多项目在使用。还有个基于flash的叫ScaleForm,需要花钱的,也很牛。其他还有一些,比如hikari,quickgui等。不赘述。

做前端,是否容易,具体也得看游戏内容,2D的,2.5D的,3D的。这个是考量计算机图像和图形学的东西比较多一点。相关的技术已经比较成熟了具体也有很多文档。最容易的学习方法,当然是先选一个引擎,然后跟着教程学习。入门的话,其实可以考虑用U3D,使用的是C#和JS,而且图形化界面,上手会快一些。通过这个使用,可以了解一些游戏设计当中的基本概念。这些概念,在大多数引擎当中,都是通用的。此外,适当的学习下lua/anglescript,也是很有帮助的。

做后端,是经验与知识的结合,语言的选择也是多种多样,比如c++,c#(出活快),java,erlang 等等。现在不少项目的服务端都在朝C# + mono上转,是的,使用的是linux。至于技术,也有很多,比如要熟悉UDP/TCP(网络通讯),很多项目用UDP模仿TCP。比如要做防作弊(必须得服务端来做),比如要做排名(算法)。比如要做连接优化(增加单服务器的玩家连接数量)。等等等等。

前面说了一堆,总结下来,万事开头难,选一个自己最感兴趣的方向,坚持下去,一定能够得道成仙。 ;D
flykite
2014-06-29 01:18:23 +08:00
补充一下,opengl / directx,都属于游戏101课程。其他还有很多库,比如寻路,比如物理 等等。可以多了解一些。如果只想做后端,可以无视。:D

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/120004

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX