350 likes | 654 Views
Player Taxonomy and Memory Optimization Technique in Mobile MMORPG. Zheng Zibin Group Presentaion Oct. 2, 2007. Part 1: A Taxonomy Model of Player Activities in Mobile MMORPGs Part 2: Memory Optimization Technique in Mobile MMOPRGs. Part 1.
E N D
Player Taxonomy and Memory Optimization Technique in Mobile MMORPG Zheng Zibin Group Presentaion Oct. 2, 2007
Part 1: A Taxonomy Model of Player Activities in Mobile MMORPGs • Part 2: Memory Optimization Technique in Mobile MMOPRGs
Part 1 RA-Model: A Taxonomy Model of Player Activities in Mobile MMORPGs Mobility Conference 2007, Singapore Polytechnic, Singapore, 12 September, 2007
Outline of Part 1 • 1.Introduction • 2.Related Work • 3.RA-Model • 4.Experiment • 5.Conclusion
1.Introduction • Mobile online game • 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.
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?
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.
ACTING Killers Achievers PLAYER WORLD Socialisers Explorers INTERACTING 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.
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.
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.
4. Experiment • Commercial Mobile MMORPG: “ZhanGuo” • “Top 10 Mobile Online Game Award of 2006 in China” • Samples: 1 week, 1 game server, 3712 Players.
4. Experiment • Attributes of players: • Attribute Value Standardized (0-1): : Original value. : Standardized value. : The max/min value of all values.
4. Experiment • Player Attributes Clustering
4. Experiment • Player Taxonomy P=Relationship/Achievement Total Players Moderator Socializer Fighter
4. 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.
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).
Part 2 Memory Optimization Technique in Mobile MMORPGs
Outline • 1.Memory types in J2ME • 2.Game Size Optimization • 3.Runtime Memory Optimization
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.
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.
2.Game Size Optimization • Combining Small Images • There are a lot of small images in the game. • The overhead of image header is obvious.
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);
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.
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.
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 reduction Reducing one “try-catch” block, 113 bytes of the JAR size is saved. • Optimization Result: 130,649 bytes 64,791 bytes
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 memory as possible? - Runtime memory optimization techniques!
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.
3.Runtime Memory Optimization • Use Map Block Map: Base Map Blocks: Extend Map Blocks: • Map size: • A single picture: • Map block: less than
3.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
3.Runtime Memory Optimization • Least Recently Used (LRU) algorithm is used to manage the monsters in the persistent storage.
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 phones including high end and low end.
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