怎么学习游戏开发

怎么学习游戏开发
怎么学习游戏开发

怎么学习游戏开发

怎么学习游戏开发

01

基础课程:络游戏程序设计、网络游戏算法设计、网络游戏平台设计以及商业实战项目训练,包含C++、数据结构、算法基础、WindowsAPI使用、MFC原理及其应用、2D图形渲染技术、界面设计

与应用。为网络游戏开发打下坚实的语言基础、掌握基本的编程技巧、掌握简单的游戏开发逻辑、掌握常用的数据结构与算法、掌握

基本的Windows编程技术,熟悉MFC程序的开发与应用、能够进行

游戏开发。

02

2D网络游戏开发主要学习内容有网络游戏程序设计、网络游戏

算法设计、2D网络游戏平台设计以及商业实战项目训练,包含C++、数据结构、算法基础、WindowsAPI使用、MFC原理及其应用、2D图

形渲染技术、界面设计与应用。为网络游戏开发打下坚实的语言基础、掌握基本的编程技巧、掌握简单的游戏开发逻辑、掌握常用的

数据结构与算法、掌握基本的Windows编程技术,熟悉MFC程序的

开发与应用、能够进行2D游戏开发。

03

Direct3D程序开发基础3D游戏开发技术实战游戏引擎的修改与

使用网络通讯、数据库及游戏服务器行业规划及职业素质2游戏综

合项目实战训练基地顶岗项目实训。

04

基础知识:扎实的算法知识。主要有:树或图的搜索算法、A*算法、碰撞检测算法、BSP树、人工智能

05

相关图形处理知识。比如:DirectX编程、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

。再举一个例子,我现在要编写这样一个指令、

PRINTS这个指令表示打印S

S代表一个万能类型。

为了实现这个指令,你首先要有一个函数来负责处理打印

比如是这样的函数

voidprint(S)

{

cout<

}

这里只是伪代码,只是表示这个意思。

你首先要找出PRINT这个单词,读入到一个buffer1,然后把参数读入buffer2

if(buffer1==PRINT)

print(buffer2);

这里段代码其实就是一个软件CPU,它负责虚拟运行PRINTS这个指令。

那么游戏中为什么要用脚本呢!最简单解释就是灵活性好。拿一

个RPG游戏例子来说,游

戏中有大量物品,每个物品有大量的属性,如果我把这些属性值直接写到游戏中,每一个

小小的改变就要编译整个游戏,花费很多时间,灵活性很差。

如果我把这些写到一个文件中,用脚本语言来编辑,只需要编译脚本文件就可以了,当然

如果你脚本是解释型的语言,不用编译直接可以运行。

当然脚本还有很多好处,主要目的还是方便性和灵活性。

其实GUI(图形用户接口)是一个重要部分。3D游戏中,出现的是大量的3D模型,这些模型

是先用文件的形式存放好的,而文件里面包括的是3D数据和这

些数据的组织方式。

至于数据怎么组织是你引擎要规定好的,这样也方便读取,最后把3D数据加载到内存。现

在问题是3D数据上,我们怎么能有效的得到这些3D模型的数据,手工写进文本里?我靠,

那是奴隶社会,SB的做法。我想你不会这么做。人类很聪明,

这就是为什么人把其他动物

关进笼子里,而不是其他动物把人关进笼子里的原因。既然我们很聪明,就要想一个办法

快速的定义3D数据,然后保存成文件。这样一个3D编辑器就产生了。3D编辑器就是类似于

3DMAX那种,但引擎中的编辑器是有特殊目的的,使用者要按照

引擎指定要求编辑3D数据,

这样引擎高效的显示和处理数据比较容易,至于3D数据是怎么

组织的,是一个设计上的问

题,由你引擎来决定,设计好坏,决定你引擎加载数据是否容易,关系到最后渲染。所以

一般好的游戏引擎都有自己GUI,但你也可以用3DMAX这样的软件,然后读3DMAX文件变成自

己可以利用的数据形式。

说到这里,不知道上面的概念大家是否理解,我想如果你没接触过引擎,可能真的不理解

。其实我很难用简短的语言把这么复杂的问题说清楚,如果有一天你把3D学的融会贯通,

你发现我说的是对的。我不知道大家是否发现一个共性的问题,有时你读一本书,无论你

怎么认真把它看完一遍,你都很难掌握里面的知识,当你再认真看第二遍的时候,你突然

觉得这本书没有第一次看那么晦涩难懂。有些知识都是前后呼应的,它们之间相互联系,

要想完整的理解它们缺一不可。游戏编程的知识也是这样。我前面介绍的如果你看懂了,

那你perfect,如果你没有看懂,也不要灰心,这里介绍的只是

一个大纲,让你对游戏编程

有一个了解,最基础层面的了解。

相关主题
相关文档
最新文档