开发一款游戏需要什么软件?

开发一款游戏需要什么软件?,第1张

游戏开发指利用计算机编程语言,如C编程语言、C++、java等,编写计算机、手机或游戏机上的游戏。目前流行的游戏开发语言为C++编程语言,目前流行的游戏开发接口为DirectX90,还有OpenGL、SDL(SimpleDirectMediaLayer)等。现在手机上玩的游戏分为Android与IOS两种不同平台,分别是用eclipse/MyEclipse和xcode。现在也流行一些跨平台的编程引擎,例如cocos2d-x、unity3D等。

接下来,再看看游戏开发的课程,游戏开发的课程除了理论知识还包括软件的 *** 作。

C++程序基础:通过学习C++语言,奠定编程基础。使用VSnet2005编译工具,高效构建代码。

算法与数据结构:通过学习算法与数据结构的基本概念,了解常用的数据结构及相关的抽象数据定义,认识计算机求解的基本思路与方法。

Win32程序入门:通过API和MFC的学习,熟悉Windows环境下程序设计基本方法。通过使用DirectX绘制2D图形。

游戏数学和智能应用:游戏中的坐标系,矢量、矩阵,几何碰撞,物理模拟,人工智能与寻路算法。

2D游戏技术与应用:2D游戏技术概论,游戏地图系统,GUI系统,战斗系统设计,任务系统优秀的声音引擎BASS,Cocos2D-X引擎,Box2D物理引擎。

游戏开发的常用软件有C++、DirectX、Box2D、Cocos2d-x、Unity,不能说哪款最好用,因为这是游戏开发过程中都要用到的软件,必须都精通。

C++是在C语言的基础上开发的一种通用编程语言,应用广泛。

DirectX,(DirecteXtension,简称DX)是由微软公司创建的多媒体编程接口。

Box2D是一个用于模拟2D刚体物体的C++引擎。zlib许可是一个自由软件授权协议,但并非copyleft。

Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C++Cocos2d-iPhone项目的版本。

Unity是由UnityTechnologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎

首先你有编程基础是再好不过的了。

手机游戏开发的平台是JME,一般不会用到C++。当然学过C++的更好。

你学的可能是JEE,所以你一定要把JME好好学一下,重点是MIDlet,CANVAS,RecordStore。此外MIDP10和20的特性要搞清楚,如果做和网络有关的还要学习MIDP网络编程。掌握这些就基本上门什么问题了,学的不多,对于一个会C++/JEE的人来说,应该可以在1个月左右学完。

和其他语言一样,JME关键是要多练,自己试着开发几个小游戏出来是不错的练习办法,可以找出你学习上的不足点。有条件的话,做出来的游戏应该拿到真机上运行,因为在模拟器上运行和真机有区别。

如果是独立开发手游,那么还要掌握一些基本的软件,如PhotoShop,Mappy,和简单的声效处理。

另外有需求的话可以学学JTWI,特别是Mobile3DGraphics(M3G)技术,这是以后发展的趋势(由于本人对这块很薄弱,所以不能误导你,就不多说了)。

总之,你就再需要学JME和多练习,就够了。PS一般来说JME工程师比JSE和JEE的待遇要好一些。而且从事游戏行业的上班玩游戏不会被骂。如果哪天你闲着无聊和同事聊天聊的太嚣张被BOSS看见了,他第一句应该是说“有闲功夫多玩玩游戏,闲聊什么天!。”

手机游戏制作

全球手机顶尖游戏3dmotoracer制作全揭密

图文_吴刚北京数位红软件应用技术有限公司执行董事

林志强数位红nightmareii首席三维美术设计师

王科数位红motoracer3d首席三维美术设计师

3dmotoracer是数位红公司开发的一款针对nokias60设备及sonyericssonp800(uiq)的3d游戏,该游戏上市几个月来,已经成为全球最畅销的nokias60、p800游戏应用前三名之一。本文就是对3dmotoracer的开发过程进行大致的介绍。

i游戏引擎的准备

在制作游戏之前,必须有一套经过长期测试并且适用的游戏引擎。

数位红用了两年的时间总结开发出一套基于移动设备的游戏引擎:dragonbonegameengineformobilephone(龙骨),他可以支持目前大部分的高端移动设备,它不仅可以使程序开发人员及游戏项目节省了大量的时间,另外还可以让美术人员最直观的看到其设计效果。它最大的价值就是可以使开发人员的一套代码在不需要改动程序的情况下编译运行在不同设备平台上(改动不超过20%)。目前数位红及其他公司已经使用它开发游戏超过了30款。

引擎提供了非常完善的9个模块与3个增强模块,可以完全满足各类游戏开发的需要。游戏引擎可以直接嵌入到开发者的程序中,不需要额外的支持程序即可使所开发的游戏独立运行。游戏引擎简单、易用,编译后体积很小,占用内存也很小,可以节省玩家的内存空间及无线下载费用。基本引擎包含9个模块,引擎函数界面提供了类似windows的使用模式:

1、文件 *** 作模块:提供类似标准c的fopen,fclose等函数。

2、内存管理模块

3、2d图形图象模块

4、对话框模块

5、sms *** 作模块:可以在程序内部对sms的收发进行截获处理。

6、加密模块:提供识别使用设备的imei功能,用于软件的加密目的。

7、声音模块

8、资源打包及压缩模块:可是使最后发售的软件包体积变小,尽量少的占用用户的内存空间。

9、常用函数:如字符串 *** 作等函数。

10、例子:提供一套完整游戏magicline的源程序。

引擎增强模块构成

其增强部分,包含三个模块:

1、实时3d增强模块

2、声音增强模块

3、图形文件增强模块

ii正式开发的前期工作

a开发工具的准备

在很多人看来,手机游戏还是一种很新鲜时尚的玩意儿,所以,谈起手机游戏的时候难免有种莫测高深的感觉。其实,手机游戏的整个制作过程十分简单。从某种角度而言,它是一种传统的回归,同时也是新旧技术的相互融合。最常用的开发工具有vc++,jbuilder及codewarrior,在设计工具上则更是和普通的pc游戏制作软件没有大的区别。有的设计人员更愿意使用“骨灰级”的二维设计工具dp,也有人愿意用3dmax、maya建模之后再进行二维修改,当然所有这些方法都要根据游戏的最终设定来决定。我们在做java游戏的时,一般都是采用像素级的二维绘制完成,即逐个像素点的完成。但在制作pda等类似设备的游戏时,就会采用3dmax或者maya建立模型,渲染后再修整。在设计过程中,我们也与大多数游戏公司一样使用了maya、3dmax、photoshop、painter等工具。

b确定游戏的各项参数及目标设备

这要求程序人员能给出准确的限制大小,即所有允许美工占用多少空间。由于手机游戏的制作受数据量的限制很大,所以我们在设计游戏时,经常为减少1k空间大小而大伤脑筋。另外,就是需要准确了解该手机允许的色彩数、分辨率、整屏刷新率,其实这也是对游戏引擎的一种测试。

以motoracer3d为例,我们设想使其运行在nokia9210、nokia7650/3650、sonyericssonp800、pocketpc平台上。在数位红,由于我们拥有了自主开发引擎dragonbonegameengineformobilephone,游戏引擎是跨平台的,所以这一步骤我们就省去了不少时间。我们以nokia7650/3650为最初调试蓝本,原因是在这些设备中,nokia7650/3650的速度相对较慢,屏幕尺寸也相对其他设备小,因此以它为基础设备最为合适。

如下表,我们设计了motoracer3d的基本技术参数。

技术参数达成目标及要求

图像刷新速度>18/fps

文件安装完成大小<1000k

文件未安装大小<400k

占用内存峰值<700k

使用过程中游戏占用内存<700k

游戏与 *** 作系统兼容性nokia9210、nokia7650/3650、sonyericssonp800、pocketpc

游戏图形特效清单无alpha

图形文件

声音文件wav

数据自定义

目录结构/变动文件清单

使用的动态链接库未知

下面是经过初步估计的基本清单:

跑道外面的沙地草地元素

跑道的边上的指示方向的牌。(左右)

跑道地面元素

背景的天空图。

起跑线。

选择的时候得车图(4张)

比赛开始前站立的背面图(4张)。

比赛时候得车加人背面图(4套,每套9张,分别9个角度,从直立开始,每15度一张。)

撞车后的图(3桢)

比赛完毕名次画面。

速度仪表图。

数字(0至9等宽横排,分别有4套,速度数字,档位数字,排位数字)

菜单背景

topten

按钮

巡回赛排名的背景

c准备游戏策划

很多开发者认为,手机游戏的策划不重要,这个观点是严重错误的,手机游戏的美术与程序开发工作量都非常有限,其表现力也受非常大的制约,因此一款手机游戏的可完性如何在某种意义上完全取决于游戏策划本身。

在此过程中,手机游戏策划基本同传统游戏策划无异。但游戏策划必须要对游戏的 *** 作做出准确的设计,每个手机的键盘都不太相同,毕竟pc上的键盘基本都是101键。

再就是根据上面第一步给定的美工空间限制,美工要同策划共同商议,严格计算每张占用的空间,甚至是一个小图标都是不可以漏掉的。

以motoracer3d为例,我们的游戏策划做了大量有关物理力学方面的公式,使其美工在设计时更符合真实的效果。

如下表:我们将每种赛车的速度特性均体现出来。

gear1gear2gear3gear4gear5grip颜色

车1最大速度(mph)971071351561760.45绿黄

加速度(mph/秒)211816128

车2最大速度(mph)901021271481680.25紫黄

加速度(mph/秒)2320181410

车3最大速度(mph)1021121401601800.65蓝黄

加速度(mph/秒)201613107

车4最大速度(mph)941051331521720.35黄蓝

加速度(mph/秒)221917139

车5最大速度(mph)1041151451661820.75黑红

加速度(mph/秒)191714107

车6最大速度(mph)921051331521780.5红黄

加速度(mph/秒)211815118

d美术及程序开发工作

motoracer的贴图设计

建立摩托车的模型与赛手

调整运行时的动作

另外最重要的就是如果想做一款motoracer这样的游戏,首先自己就应该是摩托车的行家,我们motoracer3d的首席美术设计师王科,就是一个疯狂的摩托车发烧友,他可以为了攒钱买机车,啃一年的馒头。呵

edemo测试

测试工作以motoracer3d为例,我们开发周期6个月,因为有了引擎的缘故,使主代码开发周期缩短至3个月,为了保证这款产品具备国际水准,剩余的3个月我们基本都在找问题、鸡蛋里挑骨头。于是一款位列全球手机游戏销售前三名的motoracer3d终于出炉了。

当然,在数位红像motoracer3d的幸运产品并不多,数位红有30%的产品在demo期间就因为可完性、 *** 作感等问题最终没有面世。毕竟想要打造一个优秀的品牌是要做出很大牺牲的。

iii手机游戏制作宝典

由于手机硬件设备方面的诸多限制和性能差异,我们在游戏的开发和制作过程中无法天马行空般的进行创作,而不得不综合考虑到多方因素的平衡。下面列出的是一些关键的性能参数,这些参数都直接影响游戏的效果。

分辨率

手机的屏幕大小各有不同,从8030到320240,就好比在pc发展过程中的cga、ega乃至vga,分辨率的高低直接导致了造型的大小及表现力,这点相信每个设计人员都有所体会。另外,由于手机型号及 *** 作系统的多样性,导致了一款游戏并不能不加改动的在不同的手机上运行。对于美术设计人员而言,就要在设计之初考虑屏幕的自适应问题。比如在128×128分辨率下与200×200的分辨率下,如何可以不重新更换,但又达到同样的效果?

色彩数量

目前手机能达到的色彩数量也是限制美术人员发挥的一个重要瓶颈。从过去几年的黑白屏幕手机到现今256色、4096色及真彩色。digital-red在开发游戏时接触过非常多的手机,其中有的手机号称能显示4096色,但我们将一张4096色的色阶图进行显示,便发现有的颜色根本无法区分,更让人吃惊的是,个别手机还色偏严重。所以,设计人员是一定要根据实际手机进行绘制,在此,digital-red有过非常多的教训。

明亮度

液晶屏幕由于其独特的发光原理,并不能达到传统显示器的亮度,同时也就导致了很多色彩丰富的图案在强光下,不能显示出原有的效果,这点在手机户外显示时尤其明显。因此设计人员在设计手机游戏时一定要考虑这点,不能将色彩对比度设置的过于接近、设计一定要简洁明快,避免过小的。

显示速度

在我们接触的手机里,很多由于运算速度的问题,导致动画帧数并不能流畅,甚至达到不了10帧/秒,这对于游戏动画而言是致命的,我们一般采取局部刷帧或者尽量避免全屏幕动画来尽量达到预期效果。而且液晶屏幕本身也有显示速度问题,我们就发现过很多手机都有影像“拖尾”情况。这种情况,在实际游戏中很容易造成玩家的视觉疲劳,尤其在颠簸的车上或者是行动中,游戏时间过长,就有头晕目眩的感觉。如此,即使是一款优秀的游戏也无法留住玩家了。

电力

由于手机是液晶屏幕,大多数设备在高亮度的像素显示与一般像素显示上,两者耗电量是有所区别的,例如白色背景就要比黑色背景消耗更多的电池能量。因此,对于手机游戏而言,要尽可能节省玩家的电池,也算是对玩家的一种体贴吧。

手机游戏开发过程中的一些错误观念

很多想开发手机游戏的朋友们对于手机游戏都充满了幻想,digital-red也曾与这些朋友们一样,在脑海中有非常多的想法等待实现,但一旦真正开发游戏的时候我们就发现很不现实,这里将几个常见的错误认识与诸位分享:

移植pc游戏到手机上

pc上的游戏已经以百兆来计算其占用空间了,而很多手机游戏是以k来计算,大多数的手机游戏能安装60k的游戏就算不错了。

j2me游戏不用改动可以运行在各种手机上

j2me在移动设备上有一个midp10标准,但各个手机厂商在推出支持j2me的手机上都对其进行了扩充甚至改动,一个程序想要达到最理想的效果就一定要针对不同型号的手机。

用java开发手机游戏要比用c++好

使用java开发手机游戏的确非常方便,但在效果与性能上很难与c++代码实现效果比拟。如在symbianos/wince设备上我们还是推荐尽量使用c++来开发为好。

java开发出的应用程序占用的空间小

在开发小型应用时,java程序的确空间占用较小,但如果游戏项目过大,java游戏的小巧优势就很难体现了。

手机游戏策划与传统游戏策划无异

手机游戏的策划禁忌非常多,要求策划人员必须全面了解手机的技术性能才能做出针对性的优秀游戏。

美术可以画大图,然后再缩小

一张大图如果缩成1212大小,效果就可想而知了。


1Construct3

适合小白的一款游戏开发软件,不需要自己编程,游戏开发工具完全由GUI驱动,游戏逻辑和变量使用应用程序本身提供的设计功能实现。

2GameMakerStudio2

与Construct3一样,GameMakerStudio2允许您使用其变量和游戏逻辑的拖放界面创建整个游戏。但与Construct3不同,GameMakerStudio2通过其GameMaker语言赋予更多功能,目前它是最流行和最活跃的免费游戏开发引擎之一。

3Unity

Unity最初是一个3D引擎,但最终在2013年增加了官方的2D支持。尽管它完全能够创建2D游戏,但是你可能遇到偶然的错误或故障,因为Unity的2D系统实际上已经加入其核心3D系统。这也意味着Unity给2D游戏增加了许多不必要的麻烦,这可能会影响性能。

4戈多引擎

Godot支持创建2D和3D游戏。然而,与Unity不同,戈多的支持要好得多。引擎的2D方面从一开始就经过精心设计,这意味着更好的性能,更少的错误以及更整洁的整体工作流程。

5虚幻引擎4

在此列表中的所有工具中,UE4是最专业的。它是由Unreal特许经营背后的天才创建的,他们知道顶级引擎需要什么,以及提供下一代功能需要什么。他们确切地知道他们在做什么。

"

UE4引擎编辑UI通常使用WidgetBlueprint,HUD涵盖的面比WidgetBlueprint更广,包含2D、3D和其他,使用c++进行编写,但做UI不如WidgetBlueprint细致、功能多。首先,在ContentBrowser里右键选择生成一个WidgetBlueprint,打开WidgetBlueprint,根据需求选用Image、Text、ProgressBar等等组件设计你的UI画面。VR游戏里建议尽量降低UI在视野画面上占用的比例,话说,哪个逗逼喜欢看到眼前老有块抹不掉的东西。UI画面排版好之后,可以按需求设计曲线和帧动画,然后可以选定一个组件,在Details窗口里凡是有Bind的项都可以点开Bind选项编写逻辑,哥们可以根据需要设计编写,然后在Graph页面统一处理UI信息。注意,如果主角或者其他蓝图类需要调用到UI组件或者UI组件里的变量,则需要将组件的IsVariable项勾上,就在Details窗口第一行组件名后面。
WidgetBlueprint做好后,我们就要确定我们选择哪种方法给相机添加上UI,我这有两种方法,一种是直接绑到相机上,一种是动态添加给相机。直接绑到相机。打开主角的Character蓝图,添加一个SpringArm拉到Camera下面,再添加一个Widget组件拉到SpringArm下面,在Widget组件Details窗口的UserInterface栏的WidgetClass项设置UI蓝图类。注意,设置好UI蓝图类后,还需要将Widget组件倒转180度,并调节Widget的位置,使UI正好在相机视野里,而且这种方法做出的UI会随动作抖动,所以要严格控制抖动的范围和方向。Widget组件加到主角蓝图之后,Widget组件的UserInterface下的Space项选World,Image的Alpha值只有0和1两种情况,选Screen,Alpha值才可控。
动态添加给相机。先用CreateUIWidget生成一个UI组件,然后用AddtoViewport将UI添加到主角的视野里,如果需要隐藏UI,可以直接用RemovefromParent拉出来,等需要显示的时候再直接用AddtoViewport添加上去。注意,避免重复用Create
UIWidget生成组件,以免占用大量内存,生成后可以用AddtoViewport和[b]RemovefromParent控制UI的显示和隐藏。
学了3个月UE4,感觉上VR游戏其实并不太注重UI这部分,现阶段市面上的VR游戏绝大多数直接省略UI,学做UI只是让你在接到需求后多条路子去实现而已。

3dsMax里做草丛可用以下两个方法:

1  建一平面,用vr毛发做草地。

2  在模型上添加草地贴图,做成草丛。

你可以先去绘学霸网站找“游戏特效/unity3D”板块的免费视频教程-点击进入完整入门到精通视频教程列表: >

您好

如果您的草是贴图的话,可以通过贴图动画来做。

思路是:分别用噪波来控制草地和沙地2张贴图的切换,用颜色修正来控制草地的颜色变化。将以上2个要点结合起来就能大概的做出您要的动画了。

以下是过程

1首先创建一个平面(我这里的平面是5m×5m的)

2然后选中平面 给平面赋予一个材质

3赋予完材质之后,点击材质下  漫反射 旁边的小方形,在d出的 材质贴图浏览器 中 选择 噪波

4把噪波的大小调成200,接着在 噪波 这里 点击这里白色通道的按钮,在d出的 材质贴图浏览器 中 选择 颜色修正(这个就是用来控制草地颜色的)

5在颜色修正下 贴图这里 点击  在d出的材质贴图浏览器 中 选择 位图

6加载您的草地贴图

7加载完后是这样的

8接着我们为黑色通道加载贴图, 在d出的材质贴图浏览器 中 选择 位图

9接着选择 沙地 的贴图

10接着,我们就要开始K动画了。

首先点击 自动关键帧,把时间轴移动到30帧,进入 颜色修正里面 把颜色调成**(这个和PS里面的 色相/饱和度 是一样的),然后软件就会自动的给贴图k上帧

11接着我们返回噪波贴图 ,在 噪波参数 下把高度调成 01

12然后把时间轴移到0帧,把高度再次调成01

13再把时间轴移到60帧,在 噪波参数 下把高调成1

14接着调到90帧,把低调成09 。

接着我们的这个动画就简简单单的K完了。

完成之后的动画就是这样的

注意:这个动画在调的时候视图里面是看不到颜色渐变过度的效果的,您需要打开实时渲染边做边调。

由于我这里只是做示范,所以只是作为参考,但是大概思路就是这样,想要动画更好的话,可以继续细化,添加关键帧,通过增加其他参数的关键帧来令动画更加丰富。

如果镜头是比较近景的,或者想要做比较真实的效果的话,那么这个可能需要使用毛发系统和粒子系统来做,这个可能就比较复制了。

顺便把我做的工程文件给你留作参考,您有不懂的地方可以看看这个文件里面是怎么调的,还不懂的话可以继续问我。

你先跟着上面的步骤调一下看看,希望能帮到您。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13363603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-22
下一篇 2023-07-22

发表评论

登录后才能评论

评论列表(0条)

保存