|
 |
|
Game developer Fishlabs and multiplayer service provider Exit Games created the world's first J2ME, 3D multiplayer games for GSM/UMTS phones - Robot Alliance , Motoraver , Cloud Commander and Speed Spirit . All four games will be available in June 2005 for Sony Ericsson K300i, J300i, K500i, K700i, S700i, K750i, D750i, K508i, K600i, V800, W800i and Z800i phones. |
"From the beginning we focused on Sony Ericsson phones as they are the clear leader in the 3D space with several Java 3D-enabled handsets already on the market in 2004 and Java 3D technology consistency in over a dozen phone models at the beginning of 2005," said Michael Schade, CEO of Fishlabs.
Harald Behnke, CEO of Exit Games, continues "All of our game titles are going to be distributed via various mobile operators in Europe, USA and Asia, allowing gamers to compete against each other via GPRS or UMTS networks."
Exit Games and Fishlabs started their cooperation in early 2004, strongly believing in the ultimate mobile gaming: 3D is the quality gamers simply expect and multiplayer makes the mobile medium unique. Exit Games / Fishlabs outline some lessons learned and share eight pitfalls encountered during the development of:
- Speed Spirit: Maximizing 3D performance
- Robot Alliance: Combining 3D and multiplayer
Speed Spirit: Maximizing 3D performance
Speed Spirit is their latest game. While riding in a luxury sports car on twisted coast roads through the picturesque landscape of the French Riviera you can enjoy outstanding graphics with an amazing depth of view and a car physics that makes you feel the driver seat. The multiplayer part is a straightforward shadow racing with global high scores.
Coming from PC games development (used to tremendous rendering power, a solid development environment and established workflows) first Fishlabs thought that it was simply impossible to make great 3D games on J2ME-enabled handsets, especially as Mascot Capsule v3 engine does not support floats and z-buffer.
"But the closer we looked at the Sony Ericsson K700i and the deeper we got into Mascot Capsule v3, the more we understood that limitations on one hand can result in better performance on the other and can help you focus on the real assets in a great 3D mobile game," Michael explains.
|
Game concept When discussing true 3D games, first of all you actually have to think about the 3D scenery you want to create. You want the player to be completely immersed in the game, every item from the foreground to the background has to build a convincing virtual gaming environment. Now the challenge is to do this with only a few thousand polygons. The most crucial questions in the first step are the size of the level, how many props do you need, how close or how far things can get to or from the camera and which objects will occlude each other.
Pitfall 1: If objects get too close to the camera or occlude each other you will experience heavy clipping problems. Avoid long and small polygons and tessellate more accurately where necessary, even if this significantly reduces your poly budget. |
 | Pitfall 2: The near and far clipping plane of the camera is limited to a value of 32,768. Design levels carefully and check game play with proxies in a technical demo before starting the graphic design process.
Graphics Once the polygon count is done, you have to balance the textures budget very carefully. Of course they go hand in hand with the polys but because textures have the greatest influence on file size, make sure you can reuse every pixel several times but without creating an environment that looks all the same in any corner. A good sense of lighting, color, brightness and contrast is even more important than it is in 2D game development because textures will be seen in different sizes, angles and places in a 3D game.
Pitfall 3: Large textures require a lot of heap memory which is still very limited on common handsets. Keep in mind that all bitmaps, no matter which color depth, are converted internally to RGB and consume more memory.
Programming In a 3D game there are a lot of math calculations, including rotation, position and scaling which have a tremendous influence on the overall performance. The programmer needs to shift all calculations as Mascot Capsule v3 only supports integer calculations.
Pitfall 4: Don't use performance killing multiplications and divisions inside your rendering loop. Instead use the shift operator when dealing with integer values:
int a = ((b*c) >> 12); The shifting of 12 bits here reflects these circumstances, that "4096" represents "1" in the Mascot Capsule v3 Engine. Pitfall 5: For example when dealing with rotations, don't use the modulo-Operator because it costs too much performance. Better use a bitmask of 4095 if you have to map your angle inside the 4096 range.
int a = b & 4095; In conclusion, not only is the rendering a performance-killer, but you also have a look at your mathematical process.
Porting While porting in 2D mobile game development is a big issue, in the 3D space you have the opportunity to support more than a dozen Sony Ericsson handsets, ranging from 128x128 to 240x320 screen resolution, with just one JAR file.
Pitfall 6: Don't stick to a 2D game development workflow. Implement a dynamic interface with relative screen coordinates and scalable graphics. That saves a lot of work!
"Sony Ericsson Developer World did a great job with direct support, helping us get the most out of their handsets and provided us with prototypes at an early stage," Michael said. "Check out the very useful hints and tools we got at www.SonyEricsson.com/developer."
To be even faster and more flexible in 3D game development, Fishlabs build their own 3D game engine ABYSS . The engine was designed for maximum performance and is platform independent to support other technologies like JSR-184, Symbian OS, BREW and MS Windows mobile by end of 2005. Fishlabs also built a level editor in 3DS MAX and other special tools to optimize the workflow and minimize level design efforts.
Robot Alliance: Combining 3D and multiplayer
| Robot Alliance is a 3D mobile massive multiplayer ego shooter game. It leads a vast community of players into an ever continuing battle between two robot races fighting for predominance over the earth. The player has to join one of the alliances and contribute to its victory. With a huge variety of sceneries and animated 3D-characters, as well as various tactical components, Robot Alliance combines fast 3D shooter action with strategic game play and turns the player's handset into a mobile video console. |
 |
 |
|
Game play With its asynchronous massive multiplayer game play, Robot Alliance allows thousands of gamers to play together, even in high latency mobile networks, while offering instant 3D first-person shooter action while keeping traffic moderate. The online meta-game play of the planetary battle between two robot alliances offers tactical elements and ingame communication. Players from both alliances view the current status of the planet sectors (see planet screenshot) and select which area they want to defend or attack. The levels are played versus local Artificial Intelligence (AI), while the AI behavior and strength directly depends on the sector's dominance status. Only teams of players can capture complete hostile sections, and only the best players will manage to win commandos in clearly dominated territories. Therefore, players can call or command others to play certain areas of the planet in order to win as many sectors as possible.
|
 | Pitfall 7: High latency does not mean low fun. Initially driven by network latency, asynchronous massive multiplayer game play is a great fit for the daily phone usage of many gamers out there – play often, but relatively short periods of time. For inspiration on game play design Exit Games recommend Ian Bogost's essay "Asynchronous Multiplay: Futures for Casual Multiplayer Experience">>
Programming All multiplayer development was based on the Exit Games' Neutron multiplayer service, which offers a SDK, managed middleware and offers Java billing integration via mobile operators. The main technical issues with Robot Alliance were to balance 3D with network performance.
Pitfall 8: Plan for HTTP connectivity and 3-4 second latency in case you go for a global rollout. Don't dream about TPC/UDP because many mobile networks / gateways don't support it yet. And as 3D rendering takes up a lot of processor capacity, carefully manage online connectivity with game play situations where minimal rendering is required.
Summary and outlook
"It has been a great experience to create mobile entertainment 'on the edge'. Phones and tools are really ready for prime time, as you'll see if you play our games on Sony Ericsson's phones," Michael and Harald conclude.
"After finishing these initial titles, our new projects will include near real-time 3D game plays via 3G networks and asynchronous massive multiplayer games with server based worlds. In order to achieve really high-performance Java 3D game-play, we will be looking forward to future hardware-accelerated phones on the market."
About Fishlabs and Exit Games:
|
Fishlabs With its line-up of 3D titles and its proprietary 3D mobile games engine ABYSS, the Hamburg, Germany-based enterprise Fishlabs is already one of the leading developers for mobile 3D entertainment. Fishlabs cooperates with partners such as Sony Ericsson and Exit Games, a middleware provider for mobile multiplayer games, and is significantly involved in shaping the future of mobile entertainment software. Fishlabs has released already four of ten groundbreaking 3D mobile games in 2005, thus further strengthening its position on an international level as well. More information>> |
|
Exit Games
Exit Games is a leading service provider for mobile entertainment software. Its core product Exit Games Neutron connects mobile gamers all over the world. The open multiplayer solution is based on the OMA Games Service industry standard, co-developed by Exit Games. Clients and partners of Exit Games are world market leaders such as Com2uS, Kuju Wireless, Vodafone, T-Mobile, Orange or Sony Ericsson. VC-financed Exit Games has offices in Hamburg, Germany and San Francisco, CA, USA. More information>> |
|