1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion...
-
Upload
jennifer-hawkins -
Category
Documents
-
view
217 -
download
3
Transcript of 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion...
1
Player 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
3
RA-Model: A Taxonomy Model of Player Activities in Mobile MMORPGs
Mobility Conference 2007, Singapore Polytechnic, Singapore, 12 September, 2007
Part 1
4
Outline of Part 1
1.Introduction
2.Related Work
3.RA-Model
4.Experiment
5.Conclusion
5
1.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.
Mobile online gameDisadvantages AdvantagesLimited computing ability
Limited memory
Large network latency
Small keyboard
Limited screen size
Small application size.
Easier to play
Play at anytime, anywhere.
6
1.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?
7
1.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.
8
2.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.
ACTING
WORLD
Achievers
Socialisers Explorers
Killers
PLAYER
INTERACTING
9
3.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.
10
3.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.
11
4. Experiment
Commercial Mobile MMORPG: “ZhanGuo” “Top 10 Mobile Online Game Award of 2006 in China”
Samples: 1 week, 1 game server, 3712 Players.
Male Female Total
Number 2625 1087 3712
Percent 71% 29% 100%
12
4. Experiment
Attributes of players:
Attribute Value Standardized (0-1):V Min
VMax Min
Attributes Description Mean
Position The position in guilds 0.53
Friend The number of friends 2.93
Family Have wife or husband? 0.47
Weapon Attack power of the best weapon. 82.77
Armor Defend power of the best armor. 59.24
Skill Power of player skills. 331.8
BattleWinRate Win rate of all battles. 0.35
V V
/Max Min
: Original value. : Standardized value.
: The max/min value of all values.
13
4. Experiment
Cluster2--Achievement
Attributes Weight
WeaponArmorSkillBattleWinRate
0.370.370.160.10
1&&1
2
n
R
R
n
ijjij
i
n
tt
ii
R
RW
1
;24.035.041.0Re FamilyFriendPositionlationship
;10.016.037.037.0 ateBattlewinrSkillArmorWeapontAchievemen
Player Attributes Clustering
Cluster1--Relationship
Attributes Weight
PositionFriendFamily
0.410.350.24
14
4. Experiment
),[ bP
Socializer Moderator Fighter
Total Players
Player TaxonomyP=Relationship/Achievement
P Value Player Number(a=0.1, b=0.5)
Socializer 542 (15%)
Moderator 1092(29%)
Fighter 2078(56%)),0[ aP
),[ baP
15
4. Experiment
Total payment(Game Points)
Player number Average payment (Game Points)
Socializer 9944 (43%) 542 (15%) 18.3
Moderator 9620 (41%) 1092 (29%) 8.8
Fighter 3835 (16%) 2078 (56%) 1.8
Total 23399 3712 6.3
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.
16
5.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: FighterModeratorSocializer).
17
End of Part 1!
Questions?
18
Memory Optimization Technique in Mobile MMORPGs
Part 2
19
Outline
1.Memory types in J2ME
2.Game Size Optimization
3.Runtime Memory Optimization
20
1.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.
21
2.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.
22
2.Game Size Optimization
Combining Small Images There are a lot of small images in the game. The overhead of image header is obvious.
bytesifileSizeCombinedsizeBeforei
9027)(12
1
bytesombinedsizeAfterC 3315
%5.369072/3315c eompressRat
23
2.Game Size Optimization
int playerOffset=(dir + (animation << 2)) << 4;
int x = px - playerOffset;
int y = py - 8;
g.setClip(p.px, y, 16, 24);
g.drawImage(imgPlayer, x, y, Graphics.TOP|Graphics.LEFT);
}3,2,1,0{dir
}2,1,0{animation
}176,......,32,16,0{setplayerOffe
24
2.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.
Type Bytes
Original Image 3315
xat.com Image Optimizer (Color 18) 1359
Reduce Color to 8 1117
%413315/1359c eompressRat
25
2.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.
Name Type Description
fileNum Byte Number of png file
offset Short[fileNum] Location of png files.
dataSize Short Size of the png file
data Byte[dataSize] The png file
dataSize Short Size of the png file
data Byte[dataSize] The png file
…… …… Other png files
File Size Size in JAR
16 PNG files 12,267 12,254
Combined data file 12,332 11,418
Reduction - 65 836
%9312241/11418c eompressRat
26
2.Game Size Optimization
Source code optimization Combining relative classes
Combining the View.java+Common.java+Canvas.java one class,
JAR size: 72456 bytes 69077 bytes, 3379 bytes are saved.
Exception reductionReducing one “try-catch” block, 113 bytes of the JAR size is saved.
Optimization Result:
130,649 bytes 64,791 bytes
Original Size Size in JAR(bytes)
Empty Class 228 180
Empty Interface 83 77
27
3.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 me
mory as possible?
- Runtime memory optimization techniques!
28
3.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.
29
3.Runtime Memory Optimization
Use Map Block
Map:
Base Map Blocks:
Extend Map Blocks:
Map size: A single picture: Map block: less than
pixels480480
KBytes9004480480
KBytes504161650
30
3.Runtime Memory Optimization
Using Persistent Storage as Cache
1. Save the monster pictures in the JAR file.
2. Load from the server when needed.
3. 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 KBytes3416163
31
3.Runtime Memory Optimization
Least Recently Used (LRU) algorithm is used to manage the monsters in the persistent storage.
},,{ 321 mmmM p
},{ 42 mmM k
}{ 21 mMML pk
}{)( 42 mMMML pkk
},,{)( 4322 mmmLMLRUM Pp
32
3.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 phon
es including high end and low end.
33
End of Part 2!
34
Conclusion
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
35
Thank you!