SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
A Virtual World Distributed Server
developed in Erlang as a Tool for analysing Needs
  of Massively Multiplayer Online Game Servers
               Erlang/OTP User Conference
            Stockholm on November 10, 2005




                                                 Michał Ślaski
                                 michal@erlang-consulting.com

                                      © 2005 Erlang Training and Consulting Ltd
Contents

•   Massively Multiplayer Online Games
•   Problems to solve
•   Prototyping
•   Using Erlang/OTP for the prototype
•   Client and server applications
•   Determining the maximum number of players
•   Architectures with single and double-function nodes
•   Synchronisation of the game’s state
•   Conclusions


                           Page 2      © 2005 Erlang Training and Consulting Ltd
Massively Multiplayer Online Games

                            • Significant increasing in number of active subscribers
                            • Fast growing online games market

                           9 000 000

                           8 000 000
Total active subscribers




                           7 000 000

                           6 000 000

                           5 000 000

                           4 000 000

                           3 000 000

                           2 000 000

                           1 000 000

                                  0
                                  1997 1998 1999 2000 2001 2002 2003 2004 2005


                                              Source: MMOGCHART.COM                  Source: IGDA, quot;2004 Persistent Worlds White Paperquot;



                                                                            Page 3              © 2005 Erlang Training and Consulting Ltd
Problems to solve

• Big amount of data to process

• Frequent synchronisation
   – acceptable delay 150 - 500 ms

• Adaptation to the connection quality

• Limited opportunity for full testing with thousands of
  players during early phase of development



                          Page 4         © 2005 Erlang Training and Consulting Ltd
Prototyping

• Experimenting with the functional
  and technical aspects

• Determining the scalability of the architecture

• Testing new solutions




                          Page 5       © 2005 Erlang Training and Consulting Ltd
Using Erlang/OTP for the prototype

• Open source
• Compatible with various platforms
• Concurrent oriented programming
    – one process for every connected player
•   Efficient internal communication
•   Supporting distributed applications
•   Distributed database Mnesia
•   Distributed load testing tool IDX-Tsunami




                               Page 6          © 2005 Erlang Training and Consulting Ltd
Client application

• Java + Java3D
• Actions:
   – moving
   – collecting objects
   – magic
   – chat
• Player’s state
  kept on the server




                          Page 7   © 2005 Erlang Training and Consulting Ltd
Server application
                                  • Server distributed on a
• The game terrain
                                    cluster of machines
  divided into zones
• Players placed within the
  same zone are processed
  on the same node




                              Page 8         © 2005 Erlang Training and Consulting Ltd
Determining the maximum number of users
                                             1 200
                                                                               Legend
                                                                         Collecting object transaction
                                             1 050
transaction time [msec]




                                                          900

                                                          750

                                                          600

                                                          450
                                                                                                                                                                        180
                                                          300
                                                                                                                                                                        160
                                                                     overload
                                                          150                                                                                                                     122 players
                                                                                                                                                                        140




                                                                                                                                                    number of players
                                                                                                                                      The server
                                                            0                                                                                                           120
                                                                0   20       40      60       80     100       120      140     160
                                                                                                                                      was
                                                                                  time of the test [s]                                                                  100
                                                                                                                                      overloaded                         80
                                                          800
                                                                                                                                      in the 60th
                                                                                             overload                                                                    60
                                                                                                                                      second of
                                                          700
                          network traffic [kbits / sec]




                                                                                                                                                                         40
                                                                                                                                      the test
                                                          600
                                                                                                                                                                         20
                                                          500                                                                                                             0
                                                                                                                                                                              0    20   40      60   80    100      120   140   160
                                                          400
                                                                                                                                                                                             time of the test [s]
                                                          300

                                                          200

                                                          100                                               Legend
                                                                                                         Outgoing network traffic
                                                            0
                                                                0   20       40       60      80     100       120     140     160
                                                                                  time of the test [s]


                                                                                                                                        Page 9                                    © 2005 Erlang Training and Consulting Ltd
Architectures with double-function nodes
                       900



                       800



                       700
   number of players




                       600



                       500



                       400



                       300



                       200

                                                                       Legend
                                               maximum number of players that c an be handled by the arc hitec ture
                       100
                             0    1      2       3        4        5        6        7         8        9        10
                                 number of nodes processing network traffic and player's actions



                                                              Page 10                        © 2005 Erlang Training and Consulting Ltd
Architectures with single-function nodes
                       700                                                                                      120




                       600                                                                                      100




                                                                                                                      CPU utilisation [%]
                       500                                                                                      80
   number of players




                       400                                                                                      60




                       300                                                                                      40




                       200                                                                                      20
                                                                                  Legend
                                                                   maximum number of players
                                                                   ac tion proc essing nodes' CPU utilisation
                                                                   network proc essing nodes' CPU utilisation
                       100                                                                                      0
                             0          1          2           3               4             5              6
                                 number of nodes processing player's actions (2 network nodes)


                                                            Page 11                       © 2005 Erlang Training and Consulting Ltd
Synchronising issue
        Client A                   Server                       Client B


            Try to pick up a mushroom



                                           Try to pick up a mushroom




                   Action status - OK

                                             mushroom collected
                                                by client A




                                             Action status - FAIL




                                        Page 12                 © 2005 Erlang Training and Consulting Ltd
Desynchronisation of the game’s state
                                                            0,1

• Server                                                                          Legend
                                                                         suc c essful ac tions
                                                            0,09




               number of transactions / number of players
                                                                         not suc c essful ac tions
  is not                                                                 y=0.04855 (suc c essful)
                                                                         y=0.0009119 (not suc c essful)
                                                            0,08
  overloaded
                                                            0,07


• More                                                      0,06

  successful                                                0,05
  actions
                                                            0,04


                                                            0,03


                                                            0,02


                                                            0,01


                                                              0
                                                                   0   100     200      300      400      500    600      700      800      900     1 000
                                                                                                time of the test [s]


                                                                                     Page 13                    © 2005 Erlang Training and Consulting Ltd
Desynchronisation of the game’s state
                                                            0,05

• Server is                                                                                                               Legend
                                                                                                                 suc c essful ac tions




               number of transactions / number of players
                                                            0,045
                                                                                                                 not suc c essful ac tions
  overloaded                                                                                                     y=0.04855 (suc c essful)
                                                                                                                 y=0.0009119 (not suc c essful)
                                                            0,04


                                                            0,035
• More
  actions                                                   0,03

  fail                                                      0,025


                                                            0,02


                                                            0,015


                                                            0,01


                                                            0,005


                                                               0
                                                                    0   100   200   300   400     500     600       700      800      900     1 000
                                                                                          time of the test [s]


                                                                                Page 14                 © 2005 Erlang Training and Consulting Ltd
Conclusions

• Erlang/OTP is appropriate for developing prototypes
  of the distributed MMOG systems

• Rapid development of the prototype allows
  examining different algorithms in a relatively short
  period of time

• Future work
   – algorithms not dependent on the player’s position



                          Page 15      © 2005 Erlang Training and Consulting Ltd
Contents

•   Massively Multiplayer Online Games
•   Problems to solve
•   Prototyping
•   Using Erlang/OTP for the prototype
•   Client and server applications
•   Determining the maximum number of players
•   Architectures with single and double-function nodes
•   Synchronisation of the game’s state
•   Conclusions


                           Page 16     © 2005 Erlang Training and Consulting Ltd

Mais conteúdo relacionado

Destaque

The Multiplayer Classroom:
 Designing Coursework as a Game
The Multiplayer Classroom:
 Designing Coursework as a GameThe Multiplayer Classroom:
 Designing Coursework as a Game
The Multiplayer Classroom:
 Designing Coursework as a Gamegamifyforthewin
 
SRECon EU 2016: Riot Games Vs the Internet
SRECon EU 2016: Riot Games Vs the InternetSRECon EU 2016: Riot Games Vs the Internet
SRECon EU 2016: Riot Games Vs the InternetAdam Comerford
 
Game Server by Teguh
Game Server by TeguhGame Server by Teguh
Game Server by TeguhAgate Studio
 
Make your-game-multiplayer
Make your-game-multiplayerMake your-game-multiplayer
Make your-game-multiplayerAndrew Lee
 
Online mobile game server use Firebase realtime aatabase
Online mobile game server use Firebase realtime aatabaseOnline mobile game server use Firebase realtime aatabase
Online mobile game server use Firebase realtime aatabaseNguyễn Bá Thành
 
Clash of Clans: Secrets of Success
Clash of Clans: Secrets of SuccessClash of Clans: Secrets of Success
Clash of Clans: Secrets of Successanastasiaalikova
 
Online game server on Akka.NET (NDC2016)
Online game server on Akka.NET (NDC2016)Online game server on Akka.NET (NDC2016)
Online game server on Akka.NET (NDC2016)Esun Kim
 
Clash Royale vs Clash of Clans
Clash Royale vs Clash of ClansClash Royale vs Clash of Clans
Clash Royale vs Clash of ClansLaura Irazoqui
 
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over WebsocketIntroduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocketsametmax
 
3D Graphics & Rendering in Computer Graphics
3D Graphics & Rendering in Computer Graphics3D Graphics & Rendering in Computer Graphics
3D Graphics & Rendering in Computer GraphicsFaraz Akhtar
 
Riot Games Scalable Data Warehouse Lecture at UCSB / UCLA
Riot Games Scalable Data Warehouse Lecture at UCSB / UCLARiot Games Scalable Data Warehouse Lecture at UCSB / UCLA
Riot Games Scalable Data Warehouse Lecture at UCSB / UCLAsean_seannery
 
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)David Salz
 
Server side game_development
Server side game_developmentServer side game_development
Server side game_developmentYekmer Simsek
 
[KGC 2012] Online Game Server Architecture Case Study Performance and Security
[KGC 2012] Online Game Server Architecture Case Study Performance and Security[KGC 2012] Online Game Server Architecture Case Study Performance and Security
[KGC 2012] Online Game Server Architecture Case Study Performance and SecuritySeungmin Shin
 

Destaque (19)

The Multiplayer Classroom:
 Designing Coursework as a Game
The Multiplayer Classroom:
 Designing Coursework as a GameThe Multiplayer Classroom:
 Designing Coursework as a Game
The Multiplayer Classroom:
 Designing Coursework as a Game
 
SRECon EU 2016: Riot Games Vs the Internet
SRECon EU 2016: Riot Games Vs the InternetSRECon EU 2016: Riot Games Vs the Internet
SRECon EU 2016: Riot Games Vs the Internet
 
Game Server by Teguh
Game Server by TeguhGame Server by Teguh
Game Server by Teguh
 
Make your-game-multiplayer
Make your-game-multiplayerMake your-game-multiplayer
Make your-game-multiplayer
 
Online mobile game server use Firebase realtime aatabase
Online mobile game server use Firebase realtime aatabaseOnline mobile game server use Firebase realtime aatabase
Online mobile game server use Firebase realtime aatabase
 
Cedec2013 photon network engine
Cedec2013 photon network engineCedec2013 photon network engine
Cedec2013 photon network engine
 
Supercell
SupercellSupercell
Supercell
 
Clash of Clans: Secrets of Success
Clash of Clans: Secrets of SuccessClash of Clans: Secrets of Success
Clash of Clans: Secrets of Success
 
Clash royale
Clash royaleClash royale
Clash royale
 
Online game server on Akka.NET (NDC2016)
Online game server on Akka.NET (NDC2016)Online game server on Akka.NET (NDC2016)
Online game server on Akka.NET (NDC2016)
 
Clash Royale vs Clash of Clans
Clash Royale vs Clash of ClansClash Royale vs Clash of Clans
Clash Royale vs Clash of Clans
 
Supercell Report
Supercell ReportSupercell Report
Supercell Report
 
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over WebsocketIntroduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
 
3D Graphics & Rendering in Computer Graphics
3D Graphics & Rendering in Computer Graphics3D Graphics & Rendering in Computer Graphics
3D Graphics & Rendering in Computer Graphics
 
Riot Games Scalable Data Warehouse Lecture at UCSB / UCLA
Riot Games Scalable Data Warehouse Lecture at UCSB / UCLARiot Games Scalable Data Warehouse Lecture at UCSB / UCLA
Riot Games Scalable Data Warehouse Lecture at UCSB / UCLA
 
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
 
Server side game_development
Server side game_developmentServer side game_development
Server side game_development
 
[KGC 2012] Online Game Server Architecture Case Study Performance and Security
[KGC 2012] Online Game Server Architecture Case Study Performance and Security[KGC 2012] Online Game Server Architecture Case Study Performance and Security
[KGC 2012] Online Game Server Architecture Case Study Performance and Security
 
Lighting you up in Battlefield 3
Lighting you up in Battlefield 3Lighting you up in Battlefield 3
Lighting you up in Battlefield 3
 

Semelhante a A Virtual World Distributed Server Developed In Erlang As A Tool For Analysing Needs Of Massively Multiplayer Online Game Servers

Novell ZENworks Configuration Management Database Management
Novell ZENworks Configuration Management Database ManagementNovell ZENworks Configuration Management Database Management
Novell ZENworks Configuration Management Database ManagementNovell
 
Siyapath - A P2P, Gossip Based Volunteer Computing Framework
Siyapath - A P2P, Gossip Based Volunteer Computing FrameworkSiyapath - A P2P, Gossip Based Volunteer Computing Framework
Siyapath - A P2P, Gossip Based Volunteer Computing FrameworkNadeeshani Hewage
 
COLO: COarse-grain LOck-stepping Virtual Machines for Non-stop Service
COLO: COarse-grain LOck-stepping Virtual Machines for Non-stop ServiceCOLO: COarse-grain LOck-stepping Virtual Machines for Non-stop Service
COLO: COarse-grain LOck-stepping Virtual Machines for Non-stop ServiceThe Linux Foundation
 
CloudBridge and Repeater Specifications Sheet
CloudBridge and Repeater Specifications SheetCloudBridge and Repeater Specifications Sheet
CloudBridge and Repeater Specifications SheetNuno Alves
 
Managing a Website Performance Optimization (WPO) Project
Managing a Website Performance Optimization (WPO) ProjectManaging a Website Performance Optimization (WPO) Project
Managing a Website Performance Optimization (WPO) ProjectYottaa
 
Solaris 10 10 09 what's new customer presentation
Solaris 10 10 09 what's new customer presentationSolaris 10 10 09 what's new customer presentation
Solaris 10 10 09 what's new customer presentationxKinAnx
 
Creating a cost-analysis of a distance education program
Creating a cost-analysis of a distance education programCreating a cost-analysis of a distance education program
Creating a cost-analysis of a distance education programSultan Qaboos university
 

Semelhante a A Virtual World Distributed Server Developed In Erlang As A Tool For Analysing Needs Of Massively Multiplayer Online Game Servers (8)

Novell ZENworks Configuration Management Database Management
Novell ZENworks Configuration Management Database ManagementNovell ZENworks Configuration Management Database Management
Novell ZENworks Configuration Management Database Management
 
Siyapath - A P2P, Gossip Based Volunteer Computing Framework
Siyapath - A P2P, Gossip Based Volunteer Computing FrameworkSiyapath - A P2P, Gossip Based Volunteer Computing Framework
Siyapath - A P2P, Gossip Based Volunteer Computing Framework
 
Extending Io Scalability
Extending Io ScalabilityExtending Io Scalability
Extending Io Scalability
 
COLO: COarse-grain LOck-stepping Virtual Machines for Non-stop Service
COLO: COarse-grain LOck-stepping Virtual Machines for Non-stop ServiceCOLO: COarse-grain LOck-stepping Virtual Machines for Non-stop Service
COLO: COarse-grain LOck-stepping Virtual Machines for Non-stop Service
 
CloudBridge and Repeater Specifications Sheet
CloudBridge and Repeater Specifications SheetCloudBridge and Repeater Specifications Sheet
CloudBridge and Repeater Specifications Sheet
 
Managing a Website Performance Optimization (WPO) Project
Managing a Website Performance Optimization (WPO) ProjectManaging a Website Performance Optimization (WPO) Project
Managing a Website Performance Optimization (WPO) Project
 
Solaris 10 10 09 what's new customer presentation
Solaris 10 10 09 what's new customer presentationSolaris 10 10 09 what's new customer presentation
Solaris 10 10 09 what's new customer presentation
 
Creating a cost-analysis of a distance education program
Creating a cost-analysis of a distance education programCreating a cost-analysis of a distance education program
Creating a cost-analysis of a distance education program
 

Mais de l xf

Asynchronous Io Programming
Asynchronous Io ProgrammingAsynchronous Io Programming
Asynchronous Io Programmingl xf
 
The Proactor Pattern
The Proactor PatternThe Proactor Pattern
The Proactor Patternl xf
 
Scalable Networking
Scalable NetworkingScalable Networking
Scalable Networkingl xf
 
Erlang Message Passing Concurrency, For The Win
Erlang  Message  Passing  Concurrency,  For  The  WinErlang  Message  Passing  Concurrency,  For  The  Win
Erlang Message Passing Concurrency, For The Winl xf
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Evel xf
 
Comparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms SoftwareComparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms Softwarel xf
 
The Migration From Erlang To Otp A Case Study Of A Heavy Duty Tcpip Clients...
The Migration From Erlang To Otp   A Case Study Of A Heavy Duty Tcpip Clients...The Migration From Erlang To Otp   A Case Study Of A Heavy Duty Tcpip Clients...
The Migration From Erlang To Otp A Case Study Of A Heavy Duty Tcpip Clients...l xf
 
Messaging With Erlang And Jabber
Messaging With  Erlang And  JabberMessaging With  Erlang And  Jabber
Messaging With Erlang And Jabberl xf
 
Improving Robustness In Distributed Systems
Improving Robustness In Distributed SystemsImproving Robustness In Distributed Systems
Improving Robustness In Distributed Systemsl xf
 
Concurrency And Erlang
Concurrency And ErlangConcurrency And Erlang
Concurrency And Erlangl xf
 
Learning Erlang And Developing A Sip Server Stack With 30k Potential Users
Learning Erlang And Developing A Sip Server Stack With 30k Potential UsersLearning Erlang And Developing A Sip Server Stack With 30k Potential Users
Learning Erlang And Developing A Sip Server Stack With 30k Potential Usersl xf
 

Mais de l xf (11)

Asynchronous Io Programming
Asynchronous Io ProgrammingAsynchronous Io Programming
Asynchronous Io Programming
 
The Proactor Pattern
The Proactor PatternThe Proactor Pattern
The Proactor Pattern
 
Scalable Networking
Scalable NetworkingScalable Networking
Scalable Networking
 
Erlang Message Passing Concurrency, For The Win
Erlang  Message  Passing  Concurrency,  For  The  WinErlang  Message  Passing  Concurrency,  For  The  Win
Erlang Message Passing Concurrency, For The Win
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eve
 
Comparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms SoftwareComparing Cpp And Erlang For Motorola Telecoms Software
Comparing Cpp And Erlang For Motorola Telecoms Software
 
The Migration From Erlang To Otp A Case Study Of A Heavy Duty Tcpip Clients...
The Migration From Erlang To Otp   A Case Study Of A Heavy Duty Tcpip Clients...The Migration From Erlang To Otp   A Case Study Of A Heavy Duty Tcpip Clients...
The Migration From Erlang To Otp A Case Study Of A Heavy Duty Tcpip Clients...
 
Messaging With Erlang And Jabber
Messaging With  Erlang And  JabberMessaging With  Erlang And  Jabber
Messaging With Erlang And Jabber
 
Improving Robustness In Distributed Systems
Improving Robustness In Distributed SystemsImproving Robustness In Distributed Systems
Improving Robustness In Distributed Systems
 
Concurrency And Erlang
Concurrency And ErlangConcurrency And Erlang
Concurrency And Erlang
 
Learning Erlang And Developing A Sip Server Stack With 30k Potential Users
Learning Erlang And Developing A Sip Server Stack With 30k Potential UsersLearning Erlang And Developing A Sip Server Stack With 30k Potential Users
Learning Erlang And Developing A Sip Server Stack With 30k Potential Users
 

Último

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Último (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

A Virtual World Distributed Server Developed In Erlang As A Tool For Analysing Needs Of Massively Multiplayer Online Game Servers

  • 1. A Virtual World Distributed Server developed in Erlang as a Tool for analysing Needs of Massively Multiplayer Online Game Servers Erlang/OTP User Conference Stockholm on November 10, 2005 Michał Ślaski michal@erlang-consulting.com © 2005 Erlang Training and Consulting Ltd
  • 2. Contents • Massively Multiplayer Online Games • Problems to solve • Prototyping • Using Erlang/OTP for the prototype • Client and server applications • Determining the maximum number of players • Architectures with single and double-function nodes • Synchronisation of the game’s state • Conclusions Page 2 © 2005 Erlang Training and Consulting Ltd
  • 3. Massively Multiplayer Online Games • Significant increasing in number of active subscribers • Fast growing online games market 9 000 000 8 000 000 Total active subscribers 7 000 000 6 000 000 5 000 000 4 000 000 3 000 000 2 000 000 1 000 000 0 1997 1998 1999 2000 2001 2002 2003 2004 2005 Source: MMOGCHART.COM Source: IGDA, quot;2004 Persistent Worlds White Paperquot; Page 3 © 2005 Erlang Training and Consulting Ltd
  • 4. Problems to solve • Big amount of data to process • Frequent synchronisation – acceptable delay 150 - 500 ms • Adaptation to the connection quality • Limited opportunity for full testing with thousands of players during early phase of development Page 4 © 2005 Erlang Training and Consulting Ltd
  • 5. Prototyping • Experimenting with the functional and technical aspects • Determining the scalability of the architecture • Testing new solutions Page 5 © 2005 Erlang Training and Consulting Ltd
  • 6. Using Erlang/OTP for the prototype • Open source • Compatible with various platforms • Concurrent oriented programming – one process for every connected player • Efficient internal communication • Supporting distributed applications • Distributed database Mnesia • Distributed load testing tool IDX-Tsunami Page 6 © 2005 Erlang Training and Consulting Ltd
  • 7. Client application • Java + Java3D • Actions: – moving – collecting objects – magic – chat • Player’s state kept on the server Page 7 © 2005 Erlang Training and Consulting Ltd
  • 8. Server application • Server distributed on a • The game terrain cluster of machines divided into zones • Players placed within the same zone are processed on the same node Page 8 © 2005 Erlang Training and Consulting Ltd
  • 9. Determining the maximum number of users 1 200 Legend Collecting object transaction 1 050 transaction time [msec] 900 750 600 450 180 300 160 overload 150 122 players 140 number of players The server 0 120 0 20 40 60 80 100 120 140 160 was time of the test [s] 100 overloaded 80 800 in the 60th overload 60 second of 700 network traffic [kbits / sec] 40 the test 600 20 500 0 0 20 40 60 80 100 120 140 160 400 time of the test [s] 300 200 100 Legend Outgoing network traffic 0 0 20 40 60 80 100 120 140 160 time of the test [s] Page 9 © 2005 Erlang Training and Consulting Ltd
  • 10. Architectures with double-function nodes 900 800 700 number of players 600 500 400 300 200 Legend maximum number of players that c an be handled by the arc hitec ture 100 0 1 2 3 4 5 6 7 8 9 10 number of nodes processing network traffic and player's actions Page 10 © 2005 Erlang Training and Consulting Ltd
  • 11. Architectures with single-function nodes 700 120 600 100 CPU utilisation [%] 500 80 number of players 400 60 300 40 200 20 Legend maximum number of players ac tion proc essing nodes' CPU utilisation network proc essing nodes' CPU utilisation 100 0 0 1 2 3 4 5 6 number of nodes processing player's actions (2 network nodes) Page 11 © 2005 Erlang Training and Consulting Ltd
  • 12. Synchronising issue Client A Server Client B Try to pick up a mushroom Try to pick up a mushroom Action status - OK mushroom collected by client A Action status - FAIL Page 12 © 2005 Erlang Training and Consulting Ltd
  • 13. Desynchronisation of the game’s state 0,1 • Server Legend suc c essful ac tions 0,09 number of transactions / number of players not suc c essful ac tions is not y=0.04855 (suc c essful) y=0.0009119 (not suc c essful) 0,08 overloaded 0,07 • More 0,06 successful 0,05 actions 0,04 0,03 0,02 0,01 0 0 100 200 300 400 500 600 700 800 900 1 000 time of the test [s] Page 13 © 2005 Erlang Training and Consulting Ltd
  • 14. Desynchronisation of the game’s state 0,05 • Server is Legend suc c essful ac tions number of transactions / number of players 0,045 not suc c essful ac tions overloaded y=0.04855 (suc c essful) y=0.0009119 (not suc c essful) 0,04 0,035 • More actions 0,03 fail 0,025 0,02 0,015 0,01 0,005 0 0 100 200 300 400 500 600 700 800 900 1 000 time of the test [s] Page 14 © 2005 Erlang Training and Consulting Ltd
  • 15. Conclusions • Erlang/OTP is appropriate for developing prototypes of the distributed MMOG systems • Rapid development of the prototype allows examining different algorithms in a relatively short period of time • Future work – algorithms not dependent on the player’s position Page 15 © 2005 Erlang Training and Consulting Ltd
  • 16. Contents • Massively Multiplayer Online Games • Problems to solve • Prototyping • Using Erlang/OTP for the prototype • Client and server applications • Determining the maximum number of players • Architectures with single and double-function nodes • Synchronisation of the game’s state • Conclusions Page 16 © 2005 Erlang Training and Consulting Ltd