给自学者的建议:想学游戏编程开发,你需要做什么?

声明:只是个人见解!!!


PS 2013/03/11 17:02 Yellow Lee早上在百度游戏开发贴吧,看到里面好多人很迷惘,加入置

顶的群,聊了一下,发现迷惘的人更多,做点事吧,憋着一口气写了5个小时,到最后自

己都晕了,有空再整理整理!!第四第五阶段写到大脑空白了,有空再补补, 只是个人见解!

有兴趣的加入Q群:75732006 ,指导讨论!


有空看到我就回


在贴吧上看到很多人想做游戏,想进入游戏行业做程序开发,很迷惘,不知怎么办, 到底需
要做些什么?我自己从事游戏开发多年,之前也做过程序的培训,找回以前自己的写过的
一篇文章,结合,自己的经验实践,给大家一些方向的指导吧
首先:你要做好2点思想准备:1,真心喜欢游戏2,路漫漫其修远兮,吾将上下而求索
然后:一般从零开始 要经历一下四个阶段


第一阶段:学习和计算机沟通的言语 —— C++语言或其他语言
    
程序是什么?要回答这个问题要从各个方面进行剖析,在计算领域中,程序
(program)是指为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合
,这个是百度抄的概念,太复杂了,其实程序就是你和计算机沟通的一些命令的集合,
也就是你到底要计算机做什么事情的内容的集合。而写程序就是写一段话,让计算机按
照你的这段话为你做事,这段话就是程序。只是这段话不是用中文来写,也不是用英语

来写,而是用计算机语言来写而已。编写程序就是和计算机进行沟通,而沟通最常用的途径就是语言,

就像我们平时和别人沟通一样,只是现在你是和计算机进行沟通,其实你想想和计算机沟通比和别人沟通来

得更容易,和别人沟通别人可能不理你,恨你,就是不喜欢你等,但计算机不会,只会
按你的要求做事,除非你忽悠它。计算机语言有很多中,如C/C++, Objc-C, Java, AS3
,汇编语言,php,asp等,就像我们平时语言也有多种。当你掌握了这样的一种语言,
那么你就能和计算机在不同的领域进行沟通。 而C++语言是目前来说较为强大的语言之
一,而重要的是现在很多游戏的底层都是用C++语言写的。而同时你要熟悉一种编程开发
工具,编程工具就是你向计算机沟通的一种工具,就向平时我们说话用的嘴巴,开发工
具让我们和计算机的沟通更加方便,就像平时你和远方的朋友聊天,你可以用QQ,MSN,
甚至Email等方式,但目的只有一个,就是沟通,让计算机为你办事。


第二阶段:熟练掌握数据结构及各种常用的算法 – 灵活使用语言        
单单会语言还不够的,就像我们平时你不是会说话就能和别人很好的沟通,你要
懂得沟通的方式和技巧。数据就是计算机内存放记录的内容,你可以认为是我们平时说
的词,数据结构就是数据与数据间的关系,你可以认为就是我们平时放话的词与词之间
的关系,而常用算法就是对数据处理的方法,其实就是我们习惯性会把这些词怎么放,不
同的放法可能会形成不同的意思。你能够用词准备(数据定义得当),说话灵活(算法多样
),那你就容易让别人理解和沟通,反过来你说话用词不当,颠三倒四,别人就很难理解
你。针对程序来说,你对数据理解,定义,操作熟悉,对算法多样,高效,那么程序就
会简洁,运行效率高,这就是为什么要熟练掌握数据结构和常用算法的原因。其实算法
就是解决问题的方法,解决一个问题,方法有很多,有些常用的方法是前人经验得来的
,我们就要学习。


第三阶段:找一个平台,发挥你的语言能力—— Win,Android,IOS
目前程序应用的范围广,平台很多,就针对游戏程序目前常见的就有
Win,Android,IOS等,平台就相当于语言使用的地域,你会普通话在中国很吃香,沟通
没无难题,但你去到美国,那就有难度了,就是你是普通话专家都郁闷。不同的平台对
语言及程序架构的要求不一样,因此你要挑一个平台时更好的使用你的语言


第四阶段:开发游戏Dome – 实践你的技术   
如果你前三个阶段都过了 剩下的就是开发游戏Dome,从游戏的logo开始,菜单,到场
景,当主角,到NPC,到主角与NPC的交互,到主角与场景的交互等,一步一步写,在不断的
开发中积累经验与程序框架。用得越多越熟练。


针对不同的热门平台的游戏开发,到底要学习那些内容,自己主要是用windows游戏开发
的,重点说说windows游戏开发大致要学习的
1, 语言:C/C++,编程工具:VS(不是VS对战平台,是Virtual Studio.Net)
a) 数据:
字符 – 语言的符号,不同语言有不同的字符,如英文的abc,中文的汉字等
标识符 – 字符组合而成,标示不同东西,如杯子,就有“杯”和“子”字组成标示一
样物品
数据类型 – 数据的分类:整型(整数),浮点型(小数),布尔型(真假),字符串(
词,句子),相当于词的分类
常量变量 – 量就是标示多少,大小的数,存放数据的方法,在内存中开指定大小空间
和规定数据存放方式,规定是否可以被改写
数组 – 多个量怎么开
指针 – 量在内存中开空间后的地址位置
结构体 – 构建新的数据类型,属于自己的数据类型
枚举 – 列举同类中的不同项


b) 操作:
表达式 – 常量变量+运算符 让数据计算起来
语句 – 表达式+语句逻辑定义符号,让数据按一定逻辑计算起来
函数 – 把很多语句做某件事的语句合在一起,然后起个名字,往后通过这个名字,表
示让计算机做那些语句的事情,如两脚跟靠拢并齐,两腿挺直,小腹微收,上体正直,
两肩要平,两臂自然下垂,头要正,颈要直,口要闭,下颌微收,两眼向前平视,这些
动作合起来我们叫立正,而且你要别人做这些动作时,就说立正就行了,这就是函数.


a + b: 把数据和操作合在一起,就是类,面向对象的程序-OOP,面向对象程序设计非常
重要,它把写程序和我们平时认识事物统一了,举个例子:有没有想过自己是如何开始
认识事物的?? 但你看到一个杯子时,为什么说这个是一个杯子,不是一台手机。很多年前
,某人告诉过你,这个中间空的,周围抱着陶瓷的东西,用来做水的,叫杯子。这个时候在你
的大脑里面你把中间空的,周围包着东西的,作用是装东西的,这样的概念放大脑里,形成
杯子的概念,往后你再看到这样的东西,就知道叫杯子,而不是手机,因为手机又另外的样
子和作用,往后可能会弄错了把桶叫杯子,从而你有认识了桶,对杯子的概念也进一步加深
,从而认识了千千万万的杯子。面向对象就是这样子,把数据和作用,分别用语言描述(
数据+函数),从而形成了这类东西-类,再用这个类实例化成一个个对象。从“杯子”
抽出“杯子”的概念-》杯类-》再实例化一个个杯,恭喜你,从而认识了杯子了,其他
的物体一样(女人除外,这东西无概念,作用众多,比较难认识)。如NPC可以有数据(
血量,魔法值,位置,样子等),行为(行走,奔跑,攻击等)组成NPC这类,让就可以
用这个NPC类实例化出很多NPC个体。


2, 数据结构和算法
a) 数据结构:数据与数据的关系
零散数据 – 单个常量或变量
线性数据 – 把很多数据排成一条线,方便管理,是我们最常用的管理大量数据的方法
,有链表,队列,栈等
树型数据 – 有一个根,然后分支,有二叉树,堆等
图状数据 – 数据间管理复杂,有完全有向图,完全无向图,Hash等


b) 算法:对数据操作的常用方法:添加,访问(遍历,比较,查找),删除等,算法是一个
很广泛的内容,不是三两句能说明白的,如一堆人中,找到最高的,那就有找最高的方
法:如你已经记录每个人身高,那看一下数据就知道,如把大家叫在一起,一对比看就
知道,这就是算法。


c) STL 标准模板库,常用数据结构和算法的类库:容器,迭代器和泛型算法


3,windows平台
a) windows程序原理 – 窗口,消息,相应等
b) Win32Api – API(应用程序接口),说白了就是实现某一功能的函数名,使用这
些函数就相当于我们日常中的专用词,用2~4个字就表示复杂的一样
c) GDI,GDI+  - win API中关于2D画面绘画的API
d) 其他关于2D图像操作的API,捕获用户输入的API,播放声音的API


4, 2D游戏开发  
2D图形学基础(坐标,向量,点,现,面的数据描述),2D图像渲染读取渲染, 2D图像处理
基础算法(淡入渐隐,高斯平滑等),游戏的基本组成和架构 
3D游戏开发
a) 3D图形学基础(坐标,空间,T&L,向量,矩阵,四元数,点线面体)
b) DirextX或OpenGL
c) 游戏的基本组成和架构 这方面和2D很像,其实游戏3D和2D只是渲染方式不同
,其他的都差不多


5 游戏引擎使用,Unity3D,Orge,UDK等,某一个你用“牛”,在高薪绝对没问
题。


Android游戏开发
1) java语言+ Eclipse (最好还要会C,如果用NDK开发)
2) 数据结构和算法 (一样的跑不掉)
3) Android SDK
4) 游戏的组成和架构,


IOS游戏开发
1) Objective-C语言+ XCode 
2) 数据结构和算法 (一样的跑不掉)
3) IOS SDK
4) 游戏的组成和架构,


以上这些只是基础,让你入门,开发小游戏或游戏模块没问题,当要进一步,是那句老
话:路漫漫其修远兮!
有人说 哇 要学那么多东西啊 要不要好几年啊,如果全部精通是,但如果只是入门,我只能说就得看你用心的程度,有些人一辈子都学不会但如果你用心,够努力,而有人带,9个月左右差不多了,如果你特别聪明而又有程序感
觉,那么可能6个月就够了,如果你是天才,那恭喜你,你明天就会了!


1,C++ 45天 先不用太深入,够用就好,就像你以前学语文,也不用要你学成一
个语言专家啊
2,数据结构+算法 45天 这东西比较难懂和花时间
3,Windows  30天 主要学会怎样组织程序和怎样查相应的api 懂英文最好 不行就百度
4,2D游戏开发 45天 开发基本的可以
5,3D游戏开发 75天 看你的3D立体感能力,有些人立体感很差,空间转换转不过来.6, 引擎:30 天 基本会用,要用高级的功能没半年不好说


如果你只是有兴趣,那你可以只攻第1,第2和第5阶段,时间会更短。


想学学习 顺便把书也推荐了C++ —— 不用问 肯定是谭浩强 《 C++面向对象程序设计》 清华大学出版社 国内大
学标准教程 十多年来都是他,目前听说口碑不怎样,呵呵,但胜在符合国人的习惯, 如
果想再深入些就《C++ prime》《effective C++》等 最好是买本书,不要用电子版, 还
有视频 推荐《孙鑫Vc++视频教程》等, 一步一把教你写,除此外肯定还有最强大的
msdn和国内的csdn社区 windows ——《Windows 程序设计》第5版上、下册 北京大学出版社,忘了大学时学那
本了 那位记得告诉我
2D真没想到那本书
3D: DirectX 3D游戏编程实用教程 郑阿奇 电子工业出版社 (2011-02出版) 这本还行
其实程序有了理论更多的还要多写多练针对C++ 那就在学了理论后,在vs上通过控制台程序,干掉C++经典100题而针对windows那你就想想你现在想弄一个怎样的程序可以方便你日常的工作和生活——记事本,记账器,计算器,人品计算器等对于做游戏,你平时喜欢那个,对着做
写到后面,我自己都晕了,有空再整理一下吧,想想自己以前学习历程,真的很累!

你可能感兴趣的:(给自学者的建议:想学游戏编程开发,你需要做什么?)