Title: Player Taxonomy and Memory Optimization Technique in Mobile MMORPG
1Player Taxonomy and Memory Optimization Technique
in Mobile MMORPG
- Zheng Zibin
- Group Presentaion
- Oct. 2, 2007
2- Part 1 A Taxonomy Model of Player Activities in
Mobile MMORPGs - Part 2 Memory Optimization Technique in Mobile
MMOPRGs
3RA-Model A Taxonomy Model of Player Activities
in Mobile MMORPGs
Part 1
Mobility Conference 2007, Singapore Polytechnic,
Singapore, 12 September, 2007
4Outline of Part 1
- 1.Introduction
- 2.Related Work
- 3.RA-Model
- 4.Experiment
- 5.Conclusion
51.Introduction
- In China, there are a large number of mobile
phone users, so the development potential of
mobile online game is tremendous. - Constrained by the mobile phone and mobile
network performance, mobile online games in China
are still at the starting stage. More research
efforts are needed in order to design and develop
better mobile online games.
61.Introduction
- Mobile MMORPG (Massively Multiplayer Online Role
Playing Game) - Thousands of players play at the same time in a
virtual world. - Player activities in the game include chatting,
fighting, trading, walking... - Client/Server architecture, player data are
stored in database of game server. - There are a lot of player data in the database of
mobile online game server. - Gender of avatar, Money, Friend list, Family
information, Item list, Weapons, Battle times. - Questions
- How to get useful information from these data to
assist game design and maintenance?
71.Introduction
- Player Taxonomy Model RA-Model
- Using the data form database to classify the
players into different types. - Player payment analysis and game balance control
based on RA-Model. - Experiment
- Using data from one of the most popular
commercial mobile MMORPG in China.
http//www.infoislive.com - More than 300,000 registered players.
- Support more than 800 types of mobile phones.
82.Related Work
- 1996, Bartle,R.1 proposed a simple taxonomy for
players in MUDs (Multi-User Dungeon) based on a
long, heated discussion. - 2006, Yee,N. 8,9 proposed five motivation
factors for why people play MMORPG based on
questionnaire. - Relationship, Immersion, Grief, Achievement,
Leadership - Drawbacks
- The obtained information of players is not
detailed enough. - Difficult to get information of all players in
the game. - Difficult to get real time information of the
player.
93.RA-Model
- RA-Model use the data from the database of the
mobile online game server to classify the players
in the game world into different types. - Get accurate, real time information of all the
players in the game. - R Relationship
- Measure the desire of a player to interact with
others in the game. Represent the society aspect
of a player, including communication,
collaboration and so on. - A Achievement
- Measure the desire of a player to act and achieve
game-related goals. It represents the self aspect
of a player, including the power, the money and
so on.
103.RA-Model
- Player Taxonomy
- Socializer Players who interact a lot with
others in the game. This players usually have
family, a lot of friends and take important
position in organizations in the game world. - Moderator Players who Interact with others as
well as acting in the game. These players are
important for game world stability. - Fighter Players who act a lot in the game, and
they like killing and fighting. These players
care about power and their self-interest, and
they sometime will feel loneliness.
114. Experiment
- Commercial Mobile MMORPG ZhanGuo
- Top 10 Mobile Online Game Award of 2006 in
China - Samples 1 week, 1 game server, 3712 Players.
124. Experiment
- Attributes of players
- Attribute Value Standardized (0-1)
Original value.
Standardized value.
The max/min value of all values.
134. Experiment
- Player Attributes Clustering
144. Experiment
- Player Taxonomy
- PRelationship/Achievement
Total Players
Moderator
Socializer
Fighter
154. Experiment
- Payment Analysis
- Balance Control
- Track the number and proportion of different
types. - Compare the proportion of different player types
and make it approximately the same over a long
time.
165.Conclusion and Future Work
- Conclusion
- RA-Model
- Relationship and Achievement
- Socializer, Moderator and Fighter.
- Experiment
- Payment analysis
- Balance control
- Future work
- Testing on more mobile online games and make
comparison. - Learn more about the change of players from on
type to another type (For example
Fighter??Moderator??Socializer).
17End of Part 1!Questions?
18Memory Optimization Technique in Mobile MMORPGs
Part 2
19Outline
- 1.Memory types in J2ME
- 2.Game Size Optimization
- 3.Runtime Memory Optimization
201.Memory types in J2ME
- J2ME (Java 2 Micro Edition) is a platform for
mobile devices. - There are several types of memory in J2ME
applications - Storage Memory
- Used to store the JAR file of the applications.
- Runtime Memory
- Included Stack and Heap, which are used to store
run time data of the applications. - Persistent Storage
- a non-volatile place for storing data, such as
mobile phone numbers, user name and password etc.
212.Game Size Optimization
- Low-end mobile phones (Such as NOKIA 2650, 3100,
6100, 6108) only support J2ME applications
smaller than 64K bytes. - Mobile online games are usually pretty complex,
and thousands of players player at the same time.
They can perform walking, chatting, battling,
trading in the game world. - To enable the game to run on various low-end
mobile phones, practical game size optimization
techniques are needed to reduce the application
size.
222.Game Size Optimization
- Combining Small Images
- There are a lot of small images in the game.
- The overhead of image header is obvious.
-
232.Game Size Optimization
- int playerOffset(dir (animation
- int x px - playerOffset
- int y py - 8
- g.setClip(p.px, y, 16, 24)
- g.drawImage(imgPlayer, x, y, Graphics.TOPGraphics
.LEFT)
242.Game Size Optimization
- Using Graphics Optimization Tools
- xat.com Image Optimizer is a tool designed to
create the smallest possible JPEG, GIF and PNG
image files.
252.Game Size Optimization
- Combining Image Files into a Data File
- The zip compression algorithm can benefit from
the redundancy between the files and get better
compression result. - Hide the images of the game from straight forward
decompression of the JAR file.
262.Game Size Optimization
- Source code optimization
- Combining relative classes
- Combining the View.javaCommon.javaCanvas.java?
one class, - JAR size 72456 bytes ? 69077 bytes, 3379 bytes
are saved. - Exception reduction
- Reducing one try-catch block, 113 bytes of the
JAR size is saved. - Optimization Result
- 130,649 bytes ? 64,791 bytes
273.Runtime Memory Optimization
- Heap memory size of mobile phones 200K--500K
bytes. - NOKIA 7210, only 210K bytes heap memory for J2ME
application. - Work out all the memory will catch a OutOfMemory
Exception and lead to the breakdown of the
application. - Mobile online game contains a lot of pictures,
which consume a lot of runtime memory. - Problem
- How to provide a complex game, which uses as less
runtime memory as possible? - - Runtime memory optimization techniques!
283.Runtime Memory Optimization
- Dynamic Heap Memory Measurement
- The main thread of game continuously to repaint
the screen and create temporary object all the
time. - The garbage collector of JVM takes action to
recycle all unused objects into free memory
periodic.
293.Runtime Memory Optimization
Map Base Map Blocks Extend Map Blocks
- Map size
- A single picture
- Map block less than
303.Runtime Memory Optimization
- Using Persistent Storage as Cache
- Save the monster pictures in the JAR file.
- Load from the server when needed.
- Save the most frequently used monster picture in
the persistent storage of mobile phone. - There are 165 monsters in our game. Only a
subset of monsters (3 to 4) is located within a
particular map. - The minimum requirement of the J2ME is 8K bytes
of persistent storage. - Each monster will need
313.Runtime Memory Optimization
- Least Recently Used (LRU) algorithm is used to
manage the monsters in the persistent storage.
323.Runtime Memory Optimization
- Source Code Optimization
- Be careful of the object generation in the main
loop of the game. - Set the reference of the object to null if the
object is no longer used. - Do not load all the resource at the same time.
- Call System.gc() after generating a great mass of
temporary objects. - Result
- The runtime memory is reduced to within 210K
bytes. - The game runs well in more than 800 types of
mobile phones including high end and low end.
33End of Part 2!
34Conclusion
- Conclusion
- Part 1 A Taxonomy Model of Player Activities in
Mobile MMORPGs - Part 2 Memory Optimization Technique in Mobile
MMOPRGs - Other Works
- Network latency optimization
- Interaction auto-adaptive for mobile phones
- Mobile game engine architecture design
35Thank you!