|
|
|
Contents: |
|
|
|
Related content: |
|
|
|
Subscriptions: |
|
|
| Starting fresh with old resources
John
Papageorge (mailto:john@mediaoverdrive.com?cc=&subject=Jason
Loia) President, Media Overdrive 07 January 2004
Mobile developers will learn from Jason
Loia of Lavastorm that whether you are building enterprise solutions or
mobile games, size matters. The developers who can master the art of
optimization will have a better chance of having their mobile
applications succeed in the market.
Oh, to be Director of Wireless Entertainment -- that sounds like a fun
job, doesn't it? That's Jason Loia's position at Lavastorm Engineering,
where the Entertainment division is focused on innovative entertainment
concepts. Jason's group contributes to a growing list of more than 40
published titles for the biggie entertainment brands like THQ, Sega,
Disney, Midway, Sorrent, and Sony.
While Loia's background is in systems engineering (as his MSEE from
Stanford and his MBA from Harvard well show), he focuses equally on
business at Lavastorm. "When I joined Lavastorm in 2000, we were focused
exclusively on custom systems for the enterprise class," he said. "We were
the SWAT team in back-end scalability, performance, and high
availability."
In 2001, Loia first felt the thrill of the games sector through his
creative work for Electronic Arts, an online community platform that
integrated EA's roster of sports titles. The EA project led him to E3
(Electronic Entertainment Expo), where he clearly saw a growing demand in
the mobile game industry for J2ME and BREW developers.
"Mobile game development has brought about a major culture shift in the
company," explains Loia. "Where our engineers used to build out J2EE
systems to a rigid software engineering spec, they now help create game
designs, build game libraries, build 3D game levels, and develop to a
fuzzy spec of 'fun gameplay.'"
Loia's team is developing applications across all major mobile
platforms, including J2ME, BREW, Palm, and Symbian. Within his standard
wireless developer's handbag you'll find Sun's Java Wireless Toolkit,
BREW's SDK from Qualcomm, Photoshop, ANT, 3D Studio Max, and MSFT Visual
C++.
Lavastorm's game applications run on most 2.5/3G devices on the major
carriers worldwide, including Sprint, Verizon, Cingular, Nextel, and
AT&T. Platforms include J2ME, BREW, and Symbian. "We run J2EE servers
for game community services as well as pretty slick .Net multiplayer
technology," says Loia. "Keep your eye on the mobile 3D engines like
Swerve and Fathammer. These engines are enabling full 3D gameplay on cell
phones and PDAs, and with NGage- and Tapwave-type gaming platforms a
reality, Halo on your cell phone may not be too far away."
Wireless secret
weapon Loia's secret weapon for keeping development easy is
leveraging reusable game libraries, including engines for each game genre
and multiplayer APIs. He believes the designs of the games that the
devices can currently support all lend themselves to reusable code, menus,
draw engines, clipping code, and APIs. "Try to reuse as much as possible,
and if you can design to the lowest common denominator, which is generally
the lowest performing device on the totem pole in terms of CPU
performance, memory, and screen quality, you'll see your development time
decrease exponentially with each new game application you develop," says
Loia.
What every wireless developer can't
forget As we're well aware, size is a major factor and every
byte counts, Loia reminds us. Optimize frame rate, optimize gameplay, but
above all, optimize footprint, the developer adds. "You'll quickly find
that heap and RMS memory will be the bottleneck to every problem you
encounter," he says. "Have a strategy whereby you design for high-, mid-,
and low-end devices and you can cover 95% of the mainstream devices when
you start porting."
Loia discovered very early in his mobile development days that mobile
development very quickly begins to deplete memory. "And that's the one
thing you're sure to run out of quickly," he says. "Graphics are usually
the first thing to get diluted (reduced bit depth) or cut altogether, but
you'll achieve a visually richer game if you can reduce classes,
obfuscate, or use other tricks to get the actual memory usage down and max
out the graphics footprint."
Developers of the world: Don't count on
the emulator Loia believes that developers shouldn't rely
too much on the emulator, but should instead test early and frequently on
the device itself. Loia claims emulators are notorious for emulating
everything but the device, including performance, memory, UI, and even
network restrictions.
"Our first experience with BREW and J2ME was in 2001 before the devices
were even available to developers," recalls Loia. "We plowed along
creating waves of games on the emulator and were promised the specs on the
devices were matched perfectly on the emulator. Not so... we ended up
deleting levels in the games, characters, animation sequences, sounds --
just about everything but the main menu."
That said, developers should also be aware of the newer devices, which
according to Loia, don't always mean better performance and better memory
capabilities. "In many cases, they mean prototype bugs in the OS (memory
leaks, buggy implementations of HTTP, and so on) get shipped in the
devices and the developer is left to come up with a last minute workaround
for a known bug on the device."
The Wireless Challenge The
proliferation of devices that all work differently (slow chips, small
screens, jar limits, low heap, low RMS, the list goes on) is a challenge,
Loia says, that faces all wireless developers, whether they are building
commerce applications or side-scrolling games. Trying to keep up with them
all is a nightmare, so Loia tries to maintain for each platform a few
workhorse devices that he knows through and through.
"Remember that the primary purpose of the device you're working on is
voice communications, aka a cell phone, so the gaming apps take a back
seat to some of their OS-driven behavior (incoming phone calls, calendar
alerts, loss of data service, low-power backlight mode, for example)," he
says. "Your app will be held hostage to a number of interruption scenarios
that you will need to handle gracefully for your app to be shipped and, in
some cases, certified by the carrier."
Loia's greatest success as a wireless
developer Loia relates being asked to do sequels of
previously released titles based on the successes of the
originals. "It's a good feeling when we get a good review of a game
we've released," he says. "It's a GREAT feeling when the sales numbers
warrant a sequel."
Killer multiplayer
applications Loia says that Lavastorm's killer apps are
mobile multiplayer games, which allow mobile gamers to compete
head-to-head. "Where others in the mobile gaming arena are claiming
that networked high scores are "multiplayer", we've spearheaded true
multiplayer technology so mobile gamers can actually experience the real
thing," boasts Loia. "Masking the latency for real-time head-to-head play
is a monster challenge when you're talking 1 sec UDP latencies and 5- to
20-second (that's right -- twenty) HTTP latencies." Loia advises
mobile developers interested in creating multi-user/player applications to
start by sending world delta updates only, then getting creative with some
AI-bots and a few dead-reckoning techniques on steroids (that is, have
your Bot take over for your human opponent while you wait for a message
update, smooth the updated position, and prioritize your messages based on
the importance of the message type).
In conclusion: the business
model Mobile games generate revenue through purchase,
subscription, and network services, confirms Loia, adding that carriers
are even supporting token-based (arcade) models whereby you purchase X
number of tokens for so many plays in a games arcade. "The list of game
services that can be provided and ultimately monetized is endless
(location-based multiplayer tournaments, level upgrades, character
upgrades, tradables, digital objects, real-world sports stats, uploads to
the AI, character training for cross-platform gaming, etc.). As the game
quality of mobile phones closely approaches that of consoles, the big
giants of gaming will want to play, and when that happens, the mobile
gaming sector will skyrocket."
Tips and tricks "The
SDKs, unfortunately, don't do a whole heck of a lot to help you with
debugging tools", says Loia. "Here's a favorite among our developers at
Lavastorm that allows you to print debug messages to the screen while
you're developing the app. A very nice-to-have tool since the
download cycle to a device can be amazingly slow and you don't want to
waste time."
To do on-device J2ME debugging, try:
public void showDebug(String debug_info_you_want_to_see)
{
Alert a = new Alert("DEBUG", debug_info_you_want_to_see,null,AlertType.INFO);
a.setTimeout(Alert.FOREVER);
Display d = Display.getDisplay(this);
Displayable cd = d.getCurrent();
d.setCurrent(a, cd);
}
|
"This will pop up an on-device screen with your debug info, leave it up
until you press OK (or Timeout for some), then go back to whatever screen
or canvas you were at," says Loia.
Resources
- Check out the mobile entertainment coming from Lavastorm Engineering.
- Evolving with the
object-oriented database model (developerWorks,
November 2003) -- Whether it's game development or commerce development,
whether choosing how to store information in a database, or whether
choosing between flat files or object files depends on budget, as shown
in this article.
- The Mobile 3D Viewer is
already becoming popular in game development.
- Here's a bit of code to help when
working with WAP Browsers and stimulators (developerWorks, July
2002).
- There's also a tip on managing mobile
profiles (developerWorks,
September 2002).
- And finally, a tip on keeping track of bugs
(developerWorks, March
2002).
About the
author John Papageorge has
worked with some of the bigger names in the high-tech industry,
launching products and Web Initiatives for such companies as CNet,
Macromedia, NBCi, Sun Microsystems, and MSNBC. John launched the
groundbreaking CNet/Intel project Mediadome in 1996 and Macromedia's
Shockwave.com in 1998. He also created NBCi's Media Sharehouse in
1999. John has worked as a consultant to forecast and explore the
applications of Java technology for Sun Microsystems/Netscape's
iPlanet site. John is currently working on his latest venture,
Buzzphone, to create compelling voice-based fan club programs for
pop music, sports film, NASCAR, and celebrity chefs. This
patent-pending initiative has allowed Buzzphone to create
relationships with some of the world's hottest talent. He can be
reached at http://www-106.ibm.com/developerworks/java/library/john@mediaoverdrive.com. |
|
|