15 September 2005
       


If one half of the actual production of a cell game is art assets, the other half which actually executes and implements the game is coding. This constitutes of functionality and AI (Artificial Intelligence).

The J2ME team at Paradox Studios

Application size limitation:
There is a cap on the file size for mobile games. This could be either due to device limitation or carrier limitation (for OTA download).

Heap memory limitation:
Heap memory is the runtime memory available for an application to run. It is generally very low for mid-end and low-end devices. Due to this, issues like fragmentation occur, which make it difficult for a game to hold more assets. This affects both game quality and gameplay.

Processor speed:
The processors in mobile devices are relatively slow, this ends up significantly affecting the speed and responsiveness of a game. To get a better output, complex calculations need to be avoided during runtime. Instead, programmers have to use other optimization techniques like approximation arrays and tables to achieve high speed.

"While writing the code, we target the hi end devices first, this enables us to give the game its full features, along with all the eye candy and sound fx" said Jaideep.

Even as we target the hi end devices first, at the same time we have our definitions ready for all devices. As opposed to first writing code for a low end device, this approach works better because it helps increase our productivity and efficiency" he added.

"Besides coming down to a lower device is easier than scaling up once the base code is created." he added.

Mobile game developers define a set of devices as Goldmaster devices, Paradox has a defined set which comprises of 3 handsets each for Brew and J2ME. Once the code is tested on the Goldmaster, they begin porting to the other devices.

" While porting we have options like outsourcing the work to porting houses but then that would limit the involvement of our proprietary code" shared Jaideep.

Paradox Wireless Manager Jaideep Hotha

While working on Van Damme Kickboxing the team began with a proto (Alpha) which staged a fight with one opponent. Once this was cleared the team used the same base engine to define functionality for the other enemies. The defined AI for each character however had to be specifically created.

During the development phase there are many code modules that are used for prototyping the game. Apart from this, there are some redundant or repetitive modules in the code. After the alpha version is ready, the redundancy is removed by modularising the code. In case of Van Damme Kickboxing, a different approach was used – The file size was reduced by using the body-part technique. Here, the character animation frames were created by segregating different body parts; each frame was constructed using six parts viz., head, torso, left hand, right hand, left leg and right leg.

The advantage of this technique was that the common body parts from many frames could be eliminated. This reduced the file size, allowing for a few more key frames to be included, which helped in creating smoother and more detailed animations.

Speaking about the challenges in Van Damme Kickboxing Jaideep and Amit Suri shared,"We had 2 main challenges for Van Damme Kickboxing. One was the inclusion of as many enemies and the other was maximum possible game modes to help increase gameplay.

To achieve this, the body-part technique was used, (already explained above). Another smart solution was the usage of similar torsoes for 2 characters while any one element such as head gear or color of trousers etc was modified to create a new different character. The same sets of legs, torso and hands were used for Van Damme and Tornado, an opponent. Another technique of palette swapping was used to get variation in colours of the characters’ attires"

Dirty Rectangle Technique
"The other challenge was the constantly changing backgrounds and environments for variety. This was achieved through the Tiling technique, which despite being highly efficient, was processor intensive. To deal with this, the ‘Dirty Rectangle’ technique was used, where instead of rendering the entire backdrop every time, a few selected modified tiles were rendered"

System Fonts
Elaborating more on the techniques and approach involved, Jaideep and Amit stated,"There are two code modules, which have to be modified in porting a mobile game. These are the modules concerning The graphics for different screen size and The game speed for a different processor"

"Usually, the co-ordinate values used in Paint (a Rendering module) are soft coded and all the co-ordinates are calculated from the screen resolution (Width x Height) of the handset. The parts that give trouble in porting are the text displays – messages, score and help" the duo continued.

"For Van Damme Kickboxing, the coding team faced a problem in porting the game for low-end devices like Nokia S40, S30 and Kyocera SE 47, which have very low heap and jar size. The team had to cut down on the number of enemies and backdrops for these ports, maintaining the gameplay by not compromising on the combat moves" they further added.

Some of the other challenges that the programming and coding team faced were

1. Collision Detection
This was one of the most important modules of Van Damme Kickboxing. The ‘Rectangular Collision’ technique was used for collision detection and was enhanced upon by detecting collision between body parts. Key frames of animations were mainly considered for collision detection.

2. Sound Synchronisation
The sound effects had highly improved the gameplay of Van Damme Kickboxing. Sounds for pain and moves were implemented brilliantly. The pain sounds were played during body collisions and so on. Synchronisation was tackled by using device-specific APIs. The volume of the sound could also be controlled using this API.

All this for the functionality, now we move to the AI...

*(Animation 'xpress case studies are now enabled with Text Tips. Hover your mouse over a technical term to read its definition. All Text Tips are highlighted)

                      The Development Life Cycle
 
 
 
  Back to intro

 
 
Animation 'xpress is an Indian Television Dot Com publication.
© 2001-2005 All Rights Reserved

www.indiantelevision.com