Professional Documents
Culture Documents
Design and Development of 3 D Mobile Games
Design and Development of 3 D Mobile Games
Design and Development of 3 D Mobile Games
net/publication/232639663
CITATIONS READS
7 1,978
5 authors, including:
Some of the authors of this publication are also working on these related projects:
Data Analytics for Real-Time Disease Outbreak Management and Surveillance in Mauritius View project
All content following this page was uploaded by Leckraj Nagowah on 08 July 2016.
Abstract -A major issue arising nowadays is the lack of the possibilities for building a game which can simulate a
entertainment due to up-going level of stress. In this era of virtual reality. However, 3D mobile games require higher
technology, where mobile has become more of a necessity than performance, resolution and memory on the handset [3].
a luxury, a new form of distraction has taken birth, that of Development time and number of resources needed can
mobile games. Mobile games are one of the primary
entertainment applications at present. These games provide a
be twice or even thrice more than that needed for a 2D
means of relaxation and help to draw users’ attention away from game development project. There are also new required
routine tensions. However, mobile game development is more skill-sets, compared to simple 2D mobile games, in terms
difficult than desktop application development because of scarce of graphics design and network communications.
resources. Performance is one of the critical requirements for
mobile games. With the advancement in technology, mobile II. RELATED WORK
multiplayer games have started to evolve. This paper discusses
This section gives a brief overview of the mobile
about 3D mobile games development for both single player and
multiplayer and also evaluates two different APIs namely MIDP
game trends during the last decade.
2.0 GAME API and M3G API.
Nokia developed the first mobile game, Snake in 1997.
Keywords- 3D games, mobile games, MIDP 2.0 game API, The game became surprisingly popular and was
M3G API permanently installed on the phones [3]. Few years later,
mobile phones were equipped with color screens and
I. INTRODUCTION downloadable Java games. The games started to be more
Modern mobile phones are like small computers, innovative and in 2001 some of the best WAP games such
with limited processing power, but are one of the most as “Lifestylers”, a casual turn-based WAP game, was
powerful compact devices available for mobile computing developed by Picofun and “Wireless Pets” was published
purposes. A recent study carried out by ITU (International by Digital Bridges [4]. Nokia introduced its N-Gage
Telecommunication Union) shows that by the end of platform and wireless online gaming with N-Gage Arena
2008, mobile penetration has almost reached 50 percent; in 2003. The first 3D games were being released in Japan,
about 4 billion mobile subscribers worldwide while ten with titles such as “Ridge Racer” mobile game. On the
years ago it was close to zero and the number is growing other hand, during the same year JAMDAT released
annually [1]. This indicates that mobile phone is one of “Bejewelled Multiplayer”, a multiplayer version for the
the most widespread devices available today. famous popular Bejewelled which was a killer stroke at
Mobile games are one of the fastest growing segments of one time [4]. The “World of Legend” is the first network
the game industry. Recent advancements in mobile games game embedded on mobile phones released in 2005 by
include single player, multiplayer and 3D graphics. With Nokia, which marks the official debut of network games
the advent of new mobile phones with network for mobile phones. Other striking popular games such as
connectivity capabilities, multiplayer games are quickly “Downtown Texas Hold 'Em poker”, one of the first poker
finding an audience, taking advantage of the ability to game, developed by Downtown Wireless was released in
play against other people. Primarily geared for voice data, the same year [5]. In 2006, I-Play released “The Fast and
mobile phones can send and receive other kinds of data as the Furious - Tokyo Drift” game which made big hit [6].
well. This ability to share information offers an In 2007/8, Nokia introduced a new version of N-Gage. It
opportunity to design games where players can interact was released with some excellent games such as “Reset
with others [2]. Generation”, “Metal Gear Solid Mobile” and “ONE”.
Moreover, the introduction of 3D in mobile games With the arrival of Touchscreen iPhone, developers were
development has become a major challenge. 3D able to sell their games directly to consumers without
development provides a greater means of expression and having to deal with publishers and operators [7].
120
movement of players within a particular region or F. Position Tracking
determine whether an object has been intersected. Position tracking goes in pair with synchronization. It
In 3D applications, the M3G API makes use of the ray enables the application to keep track of the players’
intersection class for collision implementation. Rays are position. The dead reckoning technique can be used for
casted through groups of objects and intersections with calculating the players’ present position from a past
objects are calculated, together with the distance where position and their velocity since, rather than from physical
the collision occurred. For most 3D games, this class is referents such as landmarks. With dead reckoning, clients
sufficient for collision detection. need to transmit only changes in the velocities of the
For MIDP 2.0 GAME API, collision detection is moving objects. The exact position of each object is then
implemented by making use of the sprite collision method extrapolated from its last known location and velocity.
-collideWith(). It makes use of pixel based collision and This enables the game to be operated on limited
checks whether images/sprites overlap. bandwidth.
C. Graphics3D V. ARCHITECTURE DESIGN AND API
Graphics3D is a class in the M3G API for the rendering This section proposes a generic architectural design
of all 3D scenes. To render a scene with Graphics3D, it is for 3D mobile games development. The design illustrates
necessary to bind the Graphics3D instance to a target a system structure comprising of the logical layers of the
object which is generally a Graphics object. Then the game application along with the core functions associated
rendering of the world is done, and the target is released. to each of them. The architecture diagram in Figure 2 can
Otherwise, the Graphics3D instance cannot be bound to be accustomed to any single player game.
other object again and the buffers are not flushed.
On the other hand, MIDP 2.0 GAME API makes use of Single Player Architecture
the Sprite and LayerManager class for the manipulation of
graphics images. These images are stored as an ordered User Interface Layer
list of layers each having an index which indicates their
position front to back. The LayerManager is a class in
MIDP 2.0 GAME API which manages the display of Application Layer
image/sprite layers and the view window, hence
simplifying the game scene rendering process.
Figure 2. Logical Layers of the single player architecture
D. Friction
For added realism in motion game, a frictional component A. User Interface Layer
is essential for monitoring the acceleration and The User Interface layer encapsulates user-interactivity
deceleration of objects. This component can be functions for the game play. It allows a user to do specific
implemented in various ways depending on the equation actions according to specified game key states. Table 1
being used. A simple example would be the velocity shows the different functions in the User Interface Layer.
equation v = u + at which is responsible for the linear
increase of speed with respect to time until a maximum TABLE 1 USER INTERFACE LAYER FUNCTIONS
speed is reached. However for applications such as card Functions Description
or strategy game, this component might not be essential. processKeys() Performs different action according to the specified
game key states. For example if the user has pressed
the left button, the application will also make the
E. Synchronization
player in the scene move left.
Multiplayer games require a synchronization component paint() Is actually part of the Canvas class, which represents
to synchronize the game state of two or more players. an abstract drawing surface for graphics operation.
This enables the same game scene to be viewed by the drawWorld () Displays the current scene to the screen which
consists of the group of objects and the camera.
players. It allows the exchange of the position of players
among the different mobile devices. However, a B. Application Layer
hindrance to proper game synchronization is network The application layer consists of game initialization and
latency, which is the time between sending a request and game playability methods. In the M3G API, it will consist
receiving a response and this lag average to several of methods for loading m3g file containing the world and
seconds. For proper game play, the synchronization other objects required for the rendering and managing
component should be optimized to minimize network each object in the 3D world. It also has methods that
latency or even an AI component can be added in case of initializes the camera, updates the 3D world to a new state
network disruption to predict players’ positions. and handles collision. Alternatively, for MIDP 2.0 GAME
121
API, it will consist of methods used to load the graphics TABLE 3 APPLICATION LAYER FUNCTIONS
images and detect collision with other Sprites. Functions Description
The different functions in the application layer are shown startMultiplayer() When a connection with the server has been
in the Table 2. established, this method initiates the client
before starting to communicate together
TABLE 2 APPLICATION LAYER FUNCTIONS serverFound() Checks if the server has already been hosted
and will return true if it’s the case.
Functions Description runServer() Initializes the server.
init() Loads the m3g file containing the world and other runClient() Starts the client and thus establishes a
objects required for the rendering of the 3D world. connection between the two devices.
getObject() Fetches every individual object from the m3g file serverClient Acknowledges if a successful connection
according to their object ID so as to be able to ConnectionEstablished() has been established between the client and
differentiate each of them when the 3D world will be the server and displays the status of the
rendered. players.
initWorld() Renders the 3D world by creating the first part of the
track using every object that has been fetched B. Communication Layer
previously and it also initializes the camera.
updateWorld() Updates the 3D world to a new state. The communication layer is crucial for good
startApp() Loads the graphics images such as sprites by passing synchronization in multiplayer games. As the game
a newly created Image object into the Sprite
proceeds, at regular time interval, each player must see
constructor
append() Manages graphic elements such as sprites to create a the same scene and be at their respective positions on
complete scene by combining them together. each mobile phone. The game is synchronized by
getIntersected() Inbuilt method for M3G API provided by the ray message passing. Table 4 shows the different functions in
Intersection library which is used to check for the Communication Layer.
collision.
collideWith() Detects collision with other Sprites, Tiled Layers TABLE 4 COMMUNICATION LAYER FUNCTIONS
and Images.
winCheck() Is implemented based on the game rules to Functions Description
determine if the player has won or not getLocalDevice() Retrieves information about local device
resume() Stores the initial state of the game available
reset() Reinitializes all variables to start a new game DiscoveryAgent. Places the device into an inquiry mode and the
startInquiry() application should specify an event listener that
will respond to inquiry-related events.
Multiplayer Architecture
DiscoveryListener. Is called each time an inquiry finds a device.
Based on the layers and methods described above, an deviceDiscovered()
architectural design is now designed for multiplayer getDiscoverable() Gets information about the current discovery
games consisting of some additional methods which are mode of the Bluetooth device. It will return an int
specific for a multiplayer game. The user interface layer that is either NOT_DISCOVERABLE, LIAC, or
GIAC.
for a multiplayer game is similar to that of the single Connector.open() Parses the URI and returns a Connection object.
player game. readData() Reads from the Input Stream
writeData() Writes to the Output Stream
User Interface Layer
closeConnection() Closes the Connection when finished
122
cumulates the points obtained by the latter until the time VII. TESTING AND EVALUATION
limit is reached or the required points have been obtained. This section focuses on the testing and evaluation
The game then displays the best time or highest score. of the games which is critical to ensure that the
Collision detection has also been implemented in the applications work fine. The main factors that have been
game to prevent players to go beyond the track boundary taken into consideration for the testing phase are
and to cater for collision with some obstacles. Figure 4 performance, portability, responsiveness and 3D graphics
shows the snowboard application which has been amongst others. The tests have been carried out for both
developed with J2ME and tested on Sun Wireless Toolkit. snowboard and table tennis game.
Snowboard game
The snowboard application has been tested on several
handsets and the result is shown in Table 5. The game
was tested for a time period of 20 seconds and the average
distance covered on the track is also listed in Table 5.
TABLE 5 SNOWBOARD GAME SPECIFICATION SUPPORT
123
snowboard game M3G API is supported only on
handsets which support MIDP 2.0 and CLDC 1.1.
• Camera View: It is easy to setup different camera
positions due to camera class provided by M3G in
snowboard game. Alternatively a single position
camera has been implemented for the table tennis
application.
VIII. CONCLUSION AND FUTURE WORKS
In this paper, we evaluated two different APIs
namely MIDP 2.0 GAME API and M3G API for mobile
games development and our approach can be adapted to
different mobile games that have similar features or
scenarios. We believe that there are still many
improvements that can be made to both games. For the
snowboard game, one of the major enhancements is
allowing players to select different snowboarders with
different characters and choose tracks to race. Moreover,
the multiplayer version of snowboard can be developed.
For the table tennis game, different tables and rackets can
be made available to the gamer as a choice before
launching the game. The graphics can also be enhanced in
Figure 6. User Evaluation of snowboard 3D and table tennis 3D
order to perceive the player instead of seeing only the
rackets. Last but not least, a single player version of table
The evaluation of the two games has been done in terms tennis 3D which will include an artificially intelligent
of: player can be implemented.
• Performance: The snowboard application has a
fair performance on mobile devices due to REFERENCES
randomization which requires a lot of resources [1] International Telecommunication Union, “Measuring the
while table tennis application has a good Information Society, The ICT Development Index.” pp. 108, 2009.
performance on mobile devices. Available at: www.itu.int/ITUD/ict/publications/idi/2009/-
material/IDI2009_w5.
• 3D graphics: The snowboard application has a [2] Donald Wisniewski, Derrick Morton, “ Mobile Games White
realistic 3D environment implemented with trees Paper” , In Proc of the Game Developers Conference 2005 by the
and snow compared to table tennis which uses IGDA Online Games SIG, 21-2. Available at:
mostly sprites and quite poor to implement http://www.igda.org/online
[3] Forum Nokia, “Introduction to Mobile Game Development
realistic 3D environments. Version 1.1"; January 2003
• Collision Detection: Collision detection is quite [4] Tommi Pelkonen, “Mobile Games E-Content Report 3”,
complex to implement for both application but Anticipating Content Technology Need, E-Content Report Series,
however, it lacks accuracy when implemented for 2004”. Available at http://www.acten.net/cgibin/WebGUI/www/-
index.pl/mobile_games
M3G API which makes use of Ray Intersection [5] Levi Buchanan , “Downtown Texas Hold 'Em, Review. The big
class compared to MIDP 2.0 GAME API which poker craze sweeps your handset”, May 2004. Available at :
uses collideWith() method, used to detect http://wireless.ign.com/articles/512/512400p1.html
collision with other Sprites, Tiled Layers, and [6] Mike Abolins, “The Fast And The Furious. Tokyo Drift (3D)”,
2006. Available at: www.pocketgamer.co.uk/r/Mobile/The+Fast-
Images. +and+the+Furious.+Tokyo+Drift+(3D)/review.asp?c=1238
• Randomization: M3G API is very good at [7] Peter Cohen, “Metal Gear, Silent Hill games for iPhone”
randomization as for the snowboard application, ,December 2008. Available at: www.cio.com/-
obstacles and flags are at random positions while article/471479/Konami_announces_Metal_Gear_Silent_Hill_game
s_for_iPhone
for the table tennis most objects positions are [8] Shwetak N. Patel and Abowd, G.D., “Beyond Mobile Telephony.
already defined and MIDP 2.0 GAME API does Exploring Opportunities for Applications on the Mobile Phone
not support randomization. Handset”, GVU Tech Report, August 2003.
[9] FORUM NOKIA , “Mobile Game Graphics – Overcoming the
• Interactivity: For both applications, it is easy to Small Screen Challenge Version 1.0”; January 16, 2007.pp.5
interact with the game by using different keypad [10] Gerhard Schwabe, Christoph Goth, “Mobile learning with a mobile
controls and the latter responds accordingly. game. Design and motivational effects”, Journal of Computer
• Portability: The table tennis game is supported by Assisted Learning, Vol. 21, No. 3, June 2005, pp. 204-216.
nearly all java-enabled handsets while for the
124