The MIDlet has been made to look as finalized as possible. It has all the basic views: splash screen, start menu, settings, and game screen. The game screen shows a top-down view of a car on a simple track. There are three tracks to choose from. The game monitors lap time and the number of laps, and displays the best lap time. There is a speedometer on the bottom-right corner. The car slows down when driven off-track.
Figure: Different views of the game
Playing the game is simple. When the game is started, there is a three-second wait before driving starts. This is indicated with the "3, 2, 1, GO" graphics. These also appear if the game is paused because the user receives an incoming call or the screen saver is activated.
Touching the screen and dragging to left or right turns the car. Pressing 7 on the keypad applies gas. The car does not turn unless the user presses gas. Pressing 0 on the keypad shows the driving instructions. In the top-left corner is a Menu button that ends the game and returns the user to the start menu.
Beyond standard MIDP 2.0 APIs, the MIDlet only uses the Gesture API. The MIDlet code is structured so that it is easy to port the game to both touch and non-touch devices without the Gesture API.
The MIDlet design takes into account the following key points to consider when developing a Java ME game for the Series 40 platform:
Series 40 devices are generally much slower than Symbian devices. This means you have to do a lot of threading to avoid stuttering.
If you have to perform trigonometric calculations, try to precalculate as much as possible so that when the game is running, everything is already calculated and all you have to do is assign values.
The heap memory on Series 40 devices is limited, so the bigger the resolution of your images, the more memory they consume. For example, the track size limit for this game is around 600 x 600 pixels.
Series 40 devices impose a limit of 1 MB for the maximum JAR package size, which means that you have to adjust, for example, the level of detail in images and the quality of sounds to stay under the limit.
For information about implementing the MIDlet , see section Implementation.