资源受限环境下IPTV益智程序开发
2013-11-27谢朝海林智华林苏毅
谢朝海,林智华,林苏毅
(深圳职业技术学院 计算机工程学院,广东 深圳 518055)
交互式网络电视IPTV是一种利用宽带有线电视网,向家庭用户提供包括数字电视在内的多种交互式服务的崭新技术,IPTV使用到的技术包括互联网技术、多媒体技术、通讯技术等.国内IPTV服务发展迅速,至2011年已超过1.15亿用户,交互式电视为代表的视讯业务已经越来越成为关注的焦点[1].目前游戏程序的开发主要集中在PC环境或者手机环境,在J2ME环境进行研发[2].文献[3]研究了在J2ME中进行手机战棋游戏设计、游戏世界的素材设计与实现以及游戏程序的设计流程等.
用户在家中可以通过网络机顶盒搭配普通电视机、计算机以及移动终端等方式享受 IPTV服务.由于网络机顶盒搭配普通电视机能够很好地利用现有电视机资源,成为享受IPTV服务的首选.基于如此庞大的IPTV用户群体,运用其网络机顶盒这个终端设备来运行游戏程序,实现增值服务,是网络游戏的一种新的表现形式,越来越受到市场的重视,被业界广泛看好.
IPTV游戏具体以下特点:屏幕大、操作简单、实时联网、内容老少皆宜、收费方便等.屏幕大是因为使用电视机做屏幕;操作简单是因为需要使用IPTV机顶盒配备的遥控器,红外遥控器的反应不是特别灵敏,游戏设计中需避免使用快速的操作方式;IPTV游戏适合于全家人一起玩,另外电信运营商提供代收费服务,方便扣费[4].
随着IPTV的普及,许多省市的IPTV网络电视正在考虑开辟专门的游戏频道,急需大量新游戏程序.由于网络机顶盒不同于普通手机[5],其内存较小,性能也较差,因此,虽然现在有不少手机游戏公司在观望IPTV游戏这一块市场,但仍然苦于没有合适的、基于IPTV开发规范程序实例来参考学习而迟迟不知如何下手.
鉴于IPTV游戏的发展现状,本文以“快乐娃娃”程序开发为例,从需求分析、环境搭建到代码实现等方面介绍了基于J2ME的IPTV机顶盒游戏开发的一般流程和规范.
1 需求分析
“快乐娃娃”IPTV益智程序的研发目标是:设计并开发一款能够在多数常见网络机顶盒上运行的,老少皆宜并具有一定娱乐效果的居家益智型游戏程序.
1.1 功能需求分析
游戏程序以快速摘取水果为基本背景,玩家通过遥控器控制按键
每次启动游戏都从服务器上读取上一次玩家的未结束的游戏关卡,首次玩家从第一关开始,关卡设有倒计时 60s.游戏时间结束则判定成功通过还是失败.默认每次游戏有3次失败机会.超过3次可以通过购买复活币等相关道具的形式继续游戏,否则重新在第一关开始.
游戏中每次通关将首先切换到商场页面,玩家可以用得分购买道具或者使用运营商虚拟币购买,通过游戏运营商提供收费接口进行收费.
游戏通过结束时对玩家的得分进行排名,提高玩家的成就感,吸引玩家不断尝试,通过合理的关卡设计、道具策划,保持游戏的持续生命力.
1.2 界面需求分析
游戏程序主界面以适宜于儿童娱乐的形式呈现,如图1所示.主界面顶部为玩家积分、时间等提示信息,主体是玩家摘取果实的玩乐场面.
图2为游戏商城界面,在该界面玩家可以方便地进行各种道具的购买.图3为排名界面,玩家可以一目了然地看到自己的排名情况,以及与其他玩家排名的差距.
1.3 运行环境分析
目前国内的机顶盒开发商众多,有华为、中兴、同洲、裕兴等,占市场份额较大的主要有中兴、华为等.大部分机顶盒的特性及功能等都基本相似,主要区别在于硬件设备上,特别是在CPU和内存上.目前国内广泛应用的弱终端机顶盒基本上CPU的处理能力都在533MHz以下,大部分为 300MHz,内存要求游戏运行占用小于1MB.因此,游戏程序使用的图片要求使用占内存较少的png格式,声音文件使用PCM signed 16 bit 单声,22050Hz采样率,格式为wav的声音文件,不支持写文件等RMS存储.
图1 主界面
图2 商城界面
图3 排名界面
2 搭建开发环境
J2ME平台为如移动电话、PDA、电视机顶盒、车载GPS等提供了一个通用的开发平台,满足了消费电子和嵌入设备的需要[6].“快乐娃娃”就是选用在 J2ME上开发.J2ME为运行在嵌入式消费类电子产品,如移动电话、PDA、车载GPS、游戏终端之上的应用程序提供了一个健壮的、灵活的环境.本文在Eclipse环境下搭建J2ME开发环境,同时借助WTK(Wireless Tool Kit)工具包.WTK工具包是Sun公司针对J2ME推出的用于手机和 Palm等移动设备的开发包,是除手机厂商的专用开发包外唯一的手机仿真器开发包.它通用性高,开发出的应用程序可保证能运行在大部分设备上,兼容性好.因此,本文主要涉及的开发环境工具包括:jdk-7u9-windowsi586、eclipse-java-helios-SR2、Wireless_Toolkit-2.5.2_01和proguard4.8等.
搭建开发环境的过程如下:
步骤一:安装JDK,配置系统环境变量.
步骤二:通过Eclipse官网下载并安装Eclipse–Helios版本.
步骤三:安装Wireless-WTK开发包.
步骤四:解压 proguard4.8.zip到指定目录“test”.
步骤五:在 Eclipse主菜单中选择<窗口>-<首选项>选择
步骤六:在 Eclipse主菜单中选择<窗口>-<首选项>选择
3 程序实现
3.1 程序流程
程序的流程图如图4所示.
主要程序流程:(1)进入程序加载菜单界面,主要菜单有:开始游戏、商城、帮助和退出游戏等;(2)开始游戏,可以通过按键和方向键等控制进行各种水果的抓取获得不同积分,与此同时,进行倒计时,时间计时到零,结束该关卡游戏.通过关卡的,显示排名榜;未达到关卡最低得分要求的,通关失败,显示是否重玩关卡;(3)游戏商城,可以购买各种增加生命或者技能的游戏用品;(4)关闭游戏.任何时候都可以根据需要按键推出游戏.
3.2 代码实现
本文游戏的代码主要通过类来组织实现,图5为代码主要使用到的类.
3.2.1 TargetPool类
该类包含游戏目标物体的基类,以及各种目标物的具体内容参数的初始值,用于实例化不同的目标物,并赋予不同的执行效果.
3.2.2 Hand类
图4 总体流程图
图5 程序类库
该类是手势类,它主要控制着手势和绳子的摆动角度和速度.通过调用不同角度预设的三角函数值来计算角度矢量和速度,由于J2ME设备计算浮点三角函数能力较弱,所以采用预设的多个角度替代传统的计算以提高游戏整体性能.
3.2.3 S_开头的类
这些类应用为不同的场景,主要实现接口类SceneX 的 3个方法,分别为 init(),paint()和advance()方法,这构成了每个场景主要的作用.每个场景也可添加场景内所需的变量.
3.2.4 Selecter类
该类把所有具有选择操作的动作做了统一处理,以实现常规的上下左右选择、跳行选择、已经对话框选择,统一处理有助于代码的简洁及规范.
3.2.5 ImagePool类
该类用作系统的统一读取图片接口,实现了图片读取一次便存在于该类的Vector内,图片将缓存在系统内部,这将加快下次调用同一张图片的速度.
3.2.6 MyCanvas类
该类是游戏画板继承自GameCanvas并实现Runnable接口.使用public void run()语句实现特定帧率的主线循环,该循环内包括主渲染和主逻辑处理.其中有场景变量数组,用来保存不同场景初始化后的实例,主渲染和主逻辑会自动调用当前生效场景的渲染和逻辑函数,该类中的主渲染和主逻辑起到了代理的作用.该类还包含对不同机顶盒按键的兼容处理,通过判断机顶盒型号来决定将要调用的不同机顶盒型号的按键键值.
表1 测试结果一览表
3.3 测试结果
通过搭建测试环境,进行游戏程序测试.仿真测试环境中需要确保测试服务器和机顶盒处在同一网段,本文的扣费程序服务器IP地址192.168.1.50,各种机顶盒IP地址从192.168.1.61开始.利用华为EC1308和华为EC2108,以及中兴B600V3和中兴B600V4四款机顶盒进行测试.测试结果如表1.从测试结果看,本游戏在功能和性能等方面都满足常见机顶盒的运行环境要求.
4 结 论
IPTV用户群体人员数量庞大,为他们提供各种增值服务具有巨大的发展潜力.网络机顶盒加普通电视机能够很好地利用现有电视机资源,成为享受IPTV增值服务的首选.但由于受到网络机顶盒性能、内存等资源的限制,使得IPTV增值服务程序的开发与其他普通程序开发有所不同.本文通过一款“快乐娃娃”开发实例,展示IPTV增值服务程序从需求分析、环境搭建和代码实现等全程实现过程和方法,为在资源受限环境下,基于J2ME进行IPTV网络机顶盒益智类游戏娱乐程序开发积累了经验,为游戏开发爱好者提供参考和引导.
[1] 徐啸涛,俞秀金,胡蕊莉.IPTV业务质量指标研究[J].计算机与网络,2012,19:65-67.
[2] 龚剑.J2ME手机游戏开发详解:快速入门、难点剖析、商业案例[M].北京: 电子工业出版社,2008.
[3] 张学习,连爽.一种新的 J2ME平台下的战棋类游戏设计与实现[J].计算机工程与应用,2011,47(11):57-59.
[4] 程锦.基于J2ME的IPTV游戏设计与实现[D].合肥:安徽大学,2012.
[5] 马鹏强.基于 J2ME的手机五子棋游戏设计与实现[D].成都: 电子科技大学,2012.
[6] Kim Topley. J2ME技术手册[M].北京: 中国电力出版社,2004:27-34.