哪里学游戏程序最可靠性监视程序?能给我介绍下好的游戏程...

怎样系统学习游戏编程?
大二计算机学生,感觉C学得比较扎实, C++刚刚学习不久都是在Linux下学习的。对游戏编程比较感兴趣, 不过google到的都说的很不清楚,求指导, 谢谢
虽然不好意思,还是想推荐你读一读
。基本上这是一个游戏行业老手兼职教大学生游戏开发课程所写的一本书。你可以系统地学习到游戏开发所涉及的大部分范畴技术概略。这个回答有广告之嫌,但我衷心希望更多人能投入业界。
我觉得任何成系统的东西,肯定都复杂到至少需要一本书才能讲得完。那么介绍几本书吧。1 这本介绍得比较全,我当年看的时候觉得还不错。2 云风的自传性作品,写了对各种技术的感悟。3 翻译得烂爆了,但是什么都提了一下。这些书基本上都过时了,但是读一读还是对你的疑问有帮助的。所谓系统学习,无非就是把这些点都过一遍。广是一方面,深度也很重要。可以从这些点中选择一个自己感兴趣的方向深入探究。英文很重要,英文资料多如牛毛。你既然在Linux下,就保持好。Linux是个十分适合程序员的平台。Linux下,有SDL(libsdl),OpenGL可以用于游戏编程。
正如签名,手游、页游。服务器、客户端开发都从事过。担任过服务端主程、客户端主程、项目负责人。所以从个人经验详细说下,希望能求同存异。游戏编程主要分 服务端、客户端 两部分服务端编程:初:选择一门语言来编写游戏逻辑,就我从事的手游、页游,java和C++需求数量不相上下,某些公司还会用erlang或者lua来配合C++,用python配合java。读语法书即可中:在能熟练使用一门语法来编写逻辑以后,学习数据库(mysql+mongdb是最常用的两种数据库)、tcp/ip协议、并发编程、后台的编写。高:优化代码、学习使用压测工具测试性能,并改善性能。操作系统得了解下。客户端编程:初:学习引擎,coccos2d U3D AS3等。包括GUI、游戏逻辑、AI、网络通信中:了解引擎的图形渲染的原理,用性能分析器来优化项目(CPU/GPU/内存等等方面)高:学习Opengl(手游),DX(页游)、了解GPU/CPU指令、shader编程什么的、汇编其实最重要的是基于项目开发来有目标的学习。一般来说,无论最开始写java还是C#还是python之类,走得深入一点,都要学习C++。
主要是要动手。建议是C++学一下,不用学的很深入,然后数据结构看一下,看到树就可以了,树和图可以留到以后看,之前的链表堆栈队列都看掉,争取自己写出来。然后学下SDL,这个包很容易学,看网上的教程几天就学会了,然后接下来就是从最傻逼的游戏开始写。我的过程是贪吃蛇--&乒乓--&打砖块,现在忙了没写下去了,都快忘记了,之后规划的路径是Galaxia--&***抓小偷--&简单的2d scroll游戏--&简单的2d rpg引擎,最终目标是看懂博德之门的那个开源引擎,自己写2d RPG,因为我对三维的兴趣不大所以就不准备学。其实这里头都是有学习点的:贪吃蛇是练手,顺便学习简单的动画;乒乓是学最简单的碰撞检测+物理;打砖块是学稍微精细一点的碰撞检测+第一个商业游戏(这玩意写得好的确可以卖,但是我们的目的就是练手);Galaxia是学习简单的AI和Sprite表,这是第一个Sprite数量比较大的游戏;***抓小偷是学习更复杂一点的AI,和简单的关卡编辑器;2d scroll游戏就是学习scroll的;简单的2d rpg引擎,这里我的规划是类似创世纪3这样的引擎就足够了,这里能学到的东西就很多了,但是最主要的是,这是第一次我要做一个完整的游戏引擎,以及所有的工具,包括更复杂的关卡编辑器、试验一下简单的脚本(物品掉落,比如说)。推荐几个链接,我觉得完全足够了。 (SDL + C++的教程,作者连怎么配置环境都手把手的交给我们了,每天学个两节很快就下来了,等学完了基本上我上头那个列表也写完了) (同样是SDL+C++的教程,但是这里头有好几个游戏的源代码,开始写游戏的话,C++学好了,然后写一个月游戏应该就能看懂这里所有的源代码了,好处是他上来就告诉你游戏引擎要有怎么样的架构)最后看下entity driven engine的知识吧,如果你要写比较复杂的游戏的话。当然如果要写3d的话要看的就更多了,我的建议其实也很简单,就是比照着游戏发展史来,比如说你可以先上Wolf3d这样的游戏,当然不是比照它的源代码,而是实现类似的功能。C++的教程就不给了,其实随便挑本英文经典的教程,不用看完,看到面向对象,知道继承大概是个什么样子,就成了。细节部分慢慢追究,总体来说我觉得每天花五六个小时(真心不多,写程序很容易沉浸在里头的,五六个小时是为了保证生活质量,我去年夏天自学的时候往往一天十个小时)看一个月绝对就看完了,然后看数据结构。为什么看数据结构呢,因为第一这是游戏编程里头很重要的一部分,数据结构设计的不好将来你会呵呵呵的,第二,你之前学C++恐怕没写过什么正经的代码,学数据结构可以大量的练习算法,而且最主要的,熟悉常用的数据结构。我觉得学到树就够了,最多把树学完就足够了,这也就是一个月的时间最多了。最后要注意,从一开始就要写比较专业的代码,这个你去网上搜索下就好了,包括一些书上可能不会说到的东西,比如说最新版C++里头我记得有智能指针。我C++其实都是自学的,所以也不知道是不是有什么库要学,蛮多流行的库但是我不知道游戏编程是否要用到,你还是去问下比较好。接下来就是大量的写游戏。写游戏要注意了,从一开始就要搞明白引擎的构架,否则将来要吃亏。我上头给的两个网站都是挺好的,教给你简单的架构,但是最好找个业内的人问一下,因为内容有些老了,而且如果你志在三维游戏的话,一开始有人推荐的那本游戏引擎架构我觉得蛮好的,虽然我看不懂但是翻了下觉得看完应该足够了。然后就没啥了吧,反正就是慢慢写,也别着急。如果有机会去业内肯定要去的,因为能学到很多。但是怎么说呢,如果你和我一样不想写大型的三维游戏(二维角色扮演游戏其实也很大型,不过相对三维来说还是容易点),那么靠网上问人也差不多了。但是有机会进去肯定要去一下的,还能赚钱。如果去不了公司,就多看看源代码,网上实在是太多了,看看行家是怎么写的,同一个游戏同一个功能他为什么这么写,想不明白直接发信嘛,搞IT的人一般都挺热心的。
其实游戏编程跟一般的编程没什么两样,只是游戏编程的逻辑往往要复杂(其实很多软件编程都很复杂啦),如果再高级点的话就是学OPENGL。游戏引擎的脚本语言一般都支持C#语言,flash游戏就AS3(其实AS2,貌似AS3要买什么版权之类的东西),手机游戏就J***A(其实和android差不多)
可以先试着用开源引擎来写小的Demo,注意学习里面的Sample。例如Orge和Irrlicht。下一步探索引擎的实现原理。这一步需要很多知识:图形学、架构,等等。当然,两步可以并行。
Flash,Unity都是简单又很实用的东西了。个人感觉Opengl,DX什么的太难了对于上手来说。
我曾经问过类似的问题, 老师给了我很好的建议。
首先:你要做好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 )a) 数据:字符 - 语言的符号,不同语言有不同的字符,如英文的abc,中文的汉字等标识符 - 字符组合而成,标示不同东西,如杯子,就有“杯”和“子”字组成标示一样物品数据类型 - 数据的分类:整型(整数),浮点型(小数),布尔型(真假),字符串(词,句子),相当于词的分类常量变量 - 量就是标示多少,大小的数,存放数据的方法,在内存中开指定大小空间和规定数据存放方式,规定是否可以被改写数组 - 多个量怎么开指针 - 量在内存中开空间后的地址位置结构体 - 构建新的数据类型,属于自己的数据类型枚举 - 列举同类中的不同项b)操作:表达式 - 常量变量+运算符 让数据计算起来语句 - 表达式+语句逻辑定义符号,让数据按一定逻辑计算起来函数 - 把很多语句做某件事的语句合在一起,然后起个名字,往后通过这个名字,表示让计算机做那些语句的事情,如两脚跟靠拢并齐,两腿挺直,小腹微收,上体正直,两肩要平,两臂自然下垂,头要正,颈要直,口要闭,下颌微收,两眼向前平视,这些动作合起来我们叫立正,而且你要别人做这些动作时,就说立正就行了,这就是函数.c)类a + b: 把数据和操作合在一起,就是类,面向对象的程序-OOP,面向对象程序设计非常重要,它把写程序和我们平时认识事物统一了,举个例子:有没有想过自己是如何开始认识事物的?? 但你看到一个杯子时,为什么说这个是一个杯子,不是一台手机。很多年前,某人告诉过你,这个中间空的,周围抱着陶瓷的东西,用来做水的,叫杯子。这个时候在你的大脑里面你把中间空的,周围包着东西的,作用是装东西的,这样的概念放大脑里,形成杯子的概念,往后你再看到这样的东西,就知道叫杯子,而不是手机,因为手机又另外的样子和作用,往后可能会弄错了把桶叫杯子,从而你有认识了桶,对杯子的概念也进一步加深,从而认识了千千万万的杯子。面向对象就是这样子,把数据和作用,分别用语言描述(数据+函数),从而形成了这类东西-类,再用这个类实例化成一个个对象。从“杯子”抽出“杯子”的概念-》杯类-》再实例化一个个杯,恭喜你,从而认识了杯子了,其他的物体一样(女人除外,这东西无概念,作用众多,比较难认识)。如NPC可以有数据(血量,魔法值,位置,样子等),行为(行走,奔跑,攻击等)组成NPC这类,让就可以用这个NPC类实例化出很多NPC个体。2, 数据结构和算法a) 数据结构:数据与数据的关系零散数据 - 单个常量或变量线性数据 - 把很多数据排成一条线,方便管理,是我们最常用的管理大量数据的方法,有链表,队列,栈等树型数据 - 有一个根,然后分支,有二叉树,堆等图状数据 - 数据间管理复杂,有完全有向图,完全无向图,Hash等b) 算法:对数据操作的常用方法:添加,访问(遍历,比较,查找),删除等,算法是一个很广泛的内容,不是三两句能说明白的,如一堆人中,找到最高的,那就有找最高的方法:如你已经记录每个人身高,那看一下数据就知道,如把大家叫在一起,一对比看就知道,这就是算法。c)STL 标准模板库,常用数据结构和算法的类库:容器,迭代器和泛型算法3,windows平台a)windows程序原理 - 窗口,消息,相应等b)Win32Api - API(应用程序接口),说白了就是实现某一功能的函数名,使用这些函数就相当于我们日常中的专用词,用2~4个字就表示复杂的一样
坚持!!!
已有帐号?
无法登录?
社交帐号登录游戏程序设计3_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
游戏程序设计3
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

参考资料

 

随机推荐