|
Features

Dealing With A Fragmented Java Landscape For Mobile Game Development
Insights For The Future
Despite
the challenges mobile game developers face today with the fractured
Java landscape, the future still looks exciting to me. One bright
spot is the Java Community Process, which was originally founded
by Sun Microsystems. JCP is an open organization working on Java
standards. It uses a formalized process to develop new Java technology
specifications and revises existing ones. Any member of JCP can
submit a new Java specification request (JSR), so it's an important
tool for all of us Java developers to help evolve the standard.
For more information on JCP and a full list of JSRs, visit www.jcp.org.
I have selected five JSRs that are interesting from mobile game
developer's point of view.
1.
Java APIs for Bluetooth (JSR-82) is, as the name states, a Java
API which gives the developer access to Bluetooth functionality.
Bluetooth is a close proximity, low latency communication channel
between two or more devices. This makes it possible to develop
real-time multiplayer games. Today Bluetooth functionality can
be found in most high-end devices.
2.
Sony's Playstation brought gaming and 3D graphics to every household.
But with today's devices and J2ME implementations, it hasn't been
possible to implement real-time 3D applications. The Mobile 3D
Graphics API for J2ME (JSR-184, which is coupled with OpenGL ES)
will bring 3D graphics to mobile devices.
3.
Today the whole J2ME application is contained in a single package.
This means that the application is downloaded once, and it stays
in the device memory for as long as the user wants to, or for
as long as the subscription lasts. Each application has a certain
amount of persistent memory it can use, but the amount of memory
is low. PDA Optional Packages for the J2ME Platform (JSR-75) contains
the file API, which gives the application an access to removable
storage devices such as memory cards. This enables game developers
to develop nearly infinite game worlds, as the user can download
new graphics and levels for their games.
4.
MIDP 2.0 makes it possible to launch the browser from within an
application. This can be used, for example, when an episode of
a game is finished and a page containing information on the sequel
is shown, or when the user is taken to a community site for the
game. The Content Handler API (JSR-211) makes it possible to do
vice versa: launch a J2ME application from within a browser based
on URI. As an example, the user can open the game site and download
new levels just by selecting a link from the page.
5.
Today the business model for mobile games is based either on single
download fee or subscription model. Some operators give the developer
access to their billing mechanism, but in any case the developer
has to have different implementation for each operator. The Payment
API (JSR-229) provides a standardized API for micro payments.
With this the content provider can bill for extra levels, sequels,
sending high scores, and so on.
To
summarize, mobile applications are today merely add-ons to the device.
The above- mentioned new APIs make it possible to create more seamless
applications-providing new and exciting possibilities. The challenge,
however, is that mobile game development is not only about producing
games. All these APIs provide potentially an even more fragmented
technology base -- and at the same time the developers have to support
the current installed base of handsets, which is based on yesterday's
technology. All the parties involved realize the problems brought
by fragmentation and try to fight against it.
One
of the most interesting JSRs is JSR-185, "Java Technology for
the Wireless Industry." The purpose of this JSR is not to produce
new APIs but to provide an overall architectural description and
to coordinate selected JCP efforts for the wireless industry. One
of the most practical outcomes of this JSR is that, for example,
instead of saying that a certain device supports MIDP 1.0 and Wireless
Messaging API, it is JTWI 1.0 compliant.
JTWI
does give recommendations for minimum device capabilities, but it
doesn't define actual categories, such as certain display resolutions
or amount of memory. However, most manufacturers have adopted so
called series thinking. This means that a manufacturer has a number
of categories, which again have a number of devices in them. Examples
of such categories are Nokia's Series 40 and Series 60. In the best
cases the series thinking is working so well that application developers
don't have to test an application on every device.
Quality
assurance has been taken into account as well. In June 2003 Motorola,
Nokia, Siemens, Sony Ericsson, and Sun Microsystems announced their
plans for unified testing and certification programs. For more information
on this one go to www.javaverified.com. We at Sumea eagerly await
the results of this initiative.
The
biggest problem at the moment I see in K Virtual Machine implementations:
The APIs and specifications are not strict enough, leaving space
for various different implementations. This should be solved soon,
as the number of devices and APIs is growing. My wish-list is long,
but it's clearly shorter than a year ago. I think that is a good
sign.
For Further Reading
______________________________________________________
|