一、背景介绍
现在的移动电话是小型的计算机,它的处理能力与台式机的标准处理能力相比很有限,但是足够运行一个小型的游戏。
现在的手机的一个特性就是它们还是网络计算机,能够高速发送和接收数字数据。 除了语音数据以外,它们还可以发送和接收其它类型的数据。所以类似《传奇》、《千年》这样的网络游戏也可以在手机上实现。
当然就处理能力和性能而言,当前阶段的支持Java的手机很接近第二代控制台游戏机、80年代中期的家用电脑和早期的手持游戏机。内存通常很有限--一般128KB到500KB--虽然有些智能手机比如Nokia 3650有4 MB内存。与PC相比,它们的输入和显示功能也很有限;小屏幕(许多仍然是黑白屏幕),为电话拨号优化的小键盘并不针对文本输入,以及有限的声音处理能力。
二、移动游戏是如何实现的
目前在移动电话实现游戏的技术主要有以下几种:
1、嵌入式游戏
一些游戏在出厂前就固化在芯片中了,象Nokia的贪吃蛇就是一个最著名的例子。但由于用户不能自己安装新的游戏,所以它们逐渐变得不太流行了。
2、短消息服务游戏
短信息服务(SMS)被用来从一个手机向另一个手机发送简短的文字信息。用户一般为每条信息支付1毛钱的信息费。短消息服务游戏的玩法通常是发送一条信息到某个号码,这个号码对应游戏供应商的服务器,服务器接收这条消息,执行一些操作然后返回一条带有结果的消息到游戏者的手机中。短消息服务不是一个特别好的用于实现移动游戏的技术,因为它依靠用户输入文字,因此本质上它是一个命令行环境。而且它还很昂贵,即使和服务器只交换10次信息也要花费1块钱或者更多的钱。虽然多媒体消息服务( MMS)技术的推出使得基于消息的游戏更加具有吸引力,但是仍然不是一种重要的游戏环境,所以在此我们不会深入探讨它。
3、浏览器游戏
差不多1999年以后出厂的每台手机都有一个无线应用协议(WAP)浏览器。WAP本质上是一个静态浏览载体,非常像一个简化的Web,是为移动电话小型特征和低带宽而专门优化的。要玩WAP游戏的话,可以进入游戏供应商的URL(通常通过移动运营商门户网站的一个链接),下载并浏览一个或多个页面,选择一个菜单或者输入文字,提交数据到服务器,然后浏览更多的页面。WAP (1.x)版本使用独特的标记语言WML,允许用户下载多个页面,即卡片组。新版本的WAP(2.x)使用XHTML的一个子集,一次传递一个页面并且允许更好的控制显示格式。两种版本的WAP都提供一个比SMS更友好的界面,而且更加便宜,只要根据使用时间付费而不是根据信息数。但是它是一个静态的浏览载体;手机本身几乎不需要做任何处理过程,并且所有游戏必须通过网络,所有的操作都是在远程服务器上执行的。手机将继续带有WAP浏览器,而且开发者可能发现WAP有利于传送比游戏应用程序提供的更详细的帮助信息或者规则,因为大部分的游戏仍然受有限的内存制约。然而,WAP没能达到高使用率的目标(在欧洲和北美洲,只有6%的手机使用WAP),而且移动运营商和游戏开发者正在远离WAP技术。 我们也不会在这里探究任何WAP的细节。
4、J2ME和其它的解释语言
Java 2 Micro Edition (J2ME)是一种针对移动电话和PDA这样的小型设备的Java语言。大部分的手机厂商都迫切希望Java手机推广应用。上千万的Java手机已经到了消费者的手中。J2ME与台式机中的Java相比还是有很大的限制,但是它已经极大的提高了移动电话支持游戏的能力。它有比SMS或WAP更好控制的界面,允许使用子图形动画,并且可以通过无线网络连接到远程服务器。支持Java的手机的普及,所以它成为目前最好的移动游戏开发环境,我们在这里将详细研究J2ME游戏的开发。J2ME不是手机上配置的唯一的解释语言,但是它是一个许多厂商支持的行业标准。一些专用的解释语言也在某些区域有上佳的表现,如北美的Qualcomm的BREW ( Binary Runtime Environment for Wireless,用于无线应用程序的二进制运行环境)和一些韩国移动运营商支持的名为GVM的标准。在这个系列文章中,我们将要重点讨论使用J2ME开发移动游戏,并且将介绍在Nokia平台上开发移动游戏的方法。
5、C++应用程序或其它编译语言
另外一种开发方式是使用C++开发移动游戏,把程序编译为本机机器代码。编译语言程序一般说来提供更好的控制用户界面,以及与解释语言相比更快的速度。C++开发者可以定位于Series 60平台设备。此外,Microsoft的.Net CF也可以以编译的形式开发移动设备上的游戏,在以后的文章中我将介绍Pocket PC平台上游戏开发的方法。