-
05 - 07 - 2007
Final Thesis Technical University of Copenhagen
The department of COM
________________________________________________________________________
Bomb Hunter -- Final thesis report
Synopsis
BOMB HUNTER IS A LOCATION BASED MOBILE GAME. BY USING GPS
TECHNOLOGY AND GOOGLE EARTH MAP AS THE GAME BACKGROUND,
PLAYERS CAN PLAY THE GAME WITHIN THEIR CITY. THE GAME WILL
BECOME MORE VIVID AND FUNNY.
Supervisor: Michael Rose
Participant: Student number: Signature:
YuQin Cao 041451
ZhiQiang Sun 041450
-
- 2 -
Content Page
Acknowledgements
---------------------------------------------------------------------------------------------------------
6
Chapter 1 Introduction
---------------------------------------------------------------------------------------------
7
1.1 Project Statement
----------------------------------------------------------------------------------
8
1.2 Project Schedule and Outline
----------------------------------------------------------------
8
Chapter 2 Mobile Game
Design-------------------------------------------------------------------------------
11
2.1 Game Scenarios Design
--------------------------------------------------------------------------
11
2.2 The System Structure
-----------------------------------------------------------------------------
12
2.2.1 Define the System Structure
--------------------------------------------------------- 13
2.2.2 The Data Exchange Protocol
-------------------------------------------------------- 14
2.2.3 Game Server
----------------------------------------------------------------------------------
15
2.2.4 Game Client
-----------------------------------------------------------------------------------
15
2.3 The System Specification
-----------------------------------------------------------------------
16
Chapter 3 Location-Based Mobile Game Market Analysis
--------------------------------- 17
3.1 Current Mobile Game Market Overview
-------------------------------------------- 17
3.2 LB Mobile Game Features
-------------------------------------------------------------------
20
3.3 Bomb Hunter Game Apply Google Earth Map
---------------------------------- 21
3.4 Analysis the Future Market for Bomb Hunter
----------------------------------- 22
Chapter 4 Location Technology
------------------------------------------------------------------------------
23
4.1 Cellular Positioning
--------------------------------------------------------------------------------
23
4.2 Indoor Positioning
----------------------------------------------------------------------------------
24
4.3 Satellite Positioning
--------------------------------------------------------------------------------
25
4.3.1
GPS--------------------------------------------------------------------------------------------------
26
4.3.2 GPS Service
------------------------------------------------------------------------------------
27
4.3.3 GPS Positioning
-----------------------------------------------------------------------------
27
-
Content
- 3 -
4.3.4 Galileo
---------------------------------------------------------------------------------------------
30
4.3.5 BH Design Based on
GPS--------------------------------------------------------------
31
Chapter 5 Define the System Structure and the Transfer
Protocol---------------------- 32
5.1 Comparison and
Choice--------------------------------------------------------------------------
32
5.1.1 How to Get the Location
Information------------------------------------------ 32
5.1.2 Choose the Proper Geographic
Map-------------------------------------------- 33
5.1.3 Modified the System
Structure-----------------------------------------------------
35
5.2 The Transfer Protocol
----------------------------------------------------------------------------
35
5.2.1 The Area List Data
Scheme-----------------------------------------------------------
36
5.2.2 The Game Scenario Data
Structure---------------------------------------------- 36
5.2.3 The Puzzle Data
Structure-------------------------------------------------------------
37
5.2.4 The Top Ten Score Data Scheme
------------------------------------------------- 38
Chapter 6 Mobile Client Application
Design----------------------------------------------------------
39
6.1 Application
Flow-------------------------------------------------------------------------------------
39
6.1.1 The Game Scenario
Analysis-------------------------------------------------------
39
6.1.2 Flow Design
----------------------------------------------------------------------------------
39
6.2 The Game Client Class
Structure--------------------------------------------------------
41
6.3 Interface Design
---------------------------------------------------------------------------------------
44
6.3.1 Screen Design
-----------------------------------------------------------------------------------
45
6.4 Game Background Map
----------------------------------------------------------------------------
49
6.4.1 Map the GPS Coordinate to the
Images--------------------------------------- 49
6.4.2 Google Map
------------------------------------------------------------------------------------
51
Chapter 7 Mobile Client
Implementation---------------------------------------------------------------
56
7.1 Module and Relationships
---------------------------------------------------------------------
56
7.1.1 Modules Implementations
------------------------------------------------------------ 56
7.1.2 Relationships of the Modules
------------------------------------------------------ 62
7.2 Game Component
----------------------------------------------------------------------------------
63
7.2.1 Map Implementation
---------------------------------------------------------------------
63
7.2.2 Sprite Implementation
------------------------------------------------------------------
65
-
Content
- 4 -
7.2.3 Make Transparent Image for Sprite
------------------------------------------- 66
7.2.4 Sprite
Animation----------------------------------------------------------------------------
67
7.2.5 Sound Effect
-----------------------------------------------------------------------------------
69
7.2.6 Score Counting Rules
-------------------------------------------------------------------
69
7.3 Complement
--------------------------------------------------------------------------------------------
70
7.3.1 Text
Drawing----------------------------------------------------------------------------------
70
7.3.2 Using Buffer to Avoid Screen
Flick---------------------------------------------- 70
7.4 Interfaces Implementation
--------------------------------------------------------------------
71
Chapter 8 Game Server Design
------------------------------------------------------------------------------
75
8.1 Game Functions
Specification---------------------------------------------------------------
75
8.2 Game Server Analysis
---------------------------------------------------------------------------
76
8.3 Game Server
Design-------------------------------------------------------------------------------
78
8.3.1 Game Server Database Structure
------------------------------------------------ 79
8.3.2 Web Page Prototype and Web Site
Map-------------------------------------- 82
8.3.3 How to Maintain the Game Data
------------------------------------------------- 83
Chapter 9 Game Server Implementation
---------------------------------------------------------------
87
9.1 Web Page Implementation
--------------------------------------------------------------------
87
9.2 Web Page with Form
-----------------------------------------------------------------------------
88
9.3 Game Area and Scenario Editor
---------------------------------------------------------- 89
9.4 The Pages for the Game Client
-------------------------------------------------------------
93
Chapter 10
Testing------------------------------------------------------------------------------------------------------
95
10.1 Testing
Strategy---------------------------------------------------------------------------------------
96
10.1.1 Game Server Test Plan
---------------------------------------------------------------
96
10.1.2 Mobile Client Test
Plan---------------------------------------------------------------
97
10.1.3 System Test
Plan---------------------------------------------------------------------------
98
10.1.4 Playability Test
Plan--------------------------------------------------------------------
98
10.1.5 Playability Test Plan
-------------------------------------------------------------------
98
10.2 Test Result
----------------------------------------------------------------------------------------------
99
-
Content
- 5 -
10.2.1 Game Server
Test-----------------------------------------------------------------------
99
10.2.2 Mobile Client Test
----------------------------------------------------------------------
100
10.2.3 System Test
---------------------------------------------------------------------------------
101
10.2.4 Memory Cost Test
----------------------------------------------------------------------
102
10.2.5 Playability Testing
----------------------------------------------------------------------
103
10.3 Test
Conclusion----------------------------------------------------------------------------------------
103
Chapter 11 Conclusion and Future Work
Proposal------------------------------------------------- 106
11.1 Project
Review-----------------------------------------------------------------------------------------
106
11.2 Future Work
Proposal----------------------------------------------------------------------------
107
11.3 Personal
Achievements---------------------------------------------------------------------------
109
Appendix 1. Reference
-------------------------------------------------------------------------------------------------
110
Appendix 2. Testing Report
----------------------------------------------------------------------------------------
112
Appendix 3. The Mobile Client Source Code
------------------------------------------------------------
144
Appendix 4. The Game Server Source Code
-------------------------------------------------------------
194
(CD Attached)
-
- 6 -
Acknowledgements
The Location Based Mobile game --- Bomb Hunter Project has been
done at the
Technical University of Denmark (DTU) under the supervision of
Michael Rose and
Jakob Eg Larsen from the Research Center COM. We would like to
thank for their
good hints and helpful discussions along this project phase so
as to make us finish the
project on time.
-
- 7 -
Chapter 1
Introduction
In the start point, we have done some research to find the
project design idea for the
master thesis. We choose location based mobile game as our
project subject. We call our
game name Bomb hunter. The game inspiration comes from one of
our favorite Xbox
Game Spy Hunter. Certainly, Spy Hunter is neither a location
based game nor a mobile
game. In Spy Hunter, the player drives vehicle around the city
and performs different
missions. We think, if the game can combine the real world with
the virtual cyber space
together, players performing the virtual mission in the real
city would be a good
experience. Besides that, it is also a developing field for the
mobile game integrated with
the different kinds of location technologies. It attracts us to
implement one location based
mobile game within this master thesis period. So Bomb Hunter
pops up from our brain
storm.
After we discuss the design idea with our supervisor, we get
some good hints and guiding
about how to implement the whole project during the given
project period. In addition,
from the Internet, we found a Japanese mobile game [1], which is
called Mogi, the item
hunt from French company Newt Games. It uses the GPS functions
of the KDDI AU
phones and allows players to pick up virtual items spread on the
whole of Japan. Our idea
has the same principle as this. The difference is that we want
our game to be a shooting
and puzzle game. In the game, players can shoot some virtual
enemies along the real
streets. At the same time, they should solve or answer some
puzzles. We dont find the
same product from the current location based mobile game
marketing.
We do believe that we will learn more things from this project,
like mobile game
development, mobile game marketing, location technologies,
location-based service,
python programming language and so much more.
-
Introduction
- 8 -
1.1 Project Statement
Bomb hunter is a location based mobile game. The purpose of the
application is to
investigate how the location technology can be used in mobile
game, how we can connect
a virtual cyber environment with the real world, how to extend
the game field from
indoor or in-computer area to outdoor / out-computer area. Along
the project process, we
will research mobile game market, the status of the location
based mobile game and the
current location technologies. At the same time, we will design
and implement a location
based mobile game - Bomb Hunter.
In our game design, there are three aspects, which are brand new
ideas. At least we
havent found who has done this before during our research.
First, we make useful of the Google Satellite Map which is as
the background
of the game. This makes the game connect the virtual world and
the real world
very well.
Second, we add the shooting scenario in our game. This scenario
is so common
in the desktop computer game, but seldom in the location based
game.
Third, in the game server, we implement a visual scenario editor
by using
Google Satellite Map, which is used to maintain and design the
game scenario.
This makes the administration job easier and clearer.
1.2 Project Schedule and Outline
The whole project includes three main parts. The first part is
about the project
investigation and research, which contains the game scenarios,
the game design ideas,
marketing analysis and the location technologies. The second
part describes the product
design, implementation and system testing. The last part summary
the conclusion and the
future work of the product. Based the project structure, we make
a detail time schedule to
control the project process in order to finish it within the
given time.
-
Introduction
- 9 -
The project outline is as following:
Chapter 1: Introduction
This chapter describes the basic game idea, the idea
origination, and the purpose of
doing such project. We also state the problems to be solved
along this period.
Chapter 2: Mobile Game Design
This chapter introduces the game scenarios and pops up the
design idea. Base on the
research, we will define the system structure.
Chapter 3: Location-Based Mobile Game Market Analysis
We make some researches about the mobile game market based on
the GPS location
technology. We analyze the location mobile game characteristics.
This Bomb Hunter
game applied for the Google Earth map as the game background. It
shows some new
vivid features which is not used by the normal traditional game.
At last it looks
forward a nice future among the mobile games market.
Chapter 4: Location Technology
In this chapter, GPS location technology will be discussed in
detail and the other
location technologies will be mentioned as well.
Chapter 5: Define the System Structure and the Transfer
Protocol
Comparing the research results, we make a last decision for our
system structure. The
system is the server-client mode. We analyze the information,
which will be
exchanged between the server and the client, and define some
protocols as the
conventions for the system.
-
Introduction
- 10 -
Chapter 6: Mobile Client Application Design
Design the game loop for the mobile client and construct a class
diagram to divide
functions into different sub modules. Furthermore, we explain
Google map principle
in detail and design the application interfaces.
Chapter 7: Mobile Client Implementation
This chapter, we implement each class module and specify the
properties, functions
for each class. All the game sprites have been designed here. We
specify the sprite
images, animations, sound effects, background map, and score
counting rules. In
additional, we complement some extra modules which are used to
fix some bugs of
the Pys60. At the end of the chapter is the client interface
implementation.
Chapter 8: Mobile Server Design and Implementation
In this chapter, we analyze and design the database structure of
the game server,
design the web site map, design the game scenario editor
interface.
Chapter 9: Game Server Implementation
We follow the design outline to implement the game server. One
of important
implementation is the game scenario editor. It realizes the game
scenario visual
editing purpose.
Chapter 10: Testing
We summary all the system testing cases and the testing results.
The tests include the
three levels function testing and the playability testing.
Finally, we draw a conclusion
for the testing.
Chapter 11: Conclusion and Future Work Proposal
The last chapter, we review our design process, the
implementation result and draw a
conclusion for the whole project. As an extension, we explain
how to improve our
game in several aspects in the future.
-
- 11 -
Chapter 2
Mobile Game Design
Bomb hunter is a location based mobile game. As a game, it is
better to have a
background story. Following the story, we can easy to imagine
some scenarios and
construct a game. This chapter we describe a game background
story first. Then, explain
the system structure.
2.1 Game Scenario Design
In 2010, one terrorist organization called COBRA will break down
the peace of Denmark.
COBRA has planned a series of terrors. Their notorious manner is
using bomb. Paul
Smith is pre-employed bomb specialist of FBI, fired as leaking
top secret to a laser
product company. Currently he is employed by COBRA. He is a key
bomb designer of
BOBRA. According to the information from the spy, there are
three different types of
bombs designed and launched soon.
Bomb type I: Normal Bomb - This type bomb can be eliminated by
shooting.
Bomb type II: Puzzle Bomb - Each puzzle bomb has been set a
puzzle. The
player must give a right answer to eliminate the bomb.
Bomb type III: Tiny Embedded Biologic Bomb.
This kind of bomb is embedded into the mouse body. This is very
headache
problem. The mouse can run everywhere in the sewer pip of city.
They inject
some special medicine to keep mouse life after embedded bomb.
This medicine
makes embedded mouse like to eat chocolate very much. This is a
good hint for
hutting them.
-
Mobile Game Design
- - 12 -
It should be careful of the bomb watcher. The watchers are
walking along the streets.
They prevent a bomb from being destroyed. Youd better take them
away before you
remove the bomb.
Another bad news, COBRA has installed some bombs in the downtown
area of the
Copenhagen. In order to make the affection as big as possible,
terrorists major targets are
metro, train station, sightseeing areas and downtown walk
streets.
Denmark Government organizes a team, Bomb Hunter, which has the
duty to find and
eliminate the bombs. The tasks of Bomb Hunter are following:
Find and eliminate bombs.
Take away all terrorists.
Every player is a member of the team. The task of a player is to
go around the
Copenhagen city and eliminate bombs and terrorists.
2.2 The System Structure We decide to make our system work in
the server-client mode. There are three reasons to
use this structure.
First, the mobile phone is a small device, which has small
memory size and slow CPU
speed. So, it is not good to put all modules and functions in
such a device. By adding a
server, it can share the part of the job load.
Figure2.1 Server Client Structure
Game Server
Mobile Client
-
Mobile Game Design
- - 13 -
Second, it is easy to update some game scenarios and contents.
When an application is
installed in the mobile phone, the application is somehow fixed.
For some applications or
games, it seems fine. But it isnt good for our game. We
mentioned above that a player
answer some puzzles to eliminate a puzzle bomb. If those puzzles
are kept the same every
day, the players will loss the interest soon. By adding a game
server, it is possible to
update puzzle frequently and arrange the bombs and the watchers
in different locations in
order to increase the game playability.
Third, the location is not the same for different players. Our
game is a location based
game. The players may live in different areas. Some players may
just want to play this
game in their local areas. In this case, it is better to have a
different game scenarios based
on the player local area. Also, it makes no sense to install the
whole Copenhagen area
game scenarios data into one phone which is only used the local
area data.
2.2.1 Define the System Structure
We have defined the basic structure is the server client mode.
Now, there are two key
issues we havent decided yet. One is how to retrieve the
location information. Another is
how to construct a geographic map. Those two factors are the
base of the location based
application.
How to retrieve the location information
In research process, we have investigated several location
technologies. From the
coverage point of view, we intend to use GSM or GPS technology.
About the choice,
we will decide after a further research around those two
technologies.
How to construct a geographic map
When we considered this issue, the first mind is the routing
used GPS map. Later, we
discarded this idea.
-
Mobile Game Design
- - 14 -
There were two reasons:
1) the most GPS map is copyright reserved and we couldnt find
free used GPS map.
2) GPS routing used map isnt as vivid as our expected in the
game. In the further
search, we noticed that Google earth [2] and Krak1 provide the
map information. The
Google can provide almost all the global earth map. The KRAK
focuses on the map
information of Denmark. Which one is our choice? The decision
will be drawn after
the further research and comparisons. At this moment, we define
our system structure
as Figure 2.2
Figure 2.2 the System Structure
2.2.2 The Data Exchange Protocol
When we define the server client structure, the coming issue is
how to exchange data
between the game server and the mobile client. So we need to
define a protocol to specify
the data exchange format between the game server and the mobile
client. According to
our programming experiences, XML is a good manner to specify
some data standard.
XML allows developers to set standards defining the information
that should appear in a
document, and with which sequence. XML, in combination with
other standards, makes it
possible to define the content of a document separately from its
formatting, makes it easy
to reuse that content in other applications or for other
presentation environments. Most
1 KRAK.DK a Danish map provider.
Game Server Google Earth or
Krak.dk
Smartphone GPS / GSM
Exchange information by
GPRS
-
Mobile Game Design
- - 15 -
important, XML provides a basic syntax that can be used to share
information between
different kinds of computers, different applications, and
different organizations without
needing to pass through many layers of conversion [3]. But,
using XML may cause the
other problems, 1) is there any XML parser for Python? 2) How
about the memory cost
for the mobile phone? We will do the further reaserch and make a
choice later.
2.2.3 Game Server
As we mention before, we put part of the job load into the
server. Currently the game
server is mainly used to maintain and store game scenario data
for the game client. When
the game client is launched, it will ask some updated
information from the server. We
choose to use a web server to implement the game server
function. There are three
advantages to do so.
First, it is simple to implement.
Second, the administrator can easily maintain the game server
data through a designed
web interface.
Third, as a game pulication place, players can get to know the
game and download the
game from the game server.
To construct the game server, we choose Linux based web server.
The server script
language is PHP [4] and the database is MYSQL [5]. Because they
are open source
software and free to use.
2.2.4 Game Client
Nokia mobile phone is our first choice. The reason is that the
Nokia phone support third
party software installation. It is easy to build a develop
environment in the Nokia phone.
Currently, there are three languages used in Nokia mobile phone
programming, C++,
Java and Python. We have some experience in using Symbian OS C++
[6] and J2ME [7]
for mobile programming. We feel that Symbian OS C++ is somehow
complex in use.
J2ME is a Java platform for mobile device; it is wide spread in
mobile phones, PDAs,
even TV set-top boxes. It is a good choice in mobile
programming. Bute, we choose the
-
Mobile Game Design
- - 16 -
Python as mobile client side programming language finally. One
reason is we want to
learn some new things. Another is we heard that Python is a very
rich language with
many features [8]; it has a clear and simple syntax; it is easy
to make program in a short
order. At present, there are three different Python versions for
Nokia S60 phone.
2.3 The System Specification
Review the system analysis; we summarize our system
specification as following:
The transfer protocol script format: XML or plain text
The game server type: web server
The server side script language: PHP
The server side database: MySQL
The web interface script language: HTML, JavaScript, CSS
Mobile phone and platform: Nokia, Symbian S60 OS
Mobile client side program language: Python (pys602)
Location Technology: choose between GSM and GPS
Geographic map: choose between Google map and Krak
Above, the location technology and the geographic map will be
decided after the further research.
2 Python for Nokia s60 system
-
- 17 -
Chapter 3
Location Based Mobile Game Market Analysis
Games are so attractive for the people all over the world. Games
have a very long history
since the human being has existed. People follow some rules to
solve problems and
puzzle when they play games. During the playing, games can
provide for the players
entertainment and relaxation. At the same time, people learn
skills and new knowledge by
playing. Today people enjoy playing too many kinds of games day
and night. Location-
based Mobile game is one of the games, which is a very young
phenomenon in the
history of the games. This project is a location-based mobile
game. First of all, the market
for this kind of game will be analyzed.
3.1 Current Mobile Game Market Overview
Mobile games are computer software games played on a mobile
phone, smart phone,
Personal Digital Assistant or handheld computer.
Mobile games may be played using the communication technologies
present in the device
itself, such as by text message (SMS), multimedia message (MMS)
or GPRS location
identification. More common are games that are downloaded to the
mobile phone and
played using a set of game technologies on the device.
Mobile games are usually downloaded via the mobile operators
radio network, but in
some cases are also loaded in to the mobile handsets when
purchased, or via infrared
connection, Bluetooth or memory card. Mobile games are developed
using platforms and
technologies such as Windows Mobile, Palm OS, Symbian OS,
Macromedias Flash Lite,
DoCoMos Doja, Sun Microsystemss J2ME, Qualcomms BREW (Binary
Runtime for
Wireless) or Infusios ExEn (Execution Environment).
-
Location Based Mobile Game Market Analysis
- - 18 -
Device limitation, business-model fluctuations and bandwidth
constraints hindered
innovation in all aspects of mobile game design in its early
years. In recently years,
mobile devices have developed from rudimentary mobile phones to
sophisticated mobile
computers with high-resolution multicolor displayers, high-speed
processors and several
megabytes of storage. Mobiles have so many capabilities that can
be used not only for
making phone calls and are also very attractive to be used as
mobile consoles for playing
games. The users remember clearly that Nokia introduced its
snake-game on its mobile
phone in the middle of 1990s as Figure3.1.
Figure3.1 Snake Game
Figure3.2 LB Mobile Game
After that, games become an essential part of mobile phones
regardless of manufacturer.
Figure 3.2 shows the location- based mobile games merge the
virtual and the real worlds
together. The current locations of the users become a part
session of the play. For
example, the online players have to catch the professional
players who run through the
real city streets. And the online players are equipped with a
mobile device for tracking
the runner and communication with the game server. Or the
players have to cruise the
streets of a city to collect virtually hidden treasures. The
mobile device indicates the
hiding places of the treasures on a map. The players have to
move to that place as soon as
possible before the other players find the treasures.
-
Location Based Mobile Game Market Analysis
- - 19 -
More recently, technological advancements have enabled to start
purchasing more games
on the mobile telephone networks.
Figure3.1.3 declares that the habits of playing mobile games
from the six different
countries. The detail investigation aspects with the
corresponding data percents show
that the current mobile game market trends:
Investigation aspects China Germany India Spain Thailand
United
States
1
The majority of the respondents play mobile games at least once
a week
73 % 70 % 96 % 77 % 83 % 79 %
2 The average session lasting (minutes) 18.6 27.8 38.9 21.6 28.9
30.6
3 Play at home 60 % 41 % 87 % 50 % 74 % 57 %
4 Playing while travelling/commuting 62 % 85 % 87 % 50 % 48 % 65
%
5 while waiting 41 % 54 % 41 % 40 % 79 % 57 %
6
Nokia's next generation mobile gaming option is preferred
68 % 68 % 68 % 52 % 83 % 49 %
7 Over Java 2D 18 % 12 % 14 % 12 % 7 % 12 %
8 Over Java 3D 26 % 20 % 17 % 36 % 11 % 39 %
9 Quality of graphics 77 % 85 % 93 % 74 % 94 % 74 %
10 Quality of sound 72 % 74 % 91 % 76 % 85 % 77 %
11 Get the games over-the-air 28 % 29 % 48 % 33 % 44 % 60 %
12 Get the games over-the-Internet 56 % 45 % 31 % 48 % 27 %
27%
13
Being given an opportunity to trial games before buying it
50 % 43 % 43 % 41 % 60 % 38 %
14
Paying for a full game outright is strongly preferred
40 % 79 % 49 % 83 % 69 % 68 %
15 Paying by subscription 50 % 17 % 36 % 11 % 19 % 28 %
16 Paying by the level 10 % 4 % 15 % 5 % 12 % 4 %
17 Play multiplayer games at least once a week 24 % 17 % 33 % 16
% 22 % 28 %
18 Interested in sending demos to friends 54 % 39 % 89 % 62 % 74
% 53 %
19 Likely to trial games sent by friends 66 % 73 % 92 % 81 % 86
% 74 %
Figure3.3 Exploring Worldwide Mobile Gaming Habits
3
On the revenue side, the mobile gaming market is expected to
generate nearly $2 billion
by 2011 in the United States and more than $7 billion globally.
Mobile gaming isn't as
big as traditional console gaming now but the mobile market will
eventually overtake the
console market. It has a big potential.
3 Evolution_Of_Mobile_Gaming_1_0_en.pdf
-
Location Based Mobile Game Market Analysis
- - 20 -
The recent study on wireless gaming reveals the extent of that
potential. The number of
mobile game purchasers is predicted to grow more than 16%
annually, reaching nearly 50
million customers by 2010. The price per mobile game is expected
to raise more than
$2.50.
Experts agree it will take a considerable effort to educate
people about mobile gaming.
The trend is to focus on educating consumers about mobile gaming
and double the size of
the market. Many people don't even know they have games on their
mobile devices.
It's about getting games to play on hundreds of different cell
phones. The customers
shouldn't have to worry about what handsets are playing the
games. Creating a mobile
culture is to get people to try games. The payoff is still a few
years away. Mobile gaming
is still in the early stage. It's not a huge industry and
expected to be an explosion and
ramp-ups in 2008 and 2009.
But preparing a game for launch doesn't happen overnight. It
takes three to four years
with 100 to 200 developers to build a game, so it's a huge
investment. It takes longer to
build a game than to film a movie.
And what makes a mobile game successful? The success of casual
games over mobile
phones is simple games, accessible, digestible and replay
able.
3.2 LB Mobile Game Features
Games played on a mobile device using location technology like
GPS are called
Location-based game. These are not only played on mobile
hardware but also integrate
the players position into the game concept. In other words:
while it does not matter for a
normal mobile game where exactly you are (play them anywhere at
any time), the
players coordinate and movement are main elements in a
location-based game. More and
more mobile phones with integrated GPS are expected to come.
External GPS receivers
are usually connected via Bluetooth.
-
Location Based Mobile Game Market Analysis
- - 21 -
The current LB Mobile Game is the most well-known example is the
treasure hunt game
Geocaching, which can be played on any mobile device with
integrated or external GPS
receiver. Besides Geocaching, there existed several other
location-based games which are
rather in the stage of research prototypes than a commercial
success.
When attempting to build location into games, the complexity of
location technologies,
the difficulties involved with integrating spatial data, and the
accuracy of consumers
location that are needed in various game situations should be
taken more consideration.
In addition, positioning technologies, such as triangulation,
GPS, and Cell-ID, each have
their own complexities, accuracies and latencies. Finally, the
choice of location
technology that is implemented often varies by carrier and
region of the world.
The location-based game market faces other substantial hurdles.
For example, GPS-
enabled games often require expensive mapping data, and a server
is required to provide
location information, so games are typically more expensive than
simpler titles. And most
location-aware games to date require substantial mobility on the
part of the user. They
cant play indoors, for instance, or even near streets behind the
tall buildings or in
crowded areas.
Along with the increasing inclusion of Bluetooth in devices
enables the easier integration
of GPS, the emergence of location platforms for mobile games
offers additional
opportunities. The whole mobile game markets are evolving
rapidly and becoming a true
business for the industry actors. Mobile games are one of the
key mobile content areas
and create profits for telecom operators as well as for their
publishers and developers.
The location-based games, which are as the new genre, of course
also attract so many
businessmen to invest. Its exciting future will bring more
entertainment to the players and
the world.
3.3 Bomb Hunter Game Apply Google Earth Map
After investigation, the project apply Google Earth map as the
game background. Google
earth is a powerful tool. There is a huge earth image database
in Google server. If we can
-
Location Based Mobile Game Market Analysis
- - 22 -
make useful it in our game, it can make game more fun and also
save a lot of work for us.
After research, we found some hint about Google map address and
retrieve method.
3.4 Analysis the Future Market for Bomb Hunter
Our project Bomb Hunter game design will give the players a new
outlook and exciting
playing experiences. It makes useful of the Google earth map,
the players can get
dynamic game environments based on where they are. The game
environment comes
from the real life and combines with the virtual game world.
This game situation will be
completely different from the normal mobile games. And also this
game design take full
advantage of the mobile aspect of what mobile phones are and
utilize the functionality of
what these handsets have. Based on this design, the project is
divided into the research
period and the commercial period.
For the master thesis part, it stands on the research
prototype.
-
- 23 -
Chapter 4
Location Technology
In the project, the bomb hunter game system is developed by
using the location
technology doing the positioning. Based on this point, the
related location-based
technologies and services will be introduced and discussed in
this chapter.
The criterion of the positioning classification considers the
type of the network in which
it is implemented and operated. So it is including cellular,
satellite, and indoor
positioning infrastructures, technologies and services.
Location-based Services (LBS) are
the services for providing information that has been created,
compiled, selected, or
filtered taking into consideration the current locations of the
users or those of other
persons or mobile objects. [9]
All the details will be talked about in the following
paragraphs.
4.1 Cellular Positioning
Mobile telephone becomes very popular in the modern society. It
is an important tool for
the people to use every moment. It makes the way of the life
more mobility and
availability.
Global System for Mobile (GSM) [10] communication technology is
one of the most
important technologies to be used for the mobile telephone
networks. The functionality is
to ensure acceptable quality of a call. The mobile phone is
called handover. Handover
transfers the call transparently from one stationary antenna to
another during the call,
when the quality of the transmitted data decreases. The primary
goal of a mobile
telephone network like GSM is that a subscriber having a mobile
telephone can make and
receive calls anywhere. To achieve this goal, some major
functions are required, e.g. call
-
Location Technology
- - 24 -
management and call processing, radio management, mobility
management, charging,
and security.
Cellular positioning refers to the mechanisms in cellular
networks like GSM for obtaining
the position of a subscriber. Basically, the procedures of the
location management can be
exploited for this. Actually, this is the principal way LBSs
work in todays cellular
networks. But using only location management for supporting
location based services has
some deficiencies, for example, insufficient accuracy and
inappropriate location formats
like cell and location-area identifiers. Thus, network operators
have considerably
extended their networks by introducing auxiliary components and
protocols in order to
perform positioning in a more appropriate, accurate, and
efficient manner. Usually,
operators of cellular networks tend to implement and run several
positioning methods in
parallel in order to improve availability and to deploy them
adaptively depending on the
user and service requirements, current network utilization,
migration aspects, and other
criteria.
4.2 Indoor Positioning
Indoor positioning focuses on a deployment in buildings, on
university campuses and
company premises. From its very beginning, it has been formed by
activities in the area
of ubiquitous computing and is often denoted by alternative
terms like location sensing. It
is based on radio, infrared, or ultrasound technologies with a
very limited communication
range. Indoor positioning is realized either by a stand-alone
infrastructure, for example,
as done in the Active Badge system, or in conjunction with
Wireless Local Area
Networks (WLANs) like IEEE 802.11. [11] In the former case,
targets are equipped with
proprietary tags or badges, which operate on the basis of
infrared, ultrasound, or Radio
Frequency Identification (RFID) technology, and which receive
pilot signals from or
transmit them to a nearby base station. If positioning is
integrated into WLANs, standard
components like PCMCIA cards and access points can be used. The
benefits of indoor
positioning are the low power consumption of the involved
devices and the
comparatively high accuracy because of the short range of
underlying radio or ultrasound
technologies. Unfortunately, there have been only proprietary
systems so far, in most
-
Location Technology
- - 25 -
cases developed in the context of research activities or
focusing on dedicated applications,
and standardization issues have not advanced or even started
yet. Thus, there is a lack of
open, well-specified systems that can be universally applied
like GPS or cellular
positioning.
4.3 Satellite Positioning
The Global Positioning System is a satellite-based navigation
system consisting of a
network of 24 orbiting satellites in six different orbital
paths. The satellites are constantly
moving, making two complete orbits around the Earth in just less
than 24 hours.
Each satellite is expected to last approximately 10 years.
Replacements are constantly
being built and launched into orbit. The satellite orbits are
roughly 25,000 kilometers
from the earth's centre, or 20,000 kilometers above the earth's
surface. The orbital paths
of these satellites take them between roughly 60 degrees North
and 60 degrees South
latitudes. This means that users can receive satellite signals
anywhere in the world, at any
time. As you move closer to the poles (on your next North Pole
or Antarctic expedition!),
you will still pick up the GPS satellites. They just won't be
directly overhead anymore.
This may affect the satellite geometry and accuracy but only
slightly. One of the biggest
benefits over previous land-based navigation systems is GPS
works in all weather
conditions. No matter what your application is, when you need it
the most, when you're
most likely to get lost, your GPS receiver will keep right on
working, showing right
where you are!
From May of 2000, Satellite Positioning started to be as
civilian use, including car
navigation, surveying, mapping and LBS etc.
Our project applies for GPS technology to locate the game
position. So this chapter will
introduce the GPS fundamental technology: GPS infrastructure and
devices, services,
signals and Galileo Satellites.
-
Location Technology
- - 26 -
4.3.1 GPS
Global Positioning System consists of three segments: the space
segment, the control
segment and the user segment.
The space segment normally contains 24 satellites which
circulate the Earth
every 12 sidereal hours on six orbits.
The control segment is responsible for monitoring and
controlling the satellites
of the space segment. It consists of five ground stations around
the world. All the
ground stations are Monitor Stations that are equipped with GPS
receivers for
monitoring and tracking the satellites. They control the health
of each satellite,
their orbits as well as the accuracy of their internal clocks.
The data measured by
these stations is then passed to the central Master Control
Station. This station
processes the received control data and calculates clock
corrections and satellite
ephemerid. Furthermore, it centrally coordinates all operations
concerning the
space segment, ranging from corrections of satellites orbits,
clock keeping, and
signal encryption. For each satellite a dedicated message with
control data is
assembled and returned to one of three Uplink Stations, which
then transmits the
control message to the respective satellite. These Uplink
Stations are collocated at
the Monitor Stations.
The user segment is the part of the GPS system, which most of
the users are
familiar with this segment. It is often simply equated with a
GPS receiver. Its
configuration actually depends on the application it is used
for. The areas of the
deployment are land, sea, the air navigation, surveying,
mapping, military
applications and, most important Location Based Service. For
LBSs, it is
including mobile marketing, community services, health care, and
navigation. A
key prerequisite for the mass-market introduction is the
availability of GPS
receivers that can be integrated into or at least attached to
mobile devices and that
have only low power consumption.
-
Location Technology
- - 27 -
4.3.2 GPS Service
There are two kinds of services by the GPS system: the Standard
Positioning Service
(SPS) and the Precise Positioning Service (PPS). The SPS is a
positioning and timing
service focusing on the civilian user. The PPS is a positioning,
velocity and timing serice
for military applications.
Accuracy Standard 95% Vertical error 95% Horizontal error
Global average < 22m < 13m
Worst site < 77m < 36m
Table 4.1 Positioning and Timing Accuracy Standard
The drawbacks of the current GPS location technology are like:
the high battery
consumption of receivers, high TTFF (Time to First Fix) values,
missing support indoors
and in close proximity to huge buildings that shadow the signals
emitted by the satellites.
4.3.3 GPS Positioning
GPS positioning comprises three steps: identification of
satellites, range measurements
and position calculation. [12]
Identification of satellites
The receiver must identify the satellites for the measurements.
The usual number of
satellites being in the visible horizon of the receiver is
typically in the range of 5 to 10.
The procedure used for identifying them depends on the state of
the receiver. If it has no
information about its last position and no almanac, it will take
as much as a few minutes
to acquire those data. This procedure is called cold start up.
On the other hand, if almanac
and last position are known, the receiver can perform a warm
start-up. Having this
information, it can roughly estimate the current satellite
constellation, which helps to
reduce the startup time. The most modern GPS receivers will give
you a positional fix in
10 - 20 seconds [13]. Finally, this time can be further reduced
if the receiver holds the
-
Location Technology
- - 28 -
valid ephemeris, which allows for calculating the current
satellite constellation very
accurately, and hence in most cases the identification procedure
can be avoided. This
procedure is called hot start-up. From all satellites identified
in this way, the receiver
selects a subset of at least four satellites that are actually
considered during the
measurements.
Range Measurements
There are different methods for measuring ranges in GPS.
The common procedure of conventional GPS receivers for SPS is to
apply code phase
ranging using the spread pilot signal on the L1 carrier
(1575.42Hz). On the other hand,
equipment designed for PPS uses code phase ranging on both
carriers (dual-frequency
ranging) and can thus adjust much better to ionospheric
refraction, which significantly
increases accuracy of the position fixes.
Figure 4.1 Range Measurements
Range measurements must be made to at least four satellites,
three for obtaining the
position in 3D and the other for time synchronization between
the satellites and the
receiver.
GPS receivers are equipped with low-cost quartz-crystal clocks,
which suffer from a
considerable drift against the very precise atomic clocks of
satellites. All measured
-
Location Technology
- - 29 -
distances between the receiver and the satellite appear to have
a range of 0300 km, since
the receiver cannot discriminate between different code
cycles.
Finally, it must be stressed that the main assumption for
performing ranging in GPS is
that there is a line of sight between the receiver and the
satellites. This is due to the fact
that the signals emitted by the satellites hardly penetrate
obstacles. While it is sometimes
difficult to derive position fixes even outdoors when staying
under trees and surrounded
by a number of large buildings, it is nearly impossible when
staying inside a building.
However, in recent times, receiver technology has progressed,
and hence modern
receivers with high sensitivity can even receive GPS signals
with a sufficient strength
inside buildings and interpret it. This method is also known as
Indoor GPS.
Position Calculation
If a GPS receiver get the position informations of four
satellites as figure 4.1. Then the
receiver can use equations (4.1-4.4) [14] to calculate the
position.
Figure 4.2 GPS Calculation
In the equation 4.1-4.4, there are four unknown parameters x, y,
z, tc. The x, y, z is the
position of the receiver. The other parmeters are known from the
reveivered satellite data.
There is also one constant value c is the speed of the light. To
solve those equations, the
receiver can get its position value (x, y, z).
-
Location Technology
- - 30 -
4.3.4 Galileo
According to the latest announcement, the schedule of Galileo
foresees to bring 30
satellites into the orbit from 2006 to 2008 and to start the
commercial operation of the
system around 2009. Galileo will be the Europes own global
navigation satellite system,
providing a highly accurate, guaranteed global positioning
service under civilian control.
Figure4.3 Galileo Satellites
The time plan for the Galileo is: [15]
The first Satellite launch -2005 (GIOVE-A)
The second Satellite launches -2007
4 satellites operational -2008 (EGNOS)
In-orbit validation -2009
Full 30-satellite constellation by 2011 (PPP)
(4.1)
(4.2)
(4.3)
(4.4)
-
Location Technology
- - 31 -
4.3.6 BH Design Based on GPS
After doing some researching about the location technologies,
the Bomb Hunter game
applies for the GPS location technology to locate the position
for the game players. By
making useful of GPS Technology and Google earth Map as the game
background, the
game will become more interesting and funny than the normal
traditional game. The
game environment can be also changed easily and according to
what the players want.
Between the players and the game, there is a game server to
store some information,
related data and control the game environment. After delivering
the project report, we
will continue to do the rest part of this game product until it
enters the commercial market.
Wish this product would attract more players and lead the
location game marketing.
-
- 32 -
Chapter 5
Define the System Structure and the Transfer Protocol
Last chapter, we have introduced some location technology. At
this moment, we
reconsider our original project design and make a choice in
location technology used in
project and. We also analyze the information exchanged between
the game sever and the
game client, then define a transfer protocol.
5.1 Comparison and Choice
This section, we will discuss and make the decisions in the
location technology selection
and the geographic map selection. Then we define the final
system structure.
5.1.1 How to Get the Location Information
In chapter 2, we have mentioned that there are a number of ways
to get the location
information, such as GSM cellular network, GPS, WI-FI network
and Bluetooth network,
even with RFID technology (we have introduce in above chapter).
Here, we simply make
a conclusion.
a) In case the coverage, GPS and GSM network is much large than
WI-FI network,
Bluetooth network.
b) In case the accuracy, GPS has best performance. But the
drawback is the extra
cost of the GPS receiver. Furthermore, the GPS doesnt work
indoor.
c) The accuracy in the GSM network location technology is varied
from hundred
meters to several hundred meters.
After investigation, we decided to use GPS instead of GSM which
is our original choice.
There are three reasons:
-
Define the system structure and theTransfer protocol
- - 33 -
1) It is difficult to get the GSM base station cell ID and
install address list, which
is a sensitive data for the mobile operator.
2) In pys60 3rd version, function gsm_location ()4 cant be used,
before the
application verified by Nokia [16].
3) Review our game idea; there is shooting scenarios in the game
design. We think
that the poor GSM position accuracy will make no sense in such
game scenarios.
So, the GPS location technology is our final choice in location
found.
5.1.2 Choose the Proper Geographic Map
As location based game, it connects the real world and the
virtual environment together.
So, we want the game background to be reality. We researched
some map providers. We
noticed that there are lots of map providers in the market. The
map types include the
normal map; the navigation used routing map and the satellite
map.
Figure 5.1 a Normal Map and a Satellite Map 5
Figure 5.1, we copy two different maps from map providers. You
may notice that the two
maps display the same area. Figure 5.1 a) is a normal map; b) is
a satellite map. Compare
4 Pys60 function, used to find GSM cell ID. 5 Map a) is copied
from Krak. Map b) is copied from Google map.
a) Normal map (stenloese) a) Satellite map (stenloese)
-
Define the system structure and theTransfer protocol
- - 34 -
those two maps, it is easy to figure out, the figure b) is much
more interesting and vivid.
It matches our game proposal very well. So we choose the
satellite map in our project.
Another choice is to select a map provider. We investigated
KRAK, Google and Yahoo.
KRAK is a Danish company, which provides the map service for the
local area. Google
has a product called Google map, which has global area maps in
their map database.
Yahoo map has the same principle as the Google map. Compare
those three companies,
we choose the Google map. The main reason is that Google map has
larger area coverage
than KRAK. Compare to Yahoo map, Google satellite map has higher
resolution (at least
in Denmark area). The figure 5.2 shows the resolution comparison
between Google map
and Yahoo map. The map position is in latitude 55.76 and
longitude 12.20 area. The
figure 5.2 a) is the highest zoom level Yahoo satellite map in
this area. The figure 5.2 b)
is the highest zoom level Google satellite map in the same area.
Google satellite has
better resolution.
Note: The red rectangle marked area in map a) is same as the map
b)
Figure 5.2 Yahoo Map and Google Map
a) Yahoo map in highest zoom level b) Google map in highest zoom
level
-
Define the system structure and theTransfer protocol
- - 35 -
5.1.3 Modified the System Structure
After the comparisons, we confirm our system structure as figure
5.3. In this figure, each
block function is defined as following:
(1) Game server: prepare the game script file, keep player score
and history.
(2) Google map: geographical map resource.
(3) Smart-phone: game client application running
environment.
(4) GPS-receiver: get position information from satellite.
(5) Bluetooth: the information exchange between the smart phone
and the GPS
receiver relay on Bluetooth connection.
(6) GPRS: it is the manner, the smart access to the game server
and Google map
server.
Figure 5.3 Modified System Structure
5.2 The Transfer Protocol
How to communicate between the game server and the mobile client
is important issue.
In the chapter 2, we havent decided the data format for the data
transfer. The choice is
the XML format or the plain text format. In the further
reaserch, we found there are some
third party XML parsers for Pys60. But, that plug-ins need
around 1Mb memory in
loading. So, we decide to write a parser, which do only a simple
parsing job. In this way,
the memory cost or the CPU process time cost shoudnt too much
difference between
using XML format and using plain text format. Then, we choose to
use XML as data
Game Server (1) Google map (2)
Smartphone (3) GPS receiver (4)
Bluetooth (5)
Exchange information through GPRS (6)
-
Define the system structure and theTransfer protocol
- - 36 -
format. XML was designed to describe data and to focus on what
data is [17]. It was
created to structure, store and to send information. This is
just what we want.
This section, we will analyze the required exchange data and
define some protocols. In
the later chapter, the game server and the mobile client
application will follow those
defined protocols. In the system function division, we have
mentioned that the game
areas are based on the district of a city and the game scenarios
are prepared in the game
server. So, the available game area data and the game scenario
data should be exchanged.
Additional, we also mentioned puzzle bomb in the chapter 2. In
order to make the
puzzle changeable, all the puzzles should be retrieved from the
game server. So, the
puzzle data also need to be exchanged. As a normal game, the top
score is a common
feature. We also decide to add this feature in our game as well.
No doubt, the top 10 score
data also need to be exchanged.
5.2.1 The Area List Data Scheme
Mobile client ask the game server about available game areas.
The game server returns an
area list. The list scheme [18] is defined in table5.1
Table 5.1 Area List Scheme
5.2.2 The Game Scenario Data Scheme
The mobile client uses the game scenario data to initialize the
game field. So, the game
scenario data should describe all required data. First, let us
analyze the scenario data. As
our design, there are two different type components in the game
field (except player)
the bombs and the watchers. The bomb is a position fixed object
in the game. To describe
-
Define the system structure and theTransfer protocol
- - 37 -
a bomb, the required data is the geographic position data. The
watcher is a moving object
in the game. Generally, we define a moving track for each
watcher. Simply, we set a start
geographic position and an end geographic position. The watcher
will follow the line
between the two points to move. So, to describe a watcher, the
required data are two
geographic positions. Summarize the analysis; we define the game
scenario scheme as
table5.2.
Table 5.2 Story File Scheme
5.2.3 The Puzzle Data Scheme
In the game, a player must answer some puzzles to remove a
puzzle bomb. We design the
puzzle bomb retrieve a puzzle from the game server, only when a
player find or touch it.
The puzzle data scheme is listed in the table 5.3.
-
Define the system structure and theTransfer protocol
- - 38 -
Table 5.3 Story File Scheme
5.2.4 The Top Ten Score Data Scheme
When a player want to see the top 10 score players in this game,
the mobile client will
retrieve the top 10 score players data from the game server. The
table 5.4 specifies the top
10 score data file scheme.
Table 5.4 the Top Ten Score Scheme
You may notice that, all defined schemes are about the data
transferred from the game
server to the mobile client. This doesnt mean there is no data
transferred to the game
server. In our design idea, we try to let the submitted data as
simple as possible to
simplify the design and save the client job load. So, the most
client submitted data will
just set in HTTP required link.
About the detail specification, we will introduce in the game
server design chapter.
-
- 39 -
Chapter 6
Mobile Client Application Design
In this chapter we will start the mobile game client design. The
design will focus on the three
aspects:
Design the mobile client structure;
Construct the client application class structure;
Google map usage analysis
6.1 Application Flow
6.1.1 The Game Scenario Analysis
In the game scenario design chapter (chapter 2), we have
mentioned that there are general three
type sprites in the game the bomb, the watcher and the hunter.
The game combines shootings
and puzzles together. So, our game field appearance should
be:
The game field view is a top view.
The background image is the real position satellite map.
The hunter appearance is a top view of a real person.
The watcher appearances are the top views of the real
persons.
The bombs displayed as dangerous signs.
The game field is the camera following mode (the move of the
game field follows
the move of the hunter)
6.1.2 Flow Design
When we talk about the game programming based on the above game
features, the first thing
we may think how to manage all the sprites. At least, there are
two choices - using the
-
Mobile Client Application Design
- - 40 -
multithread or using the game loop [19]. Then we choose to use
the game loop, the reason is
following:
Simplify the implementation. If we use the multithread, we
should take care about the
thread schedule, the thread synchronization, the dead lock and
so on. This will make
the application more complex.
All the sprites has the same priorities, the sprites positions
and animations are based on
each time slice, so it is better to use a game loop to drive all
the sprites and the
modules repeated.
Below, we use a flow chart to show the basic running state of
the mobile game client.
Figure 6.1 Game Running Flows (Mobile Client Part)
Get hunter position
Check user keyboard action
Draw sprites in the screen
Game Loop
Game Start
Calculat other sprites position
Check and set current status of all sprites
Download game script
from game server
Create sprites and game scenario
-
Mobile Client Application Design
- - 41 -
6.2 Game Client Class Structure
In the last section we construct the game client running
structure. It is a dynamic state of the
game client. In the OOP1, we also need to describe or define the
program in a static state. From
this section, we divide and encapsulate the game functions into
classes. Figure 6.2 shows the
game client class structure diagram.
Figure 6.2 Game Class Structure
In Figure 6.2, we use a tree structure diagram to describe the
classes and relationships among
the classes. The class Game Engine is in the root of the
structure. This is to express that the
game engine class drives all the other modules and pushes the
whole system to go forward.
There is an arrow, which points to the class sprite in the
structure. This arrow indicates that the
1 Object Oriented Programming.
Game Engine (1)
Class definition ..... ......
Sprite (5)
Class definition ..... ......
AI Control (2)
Class definition ..... ......
Location (4)
Class definition .....
Hunter (6)
Class definition .....
Bomb (7)
Class definition .....
Watcher (8)
Class definition .....
Communication (3)
Class definition ..... ......
Bullet (9)
Class definition .....
Explosion (10)
Class definition ..... ......
-
Mobile Client Application Design
- - 42 -
down layer classes are inherited from the sprite class. And we
describe the functions below for
each class.
1) Game Engine
Draws the game filed and all sprites
Detects and handles the player events, which include the game
role events and the
game menu event.
Collision detection, such as bullets hit the targets, hunters
close to the bomb and so
on.
Drives all the other modules
2) AI (Artificial Intelligence) (this module hasnt implemented
in the current version)
Let watchers avoid the bullet from hunters.
Shoot the hunter, if the hunter is located in the range of one
watcher vision.
3) Communication
Communicates with the game server to upload or download some
game related
information.
Parses the data from the transferred XML file.
4) Location Retrieving
Searches Bluetooth devices and establish a connection with a GPS
device
Gets GPS positions value from the GPS receiver.
5) Sprite
This is a super class of all other sprites
Define the basic properties of a sprite, such as the position,
the image, the speed,
and so on.
Define the basic functions of a sprite, for example, how to draw
itself, which frame
should be displayed currently, and etc.
-
Mobile Client Application Design
- - 43 -
6) Hunter
This is the game role of a player.
It is also an actual handler of the game role events. The game
engine catches the
game role events and passes them here for handling.
Define the hunter related special properties and functions
7) Bomb
A sub class of the sprite.
Retrieves and prompts a puzzle to players
Creates the explosion sprite
8) Watcher
A sub class of the sprite
Moves along the specified track.
Shoot in a random time
9) Bullet
A sub class of the sprite
Moves in a specified speed
Disappear after a range
If it hits a target, then the target will disappear.
10) Explosion
A sub class of the sprite.
Plays an explosion sound.
Displays an explosion animation.
-
Mobile Client Application Design
- - 44 -
6.3 Interface design
This section, we will analyze and design the game client
interface. Generally, the screen size of
a mobile phone is small. So, there are some limitations for
setting buttons and menus. Figure
6.3 shows the user interface flow.
Figure 6.3 the User Interface Flow Diagram
Main
menu
Login
Screen
User
mode
selection
Game
playing
screen
Select start item
Select register user mode
Game
area
selection
Start
Screen
Press select button
Login failure
Select guest
user mode
Setting
Screen
Help
Screen
Top ten
screen
Select setting item
Select help item
Game
Pause
screen
Set zoom
level
screen
Login sucess
Select
an area
Sub menu
screen
Press Select button
Select
pause item Select zoom item
Pess cancel or
Select button
Pess cancel or
Select button
Select resume
item
Exit
Screen
Select exit item
Select top10 item
Confirm
exit
Select main menu item
-
Mobile Client Application Design
- - 45 -
6.3.1 Screen Design
Start Page
The start page is the first view of the game client. We design
an image, which consists of the
foreground - 3D word Bomb Hunter and the background - some
pasted city photos. See
Figure 6.4.
Figure6.4 the Start Page
Main Menu and User Mode Selection Screens
The menu is used to guide players to enter or exit the game, set
game features and get the help
about the game. We design the game main menu with the following
items: Start, Setting, Top
10, Help and Exit. (Figure 6.5)
Figure 6.5 Main Menu Screen Figure 6.6 User Mode Selection
Screen
Select Cancel
Start
Setting
Top 10
Help
Exit
select Cancel
Guest user
Register user
-
Mobile Client Application Design
- - 46 -
When players want to start the game playing, they should select
the user mode. There are two
choices Guest user and Register user. (Figure 6.6)
Login and Game Area Selection Screen
If a player is a registered user, he can play the game in the
registered user mode. Figure 6.7 is
the login page for a registered player.
Figure 6.7 Login Screen Figure 6.8 Game Area Selection
Screen
The game list screen lists the current available game areas.
User can select a game area to play
the game. The screen is shown as Figure 6.8.
Setting and Top 10 players screens
In the setting screen, a player can change the game screen mode;
turn on or off the sound effect
and clear the login record to login as a new user. The setting
items are listed in the checkbox
style. A player can change more than one item at one time
(Figure 6.9). The top ten players
screen uses a list to display the top ten players (Figure
6.10).
OK Cancel
Please enter your user id:
*****
Please enter your pass:
*****
select Cancel
Game Area 1
Game Area 2
Game Area 3
Game Area 4
Game Area 5
-
Mobile Client Application Design
- - 47 -
Figure 6.9 Setting Screen Figure 6.10 Top 10 Player Screen
Playing filed and sub menu screens
In the game playing state, there are only two soft buttons in
the screen area; the rest area is the
game play field (Figure 6.11). There are four items in the sub
menu (Pause, Zoom map, Setting
and To main menu).
Figure 6.11 Game Playing Screen Figure 6.12 Sub Menu Screen
Login as a new user
Select Cancel
Change screen mode
Turn on/off sound effect
Select Cancel
Top 10 score 1. Player name score 2. Player name score 10.
Player name score
Option Exit
Playing area
Select Cancel
Pause
Zoom map
Setting
To main menu
-
Mobile Client Application Design
- - 48 -
Pause Menu and Zoom Level Setting Screen
When the game is paused, the menu items are changed to those
items (Resume, Setting and To
main menu) in Figure 6.13. The zoom level setting is shown as
Figure 6.14. A player can
change the zoom level to overview larger area game field.
Figure 6.13 Pause Menu Screen Figure 6.14 Zoom Level Setting
Screen
OK Cancel
Please set your zoom level,
value should in range (3- 18):
3
Select Cancel
Resume
Setting
To main menu
-
Mobile Client Application Design
- - 49 -
6.4 The Game Background Map
The problem is how to map GPS coordinates to an image by using a
normal image as GPS map.
We know the normal image formats are bmp, jpg, gif and so on.
Those maps are different from
GPS map. There is no GIS1 data included in such image data. So,
if we want to use such maps
in our game, we should find the way to map GPS coordinate in a
normal map image.
6.4.1 Map the GPS Coordinate to the Normal Images
If a map image is in a right scale as the real geographic area,
it is possible to use two samples
points to regulate none GIS images and calculate GPS coordinates
for any points in the given
images.
Version 1:
Use GPS receiver to regulate a map image. For instance, take the
GPS receiver to find the two
GPS coordinates in two different points in the map. As Figure
6.15, find the GPS coordinate
(longitude and latitude) in two yellow points. When we get those
two point coordinates, we can
easily calculate the other points GPS coordinates using the
formula (1) and (2).
xxx
LonLonxLon
=
12
12)( (1)
yyy
LatLatyLat
=
12
12)( (2)
In those two formulas, all the parameters are referenced to the
marks in the Figure 6.15.
1 Geographic Information Systems
-
Mobile Client Application Design
- - 50 -
Figure6.15 Regulate the Map
Version 2:
In further research, we found that it is possible to ignore the
regulation process in the version
one. Google map is latitude and longitude related map. By
calculations, we can figure out the
four corners latitude and longitude values of each piece of map
(as Figure 6.16). Using the
same manner and formulas described in the version one, it is
easy to find out the coordinate
values inside the map.
Lat1
Lat2
Lon 1 Lon 2
Map width: X
Map h
eight: Y
x1
y1
y2
x2
-
Mobile Client Application Design
- - 51 -
Figure6.16 Google Earth Map Coordinate
6.4.2 Google Map
Google map is a powerful tool. There is a huge earth image
database in Google map server. If
we can make use it in our game, it can make the game funnier and
also save a lot of work for
us. After research, we found some hints about Google map address
and retrieve methods. Here
we must say that this method is just used for research purpose.
It isnt a licensed way to access
Google map database.
Google Satellite Map
Google satellite map images are stored in the map database. Each
piece of map is referenced
by q, r,t ands sequence. Each character represents one part of
image. At the same time,
the sequence length decides zoom level of earth map. The maximum
zoom level is 18. For
instance, a single character t" represents whole image of the
earth, zoom level is one. The web
address of map is in the format
http://kh.google.com/kh?n=404&v=15&t=.
Latitude 1
Latitude 2
Longitude 1 Longitude 2
-
Mobile Client Application Design
- - 52 -
Figure6.17 Earth Satellite Map
For instance, Figure 6.17 is a whole image of the earth. It can
be retrieved by the web address
http://kh.google.com/kh?n=404&v=15&t=t. Here, there is a
sequence t, which is length one. It
indicates the map is zoom level one. When we add q, r, s and t
at the end of first t, we get
below four image maps.
(a) tq
(b) tr
(c) tt
(d) ts
a. http://kh.google.com/kh?n=404&v=15&t=tq b.
http://kh.google.com/kh?n=404&v=15&t=tr c.
http://kh.google.com/kh?n=404&v=15&t=tt d.
http://kh.google.com/kh?n=404&v=15&t=ts
Figure6.18 Google Earth Satellite Map
-
Mobile Client Application Design
- - 53 -
Further, we figure out the Google satellite map database is four
fork tree structures. The
structure can be presented as Figure 6.19. In the zoom level
one, the earth is one map, which is
represented by a single t. In the zoom level two, the earth map
is divided into four pieces,
which are represented by tq, tr, ts, and tt. The process go
deeper, the earth are divided into
more same size pieces. In the highest zoom levels, each piece of
image only cover 170m *170
m square area1 in the earth. In theoretical, we can map any
point on the earth (a cross point of
latitude line and longitude line) into a q, r, s and t
sequence.
Figure6.19 Google Satellite Map Structure
Test and Problem Found
Base on the last section analysis, we do a further testing.
Table 6.1 is the pseudo structure,
which converts the given latitude and longitude value pair to a
Google map sequence address.
We want to test whether the referenced map contains the given
coordinate. Following the
pseudo code, we also make a test module in python to test this
mechanism. When we tried to
find a predefined position (55.76443N, 12.19593E)2, we always
get a wrong image map. After
several days research, we found that the reason is about the
latitude scale. In the Google map
database, all the maps are Mercator projection [20] images of
the earth. It means that the
latitude line project in y direction isnt distributed as
degree.
1 This value is an approximately value, which calculated by
ourselves. 2 The position around the Birkevej 47, Stenloese,
Copenhagen
q
r
t
s
t
q
t
r
s Map reference string is
trs
-
Mobile Client Application Design
- - 54 -
Function conversion If latitude value >= center latitude
value of the current map Then If longitude value >= center
longitude value of the current map Then Sequence append with r Else
sequence append with q Else If longitude value >= center
longitude value of the current map Then Sequence append with t Else
sequence append with s If reach required zoom level then Return
Sequence Else Set new center latitude value Set new center
longitude value Call conversion function (recursive call)
Table 6.1 Pseudo Code for Converting Latitude and Longitude
Pair Value to a RTSQ Sequence
In order to calibrate the algorithm above, we look at Mercator
projection first.
Mercator projection
Figure 6.20 is a Mercator projection map of the earth. In the
Mercator projection equation, we
get relations between latitude degree and y value as formula (3)
and (4). From the equations,
we can deduce that the same latitude span cover more earth area
when the position more close
to the two poles.
Y = (3)
= = (4)
-
Mobile Client Application Design
- - 55 -
Figure6.20 Mercator projection of World Map 1
Method Refine and Test
Refine the pseudo code in the table 6.1 by adding Mercator
projection equation. Then we use
the test python module to calculate the Google reference
sequence for the predefined position
(55.76443N, 12.19593E)2, we get the expected result as Figure
6.21.
Figure 6.21 My Home Position Google Map
1 Refer to http://janson1986.photo.hexun.com/6381153_d.html 2
The position around the Birkevej 47, Stenloese, Copenhagen
The python module returned sequence is
Trtqtrqqqrqrqrrttt
Use this sequence, we retrieve left image
successful.
-
- 56 -
Chapter 7
Mobile Client Implementation
In the chapter 6, we have design the mobile game client
structure, the interface prototype, and
Google map access method. This chapter, we will explain the
detail implementation process.
The implementation includes the class module specifications, the
relationships among the
modules, the game components, the interfaces and some complement
modules.
7.1 Modules and Relationships
Chapter 6, we have specified the functions for each class
module. Here, we define each module
properties and functions in detail. At the end of this section,
we explain the relationships
among the different modules.
7.1.1 Modules Implementations 1) GPS Module
GPS module is used to build the Bluetooth connection with the
GPS receiver and retrieve the
position information.
UML Function description
Con_BT_reader: discover Bluetooth devices and build a
connection with a specified device.
Close Connection: close Bluetooth connection.
LocatePosition: read and parse the location data from GPS
sentence.
-
Mobile Client Implementation
- - 57 -
2) Google Map Module
The task of Google map module is to calculate Google map path
for a given latitude/longitude
coordinate. It returns a stitched map, which contains the given
coordinate, and the relative
position of the given coordinate in the returned map.
UML Function description
rad2degree: convert radian to degree
degree2rad: convert degree to radian
y2lat: convert y value to latitude value
lat2y:convert latitude to latitude value
latlon2googleSat: given latitude and longitude value,
return a path to Google map.
encodes: encode 0,1 sequence to q,r,s, and t sequence
string
verify: find whether it is necessary to the stitch map
stitchMap: stitch four pieces of maps together and
return the stitched map and the relative position value.
3) Sprite Module
Sprite module is a base class of the bomb, the watcher, the
hunter, the bullet, and the explosion.
As a base class, it defines the common properties of all the
sprites, such as the sprite position,
the image, the total frame numbers, the current frame, the
moving speed and the visibility.
UML Function description
draw self: draw an image in a specified canvas. erase self:
erase itself from canvas action: specify sprite action, may
override in subclass. move: move sprite to next position, which
is
-
Mobile Client Implementation
- - 58 -
determined by sprite current position and speed setframe: if
there are more than one frame for a sprite, use this function to
set current displayed frame. nextframe: set next displayed frame.
getframe: get the frame number of the current displayed frame
isOutofScreen: check whether this sprite is running out of the
screen. setVisible: pass True or False value to this sprite to make
the sprite appear or disappear. isVisible: check whether this
sprite is visible. setSpeed: set the motion vector for this sprite.
changeImag: change this sprite image. rotateSprite: rotate this
sprite image
4) Hunter Module
Hunter is as players role in the game. As a subclass of the
sprite, it inherits all methods and
properties from the sprite class. Further, it also handles the
most player key pressed events.
UML Function description
getName: get the player name.
getScore: return the player current score.
action: decide the hunter action
commandExcute:handle the player key
pressed event.
addScore: increase the player score
reduceScore: decrease the player score
-
Mobile Client Implementation
- - 59 -
shoot: create a bullet sprite, when the
player fire.
5) Watcher Module
Watcher is a virtual enemy sprite, which take care of the bomb.
It moves along the specified
track and fires in a random time.
UML Function description
action: specify a watcher action
move: move watcher to the next
position
fire: fire a bullet to a target
6) Bomb
The bomb is also a subclass of the sprite. It is an object,
which players want to find and
eliminate. Every bomb has its property: a puzzle. Players must
answer the puzzle to remove a
bomb.
UML Function descrip