论文网
首页 职业教育教育毕业正文

浅析手机游戏开发技术

  • 投稿游子
  • 更新时间2015-09-11
  • 阅读量559次
  • 评分4
  • 24
  • 0

王洪江,张文强,张融雪,任娜,韩东波

(沈阳工程学院信息学院,辽宁沈阳110036)

摘要:本文首先阐述了手机游戏的开发、制作流程,着重强调了开发中的重点环节,重点介绍了游戏开发中的关键技术,包括游戏程序通用框架、游戏编程与游戏AI设计,并结合实际开发经验,对重点环节进行了详细的论述和实例说明。

教育期刊网 http://www.jyqkw.com
关键词 :手机游戏开发;游戏引擎;算法;AI设计

DOI:10.16083/j.cnki.-1296/G4.2015.01.070

中图分类号:O29 文献标识码:A 文章编号:1671—1580(2015)01—0153—02

收稿日期:2014—08—10

作者简介:王洪江(1977—),男,辽宁沈阳人。沈阳工程学院信息学院,副教授,研究方向:数字媒体技术。

张文强(1972—),男,辽宁沈阳人。沈阳工程学院信息学院,副教授,研究方向:数字媒体技术。

张融雪(1978—),女,辽宁沈阳人。沈阳工程学院信息学院,讲师,硕士,研究方向:视觉传达。

手机游戏是指运行于手机上的游戏软件,它是借助手机通过无线网络设备提供的游戏应用和服务,基于移动终端设备而开发的游戏应用,凭借其完善的人机交互功能和小巧轻便的特点成为新媒体环境的主要载体。手机游戏开发因其开发周期短、成本低、技术易于掌握等特点为广大手机开发爱好者所青睐。本文主要介绍了手机游戏开发的基本流程和关键技术,以期为手机游戏开发爱好者提供必要的技术参考。

一、手机游戏的开发、制作流程

手机游戏开发、制作的主要环节包括市场调研、游戏策划、游戏开发和游戏运营等。在开发游戏前,首先需要进行市场调研,根据调查的数据进行市场分析,对受益及风险等进行评估;经过调研决定开发游戏后,再进行项目立项;然后,根据立项说明进行游戏策划和设计,进而编写游戏策划文档,进行游戏程序开发和UI制作。在开发的同时,也要进行市场推广和运营。

二、手机游戏程序通用框架

手机游戏程序系统的构成主要包括游戏运行前的系统操作菜单模块、闪屏模块、游戏玩法介绍模块、游戏积分记录模块、游戏运行主模块和游戏结束模块,并由游戏系统的主控模块来负责管理各个模块间的调度和切换。

休闲娱乐型手机游戏的逻辑处理分为两种情况。对于相对复杂的情况,可以采用双线程的方法来实现,一个线程用于处理每隔几帧才需要更新的逻辑,另一个线程则用于处理每帧均需要更新的逻辑,这样处理后,程序不会受到复杂AI的影响。对于相对简单的程序,可以采用单线程来实现。对于初学者来说,开发娱乐休闲型手机游戏可先采用单线程来进行试验。

三、手机游戏编程

(一)游戏引擎

游戏引擎实质上是一组具有特定功能的程序指令和工具的集合,在游戏中的功能就相当于汽车的发动机,汽车性能的好坏直接由发动机的质量决定,对于游戏来说,也是同样的道理。

系统模块是引擎与计算机本身进行通信交互的部件模块,一个优秀的引擎在进行平台移植时,其系统模块是唯一需要进行主要更改和添加代码的地方。渲染模块是游戏引擎中最复杂的一个模块,底层渲染模块则是游戏引擎中最重要的部分之一,一般由OpenGL或Direct3D库来实现其功能。游戏接口模块是游戏引擎与游戏开发人员之间的接口,一般来说,这个接口以图形界面和类的形式提供给游戏开发人员。现在,有些游戏关卡编辑器也集成了这个模块的功能,例如,免费的Genesis-3D游戏引擎。

(二)游戏常用的算法

1.动画贴图算法

动画贴图算法是2D游戏图形渲染模块的重要组成部分,在所有的游戏中,图形的核心几乎都是动画。动画贴图可以分为连续贴图和粒子运动。连续贴图就是接连不断地更换相框中的相片,这些相片会按照动作的顺序排列;粒子运动则是通过粒子属性来生成动画。本文主要以连续贴图算法为例进行介绍。如图1所示,我们将人物的动作分为三个,假设一个动作的长为X,宽为Y,且每张图片的长与宽均相同,要算出某一张图片的位置,可以用等差公式:

An=A1+(n-1)×d

其中A1为首项的值,An为第n项的值,n是项数,d是等差项。假如第一张图像的位置为P,则第三张图片的位置就可以代入等差公式来计算,公式为:

A3=P+(3-1)×X;A3=2X

以此类推,对于同一张图片的图像,只要其宽度相等,在知道第一张图像的位置以后,便可以计算出任意图像的位置。当要连续播放这几张图像时,只需运行如下代码即可:

执行以上代码后,就会连续播放这三张图片。最后,呈现在玩家眼前的就是一个不断循环播放的动画,如图1所示。

2.背面剔除算法

许多三维物体所占据的空间被一些连续的表面所包围,在观察这些物体的时候,我们能看到这些物体包围面的正面部分,却无法看到背面,这就是背面剔除法要解决的问题,即将看不到的部分剔除掉。

背面剔除算法是一个3D算法,它可以减少场景的复杂度,编程的时候无需考虑计算隐藏面,这样可以加快视觉处理的计算过程。确定一个物体的正面和背面时,可以利用向量法来解决。当一个多边形的法向量和观察方向之间的夹角大于90°时,说明这个多边形的平面是位于多边形的背面;反之,小于90°时,就位于多边形的正面。

背面剔除算法可以在映射过程的开始阶段执行,也可以在世界空间甚至是对象空间中执行。越早地进行剔除隐藏面的操作,就可以越多地减少计算量。

四、游戏AI设计

人工智能(ArtificialIntelligence)的英文缩写为AI,是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术以及应用系统的一门新的科学。

在游戏中添加人工智能的角色可以增加游戏的趣味性和可玩性。非玩家角色(NPC)不必依赖于一个真实存在的人群便可以使单人游戏的实现变成可能,增强了游戏的真实感。游戏中的AI大致可以分为漫游人工智能、行为人工智能和策略人工智能。本文以漫游人工智能为例来说明AI设计的方法。漫游人工智能分为追逐、逃避和有模式漫游。追逐—逃避是游戏中最常见,也是最简单的一种AI,但是运用这种手段可以让玩家很轻易地感受到计算机的智能。

If(xplayer>xfoe)

xplayer--;

Elseif(xplayer<xfoe)

xplayer++;

If(yplayer>yfoe)

yplayer--;

Elseif(yplayer<yfoe)

yplayer++;

以上这段代码简单地表示了玩家追逐敌人的行为,反之就是逃避行为。为了避免出现玩家追着敌人不放的情况,可以给玩家的行为增加一些随机性,即添加如下代码:

If(Math.abs(rand.nextlnt()))%4)==0){

If(xplayer>xfoe)

Player--;

Elseif(xplayer<xfoe)}

教育期刊网 http://www.jyqkw.com
参考文献]

[1]恽如伟,陈文娟.数字游戏概论[M].北京:高等教育出版社,2012.

[2]石民勇,税琳琳.手机游戏创作[M].北京:高等教育出版社,2012.

[3]雷剑.基于J2ME的手机游戏开发关键技术的研究与实现[D].江西师范大学,2007.

[4]王洪江.游戏场景虚拟漫游系统关键技术研究[J].电大理工,2013(3).

[5]苏志同,石绍坤,李晋宏.手机游戏开发架构的研究[J].计算机工程与设计,2010(7).