为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 如何学好游戏编程-阿哲

如何学好游戏编程-阿哲

2010-08-19 39页 pdf 1MB 38阅读

用户头像

is_534905

暂无简介

举报
如何学好游戏编程-阿哲 游戏编程引导——HUNK收藏 如何学好游戏编程 1 游戏编程引导——HUNK收藏 目录 自序 ............................................................................................................................................. - 1 - 1.前言 ...................................................
如何学好游戏编程-阿哲
游戏编程引导——HUNK收藏 如何学好游戏编程 1 游戏编程引导——HUNK收藏 目录 自序 ............................................................................................................................................. - 1 - 1.前言 .......................................................................................................................................... - 2 - 1.1游戏编程,你真的爱她吗?........................................................................................ - 3 - 1.2你有毅力爱她爱到底吗?............................................................................................ - 4 - 1.3爱她请从游戏开始........................................................................................................ - 4 - 2.游戏编程,你真的了解她吗?............................................................................................... - 5 - 3.游戏编程所需要的基础知识................................................................................................... - 9 - 3.1 ............................................................................................................................. - 10 - 3.1.1高等数学——微积分理论............................................................................... - 10 - 3.1.2线性代数和空间解析几何............................................................................... - 10 - 3.1.3四元数............................................................................................................... - 10 - 3.2语言.............................................................................................................................. - 11 - 3.2.1 其他语言为什么不是当今流行的编写游戏程序语言 .................................. - 11 - 3.2.2 C和C++应该选择那一个? ............................................................................. - 11 - 3.3.3 汇编,很重要吗?.......................................................................................... - 11 - 3.3.4 其他CPU硬件指令 .......................................................................................... - 12 - 3.3.5 ASM SHADER语言和高级SHADE语言 ........................................................ - 13 - 4 游戏编程,她的大门已经为你打开.................................................................................... - 14 - 4.1.颜色之迷...................................................................................................................... - 14 - 4.1.1 象素和屏幕显示点.......................................................................................... - 14 - 4.1.2 颜色组成和模式.............................................................................................. - 14 - 4.1.3 颜色的运算...................................................................................................... - 16 - 4.1.3.1颜色加法........................................................................................................ - 16 - 4.1.3.2颜色乘法........................................................................................................ - 16 - 4.2 Directx/OpenGL到底用来干什么?........................................................................... - 17 - 4.3游戏编程中的常用术语.............................................................................................. - 17 - 5.游戏编程中的 2D游戏,你首先要做到的。 ....................................................................... - 18 - 6.游戏编程中的 3D游戏,考验你耐力和勇气的时候到了! ............................................... - 19 - 7.3D引擎编程,令你的挑战达到了极限 ................................................................................ - 23 - 8.我的游戏编程学习生涯......................................................................................................... - 25 - 9.游戏编程经典籍................................................................................................................. - 27 - 9.1 游戏基础篇................................................................................................................. - 27 - 9.2 2D游戏经典................................................................................................................. - 28 - 9.3 3D基础学习................................................................................................................. - 29 - 9.4 D3D学习...................................................................................................................... - 29 - 9.5 3D游戏进阶................................................................................................................. - 29 - 9.6 3D游戏高级篇............................................................................................................. - 30 - 9.7游戏脚本相关.............................................................................................................. - 31 - 9.8人工智能相关.............................................................................................................. - 32 - 9.9 物理相关..................................................................................................................... - 32 - 1 游戏编程引导——HUNK收藏 9.10 SHADER 相关教程与特效...................................................................................... - 32 - 10 浅谈物理与人工智能.......................................................................................................... - 33 - 10.1物理............................................................................................................................ - 33 - 10.2 AI................................................................................................................................ - 33 - 11.各大游戏公司基本情况和一些招聘经验 ........................................................................... - 34 - 11.1各个公司基本情况 .................................................................................................... - 34 - 11.2一些招聘经验............................................................................................................ - 35 - 11.2.1技术面试经验 ................................................................................................. - 35 - 11.2.2 HR面试经验 ................................................................................................... - 36 - 发信人: chengdz (阿哲 VS自己), 信区: CCST 标 题: 请置顶《如何学好游戏编程》 发信站: 吉林大学牡丹园站 (Tue Mar 3 17:58:26 2009) 2 游戏编程引导——HUNK收藏 《如何学好游戏编程》 此篇文章献给那些为了游戏编程不怕困难的热血青年,它的神秘要我永远不间断的去挑 战自我,超越自我,这样才能攀登到游戏技术的最高峰。 ——阿哲 VS自己 自序 这篇文章我写了大约 4个月,前后修改很多次,做为吉大的学生,毕业前给学弟,学妹, 留下的最后一个文章,也是我去年在《如果学好编程》中承诺过的。29887743 这个是我建 立的吉大游戏编程群,我准备解散,重新建立,希望真正热爱游戏编程的人进入,我会定期 清理这个群.以后我工作了,我会尽最大努力,解答学弟学妹们关于游戏编程方面的问题。 毕业前我会把我所有的游戏编程书籍和代码整理后发到燕子 BT 上(空间要留足够大,估计 要 5,6个 G),到时候我会在群里通知大家。 找工作这段时间是我这三年来最难熬的,我跑遍了中国的大多数游戏公司,这段时间的 辛酸我就不说了,更多的时间是在等待,找过工作的人大多都能体会这是一种什么样的心情。 这个世界没有完美的,地点和户口,薪水和待遇,发展和兴趣,或多或少都要放弃一些,听 了很多人的后,放弃了地点上的考虑,只要人是活的,地点我相信不会是问题。这段时 间遇见很多牛人,我才发现自己是多么渺小,他们给了我很多建议,告诉了我的不足,我学 会了很多东西,这些都是很宝贵的财富。同时很多人给了我太多的帮助,在这里,阿哲感谢 所有帮助过我的人,谢谢你们,没有你们我办不到的。 我一共去了 6个公司,腾讯,UBI,巨人,盛大,完美,金山,文章最后我会把这 6个公司各个方面情况介绍下,如果你以后想去游戏公司,我想它们对你会有帮助的。 在这感触颇深的岁月里,我总结出 2句话: “大学生在学校里是最猖狂的,其实你不知道,你是社会上就是最弱势的” “多帮助别人,别人帮助你要学会报答人家,对于那些你帮助的人,连声“谢谢”都不说 的,你没有必要以后再帮助他” - 1 - 游戏编程引导——HUNK收藏 1.前言 本人不才,姑且以自己经验来谈如何学游戏编程,这个话题我酝酿了很久,它确实很难 写,因为我也不是资深高手,才刚刚登堂入室,游戏编程大师功力一般都十几年左右,所以 让我这样的小卒写的深入浅出更何谈容易,错误出现并不奇怪,高手见笑也在所难免,请 大家指正,我会欣然笑纳。但这几年走过的路,让我知道这么学是正确的,大体过程经验 告诉我,这样做是对的,高手的指引告诉我,这样做是对的。 这篇文章主要讨论如何学习游戏图形编程和游戏引擎编程,告诉没有接触游戏过编程或 者现在关于怎么学好游戏编程还迷惑的 PEOPLE 所要走的方向,完全抛开技术和代码实现 进行谈论。至于游戏逻辑这几年重点没有发到这个上面上,很难总结。 对于游戏中的网络,我个人认为不算游戏编程范畴,可能有人和我意见不一样,只不过 我们把游戏编程定义不同罢了,虽然现在游戏离不开网络,毕竟它只负责数据传输,和游戏 内涵没有任何关系(这里的内涵指的我们可以看见和感受到的游戏氛围)。 经验的限制,对于如何编写一个好的引擎(至于“好”这个词都是相对而言,能做的满意 就是我所期望的),至今为止我还没有这个能力,但我相信经过我的努力,不久的将来, 我会实现这个愿望,因为我的一个愿望就是实现一个好的引擎。 我从下面几个方面来说明如果学习,记住只是如何学习,要想学好就要靠你自己。 1.你真的喜欢游戏编程吗? 2.要了解游戏编程 3.学会读书,自学与思考,交流与合作 4.游戏编程需要的基础知识 5.2D游戏编程 6.3D游戏编程 7.游戏引擎编程 8.我的游戏编程生涯 9.游戏编程相关书籍介绍 10.浅谈游戏物理和 AI 11.各大游戏公司招聘和一些招聘经验 - 2 - 游戏编程引导——HUNK收藏 1.1 游戏编程,你真的爱她吗? 当你听完我的介绍后,你就要决定游戏编程是否适合你。 游戏编程可简单可复杂,简单的 2D 《蛇吃豆》,复杂的现在流行的 3D 游戏。咱们不 说简单的,因为你不想学习游戏编程就为了做一个简单的游戏。确实每个人对他所向往的东 西都想彻底了解清楚,可是我给你的第一个警告,复杂的 3D游戏,复杂到难以想象。 1.你思想需要改变吗? 打开话题,游戏是一个结合体,她是一个音乐,美术,技术,创意相结合的艺术品,你 要用艺术的眼光去欣赏的,因为好的游戏是用艺术的眼光来,除了某国的网游不算外, 很多经典的游戏流芳百世,成为真正游戏玩家佳话。中国的游戏为什么这么落后,你要联想 下,当年中国为什么会被八国联军所侵略。腐朽的思想是根本原因,从而导致了腐朽的社会 制度。游戏行业也是这样,看待游戏的中国人,始终带着眼镜,用腐朽思想看待游戏,所以 现在出现腐朽的游戏行业,导致中国游戏发展缓慢,有人曾经说中国游戏不久就赶超日本和 美国,我认为是扯淡,而且不是一般的扯淡,具体原因后面我会详细说明。 从小的时候,国外的电子游戏产品就跑进了我的空间,废寝忘食的玩个没玩,因为耽误 学习,从此电子游戏被老师和家长全部封杀,任何事物都有利有弊,鲁迅的《拿来主义》曾 说过“去其糟粕,取其精华”。在中国,电子游戏被视为过街老鼠。确实要承认电子游戏 有负面影响,但这些负面影响是谁产生的,本质上是我们自己,最后本来是精华的东西从 我们身边擦肩而过,从小霸王以后的国外游戏机没有任何仿造,导致了游戏机技术从此断 代,现在却又想起来赶超。 而现在,国人知道努力了,国家看到有钱可赚开始支持了,腐朽的游戏思想却还在蔓延, 网络游戏就是这样环境下成长的新生儿,国内网络游戏每年要大批量生产,但存活的基本没 几个。不能否定,没有利益的事情没人干,但你还不能否定,有些事情即使没有利益,但还 是有人干,哪怕知道自己并不能得到什么。国内的人,很少是第 2种人,他们把游戏做为赚 钱工具,垃圾游戏隔三差五的纷纷涌出。相比来讲,我只拿日本举例子,虽然小日本和咱们 有仇,但我们不得不承认小日本在游戏这方面思想层次完完全全超越我们,他们有严格游戏 教育背景,他们做一款游戏,要按照严格的流程,从设计到编程,以至最后的测试,都有着 干一行敬一行的精神,否则《生化危机》这样游戏你是永远看不到的。 所以你要改变自己的思想,游戏是一种艺术品,你要有一种艺术境界来去欣赏她。 - 3 - 游戏编程引导——HUNK收藏 1.2 你有毅力爱她爱到底吗? 也许我上面的话,你还能接受,残酷的在下面,以我的经验告诉我,如果你编程和游戏 理论起步是零,你要对游戏编程达到略有小成的水平最少要 4 到 5 年,我比较蠢,花了 6 年。这 6年来,几乎每天平均学习 4-5个小时左右,当然假期都要算上。头 3年半基本学习 计算机基础知识,包括数学,数据结构,计算机体系结构,人工智能,汇编,编译原理,操 作系统,网络,软件工程,离散数学,算法分析。我们大学 4年基本就学这东西,这些都是 基础,游戏编程都需要,还有一个就高等物理我没有学,导致我现在对于一些物理微积分方 程很难理解,当然这里并不一定是问题,只要你肯努力,没有学不会的。完全把这些学好, 花 4年时间真的不容易。我曾经抱怨自己没保研而痛苦的经历考研,现在我却认为是值得的, 我很难有时间在集中精力的复习这些专业课了,尤其是数学。 在游戏编程中,上面的基本知识都可以用到,所以我说游戏编程很复杂一点不假。就拿 游戏中最难的部分——一个好的游戏引擎来说(这里说的好引擎),世界上能把她做出来的 人很少,中国更是寥寥无几。 上面只是理论基础,要走进游戏编程最基本的。过硬的编程技能更是需要的,其实这些 理论学习可以和编程相结合,在编程中学习理论,为了学习理论而增长编程经验。 有了基础,你才能进一步学习游戏编程,2D 游戏和 3D 游戏理论都要学,这又要花费很长 时间,这个是我下面要详细说的。 看完我写的,你可能心惊胆寒,所以你要爱她,深深的爱她,否则你承受痛苦的时候享 受不到暗含的乐趣。 1.3 爱她请从游戏开始 很多人可能不解,游戏编程为什么要从游戏开始,玩游戏时,有很多潜移默化的东西影 响着我们编写游戏程序,很多灵感确实从游戏中得来。一般的游戏编程高手,都是从小由于 游戏对他们巨大吸引,从而走上游戏道路,虽然不是绝对,但按统计学角度讲可以说是一 个事实。一个不爱玩游戏的人,爱上游戏编程的几率是很小的。其实很多人小的时候都爱 玩游戏,他们都是从游戏厅张大,只有一少部分,走向了游戏开发这个行业,他们之间有 着明显不同,走向游戏开发的人,是真的被游戏背后那种神秘东西所吸引,并想要揭开它 ,而另一些人,则是完全迎合了游戏开发的需要——玩的高兴。 - 4 - 游戏编程引导——HUNK收藏 我想说的是,一个游戏编程高手,必定是一个游戏玩家,他们都是从玩游戏而爱上游戏, 从而走上游戏编程道路。这条路充满了荆棘,不是一般人能走到最后的。所以你一定要爱 她!当然任何事情都不绝对的,你可能就是那不爱游戏但爱游戏编程(或者和游戏性无关的 那部分编程)小概率的人。 2.游戏编程,你真的了解她吗? 游戏编程,这个概念包含了很多深层次的东西。 2.1 游戏引擎开发和游戏逻辑开发 广义上,我给的定义是,游戏引擎开发和游戏逻辑开发。 游戏逻辑开发是集中力量只开发游戏中剧情部分,你只需要做的是什么时候显示什么,什 么时候放出什么声音,什么时候通过网络传输什么数据,什么时候这个物体或者人物做什 么动作。至于底层怎么显示,声音如何处理,网络如何传输,物体动作怎么实现的,你不 用关心,关心这些的是游戏引擎。所以说游戏引擎负责技术方面,而游戏逻辑负责游戏文 化内涵。 成功的游戏是以好的游戏逻辑为基础的,而游戏引擎并不是成功游戏主要条件,但好的 游戏配上好的游戏引擎,确实会给人一种震撼,相比同样的游戏逻辑,好的游戏引擎显示效 果会给人一种全新视觉和听觉感受。 至于游戏逻辑我不想过多解释,但并不是说游戏逻辑简单,游戏逻辑也可以复杂的要命, 这取决与游戏复杂程度和游戏引擎与这个游戏的关联程度。为了解释这句话,我不得不从游 戏引擎解释开始。 早期的游戏是没有游戏引擎这个概念,都是一个游戏一套代码,随着游戏越来越多,大 家发现开发有些游戏中,有很多可重用的代码,逐渐把这些重用代码封状起来,这就是早期 的引擎。对于引擎没有明确的概念,只有好坏和适应程度之分,所谓的好坏,就是引擎支 持功能和显示特性等是否 strong,而适应程度是指一个引擎是否适合开发这个游戏,开发这 个游戏是否要自己再编写一些额外的代码。 我举个例子: 如果我用开发混斗罗的引擎(假如它有引擎)来开发 RPG,和开发 RPG 游戏的“RPG - 5 - hp 附注 游戏编程的两大部分: 1.游戏引擎开发 2.游戏逻辑开发 hp 附注 “hp”设置的“Marked” hp 附注 “hp”设置的“Accepted” 游戏编程引导——HUNK收藏 游戏开发大师”相比,我们还要做很多工作,才能完成玩法功能一样的游戏。所以说很难有 明确的界限划分这一堆代码是否是游戏引擎,但游戏引擎的任务是不用质疑 的,它的任务就是尽量不用负责底层处理,而专心到游戏逻辑上来。 2.从狭义上分,我只分解游戏引擎部分,基本包括(1)游戏图形引擎(2)声音引擎(3)网络 引擎(4)脚本引擎(5)GUI(6)人工智能引擎(7)物理引擎。 (6)(7)两个不是必须的,而前 5 个是一个好的游戏引擎要基本具备的,其实每个游戏引 擎中都具备物理引擎,只不过很多游戏对于物理要求不是很高,所以就集成到了图形引擎中 或者游戏逻辑中。图形引擎是引擎中最难的,它基本要处理游戏引擎中 70-80%的工作量, 它的主要任务是负责图形高效显示,包括速度和精度。后面我会集中并详细解释。至于声音 和网络引擎大家通过字面就可以知道它干什么。本人对声音处理和网络传输知道甚少,说出 来只能误人子弟。 至于脚本我还略有研究,我想解释下什么是脚本,游戏中为什么用脚本。脚本有时很难 给出一个定义,但大家都知道那些是脚本语言,我给出的解释是用软件 CPU(虚拟 CPU)来 运行的编程语言就是脚本语言,软件 CPU和所说硬件 CPU是对立的,也就是说脚本运行与 否先是关联到这个虚拟 CPU,在虚拟 CPU上运行,然后再又映射到真正 CPU,来真正运行。 这个过程很抽象,我觉 2个例子,第一个就是 JAVA语言,它有一个虚拟机,这个虚拟机就 是软件 CPU。再举一个例子,我现在要编写这样一个指令: PRINT S 这个指令示打印 S S代表一个万能类型。 为了实现这个指令,你首先要有一个函数来负责处理打印 比如是这样的函数 void print(S) { cout<
/
本文档为【如何学好游戏编程-阿哲】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索