1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion...

35
1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007

Transcript of 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion...

Page 1: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

1

Player Taxonomy and Memory Optimization

Technique in Mobile MMORPG

Zheng Zibin

Group Presentaion

Oct. 2, 2007

Page 2: 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

Page 3: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

3

RA-Model: A Taxonomy Model of Player Activities in Mobile MMORPGs

Mobility Conference 2007, Singapore Polytechnic, Singapore, 12 September, 2007

Part 1

Page 4: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

4

Outline of Part 1

1.Introduction

2.Related Work

3.RA-Model

4.Experiment

5.Conclusion

Page 5: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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.

Page 6: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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?

Page 7: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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.

Page 8: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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

Page 9: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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.

Page 10: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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.

Page 11: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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%

Page 12: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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.

Page 13: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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

Page 14: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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

Page 15: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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.

Page 16: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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).

Page 17: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

17

End of Part 1!

Questions?

Page 18: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

18

Memory Optimization Technique in Mobile MMORPGs

Part 2

Page 19: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

19

Outline

1.Memory types in J2ME

2.Game Size Optimization

3.Runtime Memory Optimization

Page 20: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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.

Page 21: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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.

Page 22: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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

Page 23: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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

Page 24: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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

Page 25: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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

Page 26: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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

Page 27: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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!

Page 28: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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.

Page 29: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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

Page 30: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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

Page 31: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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

Page 32: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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.

Page 33: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

33

End of Part 2!

Page 34: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

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

Page 35: 1 Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007.

35

Thank you!