开发程序:疯狂的炸弹
开发进度:第一期
本期要点:设计客户端游戏功能
开发平台:java平台
从3G中受益的行业,一定少不了手机网游,手机网游应该怎么开发呢?跟PC平台上的游戏开发一样吗?别急,跟随我们开发一个手机网游,你就什么都明白了。本期我们先讲客户端的游戏功能。
手机网游前景光明
国内的手机网络游戏最早出现在2004年,最初由3人团队开发并运营的休闲网游——《移动玩家》系列。第一个公司开发的手机网游是《三界传说》。手机网游发展到如今已经有几十款手机网游上线运营了。易观Enfodesk发布的《2009年第1季度中国手机网游市场季度监测》数据显示,2009年第1季度中国手机网游用户规模达330万,环比增长16%。
小提示:手机游戏门户网站当乐网2008年的调查显示,目前的手机网游用户中,学生(38.4%)、公司职员(21.3%)、工人(12.8%)及军人(3.7%)占比合计达76.2%,他们是时下手机网游的主体消费者。在年龄上,15岁至25岁的用户成为手机网游消费的主体,占比近90%。
困扰手机网游发展的因素有三个:网络速度、网络费用昂贵和体验性差。随着3G的快速发展,手机的网络传输速度将得到极大的提升,网络费用也会在将来降下来。有了传输速度的保证,游戏会做的很细化、功能更强,自然体验性也会更好。在今年的ChinaJoy展会上,还特别设立了手机网游专区,可见它的前景十分光明(图1)。
Java ME技术由于支持的手机广泛,开发人员众多,在整个手机网络游戏开发技术中占据主导地位,随着MIDP3.0规范的推出,Java ME技术将成为最主要的开发手机网络游戏技术。
客户端游戏功能设计思路
手机网络游戏和普通的网络程序一样,在实际设计时都分为客户端和服务器端两个部分进行开发。开发客户端,主要包含界面设计、用户操作控制和网络传输三部分。开发服务器端,则主要包含网络传输、数据存储和核心逻辑三部分。所以网络程序和一般程序的不同就是将单机程序的数据和逻辑处理部分移动到服务器端,然后通过网络传输和客户端进行数据交换,从而实现程序的功能。
《疯狂的炸弹》是一款类似《炸弹人》的双人对战小游戏。本游戏包含两个界面(图1):等待界面和游戏界面,等待界面比较简单,界面为一个闪烁的文字。游戏界面是程序的主界面。由于界面中包含的元素很多,所以对于界面采用分层绘制的思路:首先绘制包含背景块的背景层,然后绘制障碍物层,最后绘制人物和炸弹等。
而对于用户的操作控制,客户端先要做一些基础的判断,然后将用户操作转换为一定的格式发送给服务器端,由服务器端判断是否可以操作,客户端程序根据服务器端的处理结果来确定操作是否成功。
状态机机制讲解
由于需要在程序中实现两个界面:等待界面和游戏界面,为了简化逻辑的处理,将这两个界面编写在一个代码的内部,这就需要使用界面开发中一种常用的控制机制——状态机机制。
状态机机制的实现原理是:使用一个int状态变量控制显示哪个界面,例如该变量的值为0时显示等待界面,该变量的值为1时显示游戏界面,这样就可以通过控制该状态变量来实现界面的显示和切换了。
使用状态机机制可以很方便的在一个代码的内部制作多组界面,可以让代码的结构变得十分清晰。此外,还需要考虑对复杂的界面进行分层处理。分层处理是指将逻辑处理相同的元素划分为一层,类似photoshop中层的概念,例如将起装饰的背景块组成背景层,将参与碰撞处理的部分组成碰撞层等,而人物需要单独处理成一层。
这种处理的思路不仅使得界面绘制结构清晰,更重要的是使逻辑处理简单化,从而可以开发更复杂的界面程序。状态机机制,在复杂程序中用得较多,特别是手机网游程序,有志于这方向的朋友一定要掌握它。
本程序中的实现代码为:
/** 界面控制状态值 */
int status;
/** 等待界面 */
final int WAITING_SCREEN = 0;
/** 游戏界面 */
final int GAME_SCREEN = 1;
在代码的各个方法中,根据变量status的值进行不同的逻辑处理,从而实现状态机机制。