Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 MMORPG Servers. 2 MMORPGs Features Avatar Avatar Levels Levels RPG Elements RPG Elements Mission Mission Chatting Chatting Society & Community Society.

Similar presentations


Presentation on theme: "1 MMORPG Servers. 2 MMORPGs Features Avatar Avatar Levels Levels RPG Elements RPG Elements Mission Mission Chatting Chatting Society & Community Society."— Presentation transcript:

1 1 MMORPG Servers

2 2 MMORPGs Features Avatar Avatar Levels Levels RPG Elements RPG Elements Mission Mission Chatting Chatting Society & Community Society & Community Friends Friends Combat Combat NPCs / Monsters NPCs / Monsters Experience Points Experience Points Extended Game Contents Extended Game Contents Online Customer Services (GM) Online Customer Services (GM)

3 3 MMORPGs Technical Elements Client-server Architecture Client-server Architecture Servers Servers Network Bandwidth Network Bandwidth Network Data Packet Network Data Packet Network Security Network Security Graphics Graphics Database Database

4 4 MMORPG Servers Stand Alone Servers Stand Alone Servers Distributed System Distributed System

5 5 Standalone Server Using a Set of Large Servers as the Game Servers Using a Set of Large Servers as the Game Servers Each Server Plays as a Single Function Each Server Plays as a Single Function Login server internet Game playCommunity Database

6 6 Distributed System - Concept Distributed PC Clusters Distributed PC Clusters servers internet Game play servers servers Database servers servers Login servers

7 7 Distributed PC Clusters 1-U Web Server Based on PC Architecture 1-U Web Server Based on PC Architecture Two CPUs Two CPUs Two Network IPs Two Network IPs 1U server Net IP 1Net IP 2 Internal LAN Internet

8 8 Distributed System - Features Distributed PC Clusters Distributed PC Clusters –Two IPs Scalability Scalability Fault Tolerance Fault Tolerance Load Balance Load Balance Dynamic Zoning Dynamic Zoning “Blade Servers” “Blade Servers”

9 9 Distributed System - Scalability Serve concurrent 500 users Serve concurrent 1000 users Regional Operation Consideration Regional Operation Consideration Cost Effective Cost Effective Flexible Capacity Flexible Capacity

10 10 Distributed System – Fault Tolerance All Servers Can Not Be Down in Anytime All Servers Can Not Be Down in Anytime For Distributed Servers, Every Job Must Be Transferred Between Servers For Distributed Servers, Every Job Must Be Transferred Between Servers For Standalone Server, Use Redundant Policy For Standalone Server, Use Redundant Policy

11 11 Master server Slave server A Slave server B ! ! Internal LAN Internet

12 12 Master server Slave server A Slave server B X Internal LAN Internet

13 13 Server on duty Server off duty ZZZZZZ ! ! Redundant Policy

14 14 Server off duty Server on duty X Redundant policy

15 15 Master servers Slave server A Slave server B Internal LAN Internet....

16 16 Distributed System – Load Balance Distributed MMOGs Always Do the Load Balance by In-house Approach Distributed MMOGs Always Do the Load Balance by In-house Approach Load ? Load ? –CPU bound –Memory bound –Network bandwidth 1 server = 500 concurrent players 10 servers = 5000 concurrent players X ! It’s very important to move the jobs on a crowded server to another ones on a crowded server to another ones

17 17 Master server Slave server A Slave server B Internal LAN Internet Load balance – case 1

18 18 Master server Slave server A Slave server B ! ! Internal LAN Internet Load balance case 2

19 19 Master server Slave server A Slave server B Internal LAN Internet Load balance case 2

20 20 Zone Concept A “Zone” is Logically a Region of Game Happening on Servers A “Zone” is Logically a Region of Game Happening on Servers We Always Map the “Zone” to a Physical 3D Scene We Always Map the “Zone” to a Physical 3D Scene A Zone is Not Really a Physical Hardware Server A Zone is Not Really a Physical Hardware Server But a Software Region that the Players Communicating Directly (in the same memory block) But a Software Region that the Players Communicating Directly (in the same memory block)

21 21 Master server Slave server A Slave server B Internal LAN Internet

22 22 messaging Server A Server B combating transaction Zone X Zone Y Zone Z NPC messaging Server C

23 23 Interaction within/between Zones (Game Play) Within Zone Within Zone –Combating –Chatting –Transaction Between Zones Between Zones –Messaging –Transaction (remote) –Banking

24 24 Server A Server B Zone X Zone Y Zone Z NPC Server C If server B is over-loaded, move the “Zone Y” or “Zone Z” to an available server C Zone Z

25 25 Load Balance Using Zone Moving Under the Concept of “Zone Moving”, We Can Move the Zones Between Hardware Server to Achieve the Load Balance Under the Concept of “Zone Moving”, We Can Move the Zones Between Hardware Server to Achieve the Load Balance But is This a Total Solution to Solve the Load Balance ? But is This a Total Solution to Solve the Load Balance ? Condition : Condition : Server A Server B Server C If server A is over-loaded, the whole server is over-loaded due that server A is occupied only one zone. Thinking : “Can we divide the zone into two or more ? “ Zone X Zone Y Zone Z

26 26 Dynamic Zoning Dynamically Adjust the Zones to Meet the Loading Requirement Dynamically Adjust the Zones to Meet the Loading Requirement Moving Zones between Hardware Moving Zones between Hardware Divide the Zone into Small Ones According to the Load and Move the Small Ones to Different Hardware Divide the Zone into Small Ones According to the Load and Move the Small Ones to Different Hardware

27 27 My Suggestion about Dynamic Zoning (1) A “Zone” is Mapping to a Physical Scene or Map (geometry) A “Zone” is Mapping to a Physical Scene or Map (geometry) A Zone is Composed by Several Groups A Zone is Composed by Several Groups A “Group” is a Collection of Players (Population) A “Group” is a Collection of Players (Population) All Players in the Same Group Running in One Same Process All Players in the Same Group Running in One Same Process Players in Different Group Communicate between Processes Players in Different Group Communicate between Processes –Inter-process communication (IPC) ?

28 28 My Suggestion about Dynamic Zoning (2) Group is More Dynamically Due to Based on the Concept of Population Group is More Dynamically Due to Based on the Concept of Population –Create –Delete –Move

29 29 Zone = A 3D Scene A 3D Scene A 3D Scene –3D models –Moving objects –NPCs –…–…–…–… Zones are Physically Neighboring Together Zones are Physically Neighboring Together Using Portals to Connect the Relationship Using Portals to Connect the Relationship Player Travels between Zones Player Travels between Zones –Logout current scene and login to another neighboring zone when stepping on the zone portal –Player in client will feel a little hanging during the moving

30 30 Zone Portals Zone X Zone Y Portal

31 31 Zone Portals Zone X Zone Y Portal

32 32 Population Group A Data Structure to Contain the Players A Data Structure to Contain the Players When a Player Logins into one Zone, He Should Be Assigned into One Available Population Group and Got the ID When a Player Logins into one Zone, He Should Be Assigned into One Available Population Group and Got the ID Players Should Not Be Moved Between Population Groups When He Is Staying in this Zone Players Should Not Be Moved Between Population Groups When He Is Staying in this Zone A Zone Can Be Divided into Several Groups A Zone Can Be Divided into Several Groups Group can be Created/Deleted/Moved by the Servers for Load Balance Group can be Created/Deleted/Moved by the Servers for Load Balance

33 33 Players in a Zone Zone X P1G1 P5G1 P2G2 P7G2 P12G2 P6G3 P5G3

34 34 Server A Server B Zone X Group 1Group 2 When a new player logins into Zone X, insert the player into group 2 which has space for new comer

35 35 Server A Server B Zone X Group 1Group 2 But if there are no groups with available space, create a new group for new comers Group 3

36 36 Server A Server B Zone X Group 1Group 2Group 3Group 4Group 5Group 6 If the Zone X on Server A is full for new comer, duplicate Zone X on Server B and create a new group for new players Zone X (2) Group 7

37 37 Server A Server B Zone X Group 1Group 2Group 3Group 4Group 5Group 6 Zone X (2) Group 7Group 8 IPC Network communication

38 38 The Challenge of Dynamic Zoning Physical Terrain and Models Are not Easy to Divide Dynamically Physical Terrain and Models Are not Easy to Divide Dynamically –If your zones are coupling with the physical scenes, to divide the geometric data in runtime needs some specific algorithms for 3D scenes –From my suggestion, don’t do it –Find a mechanism that makes the zone dividable –And that is the “Population Group” One Server Can Have Multiple Zones Running One Server Can Have Multiple Zones Running One Zone Can Run on Several Servers One Zone Can Run on Several Servers –Hard to code –Duplicated memory on servers –Synchronization between servers –Data communication overhead

39 39 The Challenge of Dynamic Zoning (2) Game Play Sensitive Game Play Sensitive Running Players in the Same Zone by Multiple Processes Running Players in the Same Zone by Multiple Processes –Duplicated memory on the same server –Synchronization between processes –Data communication between processes Players’ Attribute Data Should Be Classified as : Players’ Attribute Data Should Be Classified as : –Frequently used between players »Must be duplicated between processes –Seldom used between players »Send between players when necessary –Locally used by player himself Cross-platform Server API Design* Cross-platform Server API Design* * Hand drawing on white board


Download ppt "1 MMORPG Servers. 2 MMORPGs Features Avatar Avatar Levels Levels RPG Elements RPG Elements Mission Mission Chatting Chatting Society & Community Society."

Similar presentations


Ads by Google