怎么学习游戏开发
随着互联网技术不断进步,游戏动漫产业已经被广大人民接受和推崇,现在已经发展成为最热门的行业之一。许多游戏开发公司也越发繁荣的状态,很多喜爱游戏者开始转向游戏开发学习当中,学习游戏开发,就必须理解清楚游戏开发需要学什么基础,这样才能定好学习方向,朝着游戏开发的目标不断努力前进。怎么学习游戏开发呢?下面是学习啦小编为你搜集到的相关内容,希望可以帮助到你。
怎么学习游戏开发
01
基础课程:络游戏程序设计、网络游戏算法设计、网络游戏平台设计以及商业实战项目训练,包含C++、数据结构、算法基础、Windows API使用、MFC原理及其应用、2D图形渲染技术、界面设计与应用。为网络游戏开发打下坚实的语言基础、掌握基本的编程技巧、掌握简单的游戏开发逻辑、掌握常用的数据结构与算法、掌握基本的Windows编程技术,熟悉MFC程序的开发与应用、能够进行游戏开发。
02
2D网络游戏开发主要学习内容有网络游戏程序设计、网络游戏算法设计、2D网络游戏平台设计以及商业实战项目训练,包含C++、数据结构、算法基础、Windows API使用、MFC原理及其应用、2D图形渲染技术、界面设计与应用。为网络游戏开发打下坚实的语言基础、掌握基本的编程技巧、掌握简单的游戏开发逻辑、掌握常用的数据结构与算法、掌握基本的Windows编程技术,熟悉MFC程序的开发与应用、能够进行2D游戏开发。
03
Direct 3D程序开发基础 3D游戏开发技术实战 游戏引擎的修改与使用网络通讯、数据库及游戏服务器 行业规划及职业素质2 游戏综合项目实战训练 基地顶岗项目实训。
04
基础知识:扎实的算法知识。主要有:树或图的搜索算法、A*算法、碰撞检测算法、BSP树、人工智能
05
相关图形处理知识。比如:Direct X编程、OpenGL编程、图形学的相关知识(三维图形的形体、纹理、贴图、照明,还有三维对象的消隐算法比如油画算法,Z缓存)和动画处理知识。如果想深入还要学会几种三维引擎比如OGRE。
06
扎实的程序语言功底,主要代表为VC、DELPHI和JAVA。其中VC使用最广,现在比较大的游戏也由此开发;DELPHI功能也很强,很多网游:比如网金、传奇都用到了DELPHI;JAVA用于开发手机游戏。
07
基础软件:3dsMAX:大多数游戏开发公司美工使用,效率较高,可以独立制作游戏中所有美术相关资源。
08
Delphi:直接编译生成可执行代码,编译速度快。由于Delphi编译器采用了条件编译和选择链接技术,使用它生成的执行文件更加精炼,运行速度更快。在处理速度和存取服务器方面,Delphi的性能远远高于其他同类产品。
09
Photoshop:PHOTOSHOP是一个很好的图像编辑软件,PHOTOSHOP的应用领域很广泛,在图像、图形、文字、视频、出版各方面都有涉及。对于想学游戏的朋友来说,其实这根本就不是一个问题,不管年代怎样变,经济怎样开展,游戏行业是国家紧缺人才,开展空间也是很大的!现在社会竞争压力大,假如没有一门手工、技能很难长时间吃得开,想要学好游戏开发,可以从这个基础开始抓起吧!
游戏编程,这个概念包含了很多深层次的东西。
1.广义上,我给的定义是,游戏引擎开发和游戏逻辑开发。
游戏逻辑开发是集中力量只开发游戏中剧情部分,你只需要做的是什么时候显示什么,什
么时候放出什么声音,什么时候通过网络传输什么数据,什么时候这个物体或者人物做什
么动作。至于底层怎么显示,声音如何处理,网络如何传输,物体动作怎么实现的,你不
用关心,关心这些的是游戏引擎。所以说游戏引擎负责技术方面,而游戏逻辑负责游戏文
化内涵。
成功的游戏是以好的游戏逻辑为基础的,而游戏引擎并不是成功游戏主要条件,但好的游
戏配上好的游戏引擎,确实会给人一种震撼,相比同样的游戏逻辑,好的游戏引擎显示效
果会给人一种全新视觉和听觉感受。
至于游戏逻辑我不想过多解释,但并不是说游戏逻辑简单,游戏逻辑也可以复杂的要命,
这取决与游戏复杂程度和游戏引擎与这个游戏的关联程度。为了解释这句话,我不得不从
游戏引擎解释开始。
早期的游戏是没有游戏引擎这个概念,都是一个游戏一套代码,随着游戏越来越多,大家
发现开发有些游戏中,有很多可重用的代码,逐渐把这些重用代码封状起来,这就是早期
的引擎。对于引擎没有明确的概念,只有好坏和适应程度之分,所谓的好坏,就是引擎支
持功能和显示特性等是否strong,而适应程度是指一个引擎是否适合开发这个游戏,开发这
个游戏是否要自己再编写一些额外的代码。
我举个例子
如果我用开发混斗罗的引擎(假如它有引擎)来开发RPG,和开发RPG游戏的“RPG游戏开
发大师”相比,我们还要做很多工作,才能完成玩法功能一样的游戏。
所以说很难有明确的界限划分这一堆代码是否是游戏引擎,但游戏引擎的任务是不用质疑
的,它的任务就是尽量不用负责底层处理,而专心到游戏逻辑上来。
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<<S;
}
这里只是伪代码,只是表示这个意思。
你首先要找出PRINT这个单词,读入到一个buffer1,然后把参数读入buffer2
if(buffer1 == PRINT)
print(buffer2);
这里段代码其实就是一个软件CPU,它负责虚拟运行PRINT S 这个指令。
那么游戏中为什么要用脚本呢!最简单解释就是灵活性好。拿一个RPG游戏例子来说,游
戏中有大量物品,每个物品有大量的属性,如果我把这些属性值直接写到游戏中,每一个
小小的改变就要编译整个游戏,花费很多时间,灵活性很差。
如果我把这些写到一个文件中,用脚本语言来编辑,只需要编译脚本文件就可以了,当然
如果你脚本是解释型的语言,不用编译直接可以运行。
当然脚本还有很多好处,主要目的还是方便性和灵活性。
其实GUI(图形用户接口)是一个重要部分。3D游戏中,出现的是大量的3D模型,这些模型
是先用文件的形式存放好的,而文件里面包括的是3D数据和这些数据的组织方式。
至于数据怎么组织是你引擎要规定好的,这样也方便读取,最后把3D数据加载到内存。现
在问题是3D数据上,我们怎么能有效的得到这些3D模型的数据,手工写进文本里?我靠,
那是奴隶社会,SB的做法。我想你不会这么做。人类很聪明,这就是为什么人把其他动物
关进笼子里,而不是其他动物把人关进笼子里的原因。既然我们很聪明,就要想一个办法
快速的定义3D数据,然后保存成文件。这样一个3D编辑器就产生了。3D编辑器就是类似于
3DMAX那种,但引擎中的编辑器是有特殊目的的,使用者要按照引擎指定要求编辑3D数据,
这样引擎高效的显示和处理数据比较容易,至于3D数据是怎么组织的,是一个设计上的问
题,由你引擎来决定,设计好坏,决定你引擎加载数据是否容易,关系到最后渲染。所以
一般好的游戏引擎都有自己GUI,但你也可以用3DMAX这样的软件,然后读3DMAX文件变成自
己可以利用的数据形式。
说到这里,不知道上面的概念大家是否理解,我想如果你没接触过引擎,可能真的不理解
。其实我很难用简短的语言把这么复杂的问题说清楚,如果有一天你把3D学的融会贯通,
你发现我说的是对的。我不知道大家是否发现一个共性的问题,有时你读一本书,无论你
怎么认真把它看完一遍,你都很难掌握里面的知识,当你再认真看第二遍的时候,你突然
觉得这本书没有第一次看那么晦涩难懂。有些知识都是前后呼应的,它们之间相互联系,
要想完整的理解它们缺一不可。游戏编程的知识也是这样。我前面介绍的如果你看懂了,
那你perfect,如果你没有看懂,也不要灰心,这里介绍的只是一个大纲,让你对游戏编程
有一个了解,最基础层面的了解。
怎么学习游戏开发
上一篇:怎样记忆英语单词
下一篇:怎样提高自己的语言表达能力