Mobile Game Platforms

Introduction

 

在这里,开发平台(Platform)指的是我们(Programmer)看到的手机,包括系统结构,编程接口(API)等。

 

以下是我们主要的手机游戏开发平台及其概述:

q       Java (J2ME)

Ø      开发语言本身的复杂度低

Ø      不同手机系列的平台差别大,所以移植难度大

q       BREW

Ø      Java手机的开发平台更规范

Ø      测试步骤繁琐难度大

q       Symbian

Ø      大容量和高性能

 

我们的大部分项目都是在Java平台上开发的,而Symbian的项目则非常少。

 

Java (J2ME)

Compiler

       Preprocessor

              预处理,进行多个平台的并行开发时使用。

              Gameloft自己写的polka, gloppgcc里的cppMScl

J2SE javac

Build Process

Compile à          

Obfuscate à

  扰码可以anti decompile并且缩减容量

Preverify

  标准Java 的可执行class à 特定KVM的可执行class

Pack 

       Resource packing

       Ant (请参照其他项目的ant模版来构建你的项目)

Jad (请参照Gameloft的相关规范)

Jar(包括所有的可执行class和运行过程中需要的资源)

IDE

JBuilder

Eclipse

  It’s FREE!!!!!

Install

       OTA下载(请咨询Testers

       本地(数据线/红外/Bluetooth

 

以下讲一些重要的Java手机系列和他们各自的性能特点等

各个系列都会给出代表机型,具体规格请在网上查找。

Nokia Series 30

代表机型3510i

性能普通,内存少/容量小,所幸屏幕也很小96X65,可能是屏幕最小的一款彩屏手机了,所以对于程序员来说,移植难度并不是最大的。

 

屏幕尺寸越大,游戏需要的内存和容量也越大,对性能的要求也会增加,所以屏幕尺寸对移植难度的影响是很大的。

Nokia Series 40

代表机型7210

移植难度大,因为性能,内存/容量和30系列一样,但是屏幕大了很多128X128

 

以上两个系列手机有一个共同的优点,就是开发环境比较完善。体现在手机KVMBug很少,模拟器也比较能真实的反映真实设备上的运行状况,内存状况也能够比较准确的跟踪。

Nokia Series 60

代表机型7650

性能好,内存/容量大。

 

缺点是手机KVMBug比较多在编程的时候请参考Gameloft Nokia Series 60 Bug列表及解决方法。

Nokia UI API

早期Nokia的系列手机,都是基于MIDP1.0的平台。因为标准API功能不足,Nokia提供了增强的API供游戏开发之用。包括了绘图(翻转/绘制点阵/多边形/三角形),震动,声音等。这些API足以应付一般情况下的2D游戏开发。

 

其中最重要的是绘图功能的增强。翻转意味着可以节省50%以上的图像资源。绘制点阵意味着可以直接更换调色版。因为这些API,内存和容量的使用效率得到了很大的提高。

 

其他MIDP1.0的手机

代表机型 GX系列 Sanyo系列 SonyEricsson系列

这些手机的移植难点各不相同,但是因为MIDP-1.0的局限性,难度都比较大。

其中有些手机的移植是非常有特点的,比如SET610/620,请参考Gameloft Beijing论坛里相关的主题。

 

这些手机都会面临的问题是图片的翻转和换调色版,因为MIDP-1.0完全不支持,所以都要自己实现,相关的代码已经非常成熟了,可以从其他项目里考。

 

任务:我们只有一张图a, ß 但是我们要画b,à 

   但是因为资源容量的限制,不能再加入一张图b了。

所以需要在内存里创建出b

同样,我们如果需要画c, ß

也需要在内存里创建出来。

条件:在MIDP-1.0有限的API里有函数createImage(数据)

方法:把图像文件内容读取到一段缓存里,

因为PNG的格式是已知的 (RFC2083)

所以可以得到调色版和索引的点阵数据,

然后就可以对此进行想要的变换。

调用createImage(变换后的缓存里的数据)

 

MIDP-2.0的手机

代表机型Moto Triplets / Sagem MyV65 / Nokia 6600 / Alcatel 535 735

MIDP-2.0功能比1.0强大了很多,支持图像变换,声音播放等。所以一般来说,手机厂商不再为了支持声音等功能提供自己的API。并且大多数支持MIDP-2.0的手机内存和容量都比较大。所以移植的难度不大。 

 

Doja

代表机型NEC N341i  Mitsubishi M341i

DojaJ2ME的差别比较大:

JAM而不是Jad

Jar不能超过30K(代码)

Scratchpad(资源/大概只有100k

没有SetClip(所以要实现切成小块)

图像资源是GIF格式而非PNG格式

开发的难度大,并且很多时候需要GD和美工的配合。

Doja的开发一般也需要换调色版和翻转图片,方法同MIDP-1.0,只不过是把缓存里的数据构建成合法的GIF(在MIDP-1.0里是PNG)资源数据流。

 

Java 3D

SonyEricsson K700

API Mascot3D

(JSR184 on some other devices)

Still under research on some part of the 3d engine.

BREW

Compiler

ARM c/c++ compiler

我们用过ADS1.2,希望能用到gccARM7 cross compiler

 

Pack

       Mif

              申请class id

              这是一个类似jad/jam的程序说明文件

              更多的规定请参照联通的测试标准

       Mod

              程序 J

       DLL

              程序 too  不过这个是在Windows环境里

Win32Compiler编译好的Win32 DLL

仅限用于模拟器

       Resource packing

              可以把Resource 打成一个或多个包

       Save (?)

              必要!需要一个有正确初始值的Save文件

       sig

              并不是在release package里出现的

IDE

       MSVC

              BREW提供了足够进行正常开发的有用的VS插件

              同时,模拟器在VS里的设置和运行也很容易

              (相当于启动一个进程,调试一个Additional DLL

 

Test

       TBT

              True BREW Test

       UBT

              Unicom BREW Test

       Memory Allocation

              BREW测试一般都会挂在Memory Allocation

              所以我们要自己管理内存的使用和分配

              请参考Gameloft BREW 游戏引擎 by Zhengjiesheng

 

BREW 1.0

代表机型 LG4400 T720

 

BREW 2.0

代表机型LG6000

 

BREW项目里,内存/容量一般不是瓶颈。一般造成移植难度比较大的是系统性能的低下。这点在早期BREW1.0的手机种更为显著。

 

优化性能的办法一般有(除了正常的优化措施以外),改写/优化调用比较多的系统调用,比如我们的LongCopy。等等。

 

Native Bitmap

更详细的内容请参考Gameloft BREW 游戏引擎

 

BREW 1.0的平台不支持IDIB接口,所以我们无法直接从接口得到NativeBitmap点阵的指针。所以我们可以构建一个Windows Bitmap然后用CONVERTBMP 把他转换成Native Bitmap的指针。

 

如果是BREW2.0可以通过IDIB很容易的得到NativeBitmap的数据地址

IDIB->pBmp

 

Symbian

代表机型 7650 N-Gage

因为相关项目比较少,所以我们只介绍Nokia60系列的Symbian平台

 

SDK

       Series60

       N-Gage

       Wizard创建Symbian项目

Build

       Makefile – mmp

       Abld bldmake

Pack

       AIF

       RSC

       CAPTION.RSC

       APP

       Resource Packing

IDE

       MSVC

      

      

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值