SlideShare a Scribd company logo
1 of 15
Corso a prova di CRETINO niubbo di Window$ 2000dieciotto111!!!!!!!
one~ein
MMORPG
Architecture
for dummies
// Live @NOW 3.0 2014 - San Donnino - 15 Marzo 2014 // @squidleon
Table of contents
- Presentazioni
- Breve introduzione storica
- Architettura Server
- Architettura Client
- Diamond library
$ /whoami
facebook.com/rintronato
github.com/tgiachi
@squidleon
$ cat /home/squid/intro.txt
1991 - Neverwinter Nights
(AOL)
Ebbe il 4000% delle vendite! WTF!
2004 - World of
Warcraft
Il MMORPG piu’ giocato della storia
MMORPG.toString() ==> (Massive(ly) Multiplayer Online Role-
Playing Game)
$ cat /etc/server/arch >
/dev/console
Internet
Client
Client
Client
Client
Client
Client
Login server
Game server
Patch server
Server
Login
Database layer
Login Server:
====================
Viene messo in un thread (o eseguibile)
separato
Spedisce il/i game server dove connettersi
Minimo impatto sulle performance
Login Server:
====================
Viene messo in un thread (o eseguibile)
separato
Spedisce il/i game server dove connettersi
Minimo impatto sulle performance
Game Server
Entities
Game Server:
====================
Entities = NPC, MOB, ecc…
Characters = Personaggi
World Objects = Case, oggetti,
porte, ecc..
Scripts = Interazione con il mondo, AI,
Quests
Game Server:
====================
Entities = NPC, MOB, ecc…
Characters = Personaggi
World Objects = Case, oggetti,
porte, ecc..
Scripts = Interazione con il mondo, AI,
Quests
Characters World Objects Scripts
Patch server
Versioning
persistence
Patch Server:
====================
Modifiche distribuite centralmente
Correzioni centralizzate
Patch Server:
====================
Modifiche distribuite centralmente
Correzioni centralizzate
# cat /home/squid/arch/client > /dev/console
World of
Warcraft
{
Asset
interno
LUA engine
script
Cache interna per
GameObject
Diamond
libraryhttps://github.com/tgiachi/diamond-server.git
https://github.com/tgiachi/diamond-client.git
https://github.com/tgiachi/diamond-data.git
Cosa e’ Diamond ?
Liberia per spedire i messaggi Clients <->
Server
Open
source
Completamente modulare (interfacce a
go go..)
Facile da implementare (non ha librerie
esterne)
“Mavenizzato” e pubblicato su maven
central
Annotation driven (@DiamondServerPlugin,
@DiamondServerClient)
Scripted driver (Interpreta JS al
volo)
Struttura dei messaggi
Statistiche Diamond
Java 7 NIO ~ 1200 msg/s
MongoDB
> vs. MySQL
Server Client
Protocollo universale:
AES / DES 256 -> JSON ->
Object
Protocollo universale:
AES / DES 256 -> JSON ->
Object
JMonkeyEngine / libgdx /
Ardor3d
JMonkeyEngine / libgdx /
Ardor3d
Funziona su Raspberry PI !Funziona su Raspberry PI !
N.O.W.
3.0
Denghiu’!!

More Related Content

Similar to (NOW 3.0) MMORPG Architecture for dummies

Gamemate - Design and Prototypical Implementation of an Architecture for shar...
Gamemate - Design and Prototypical Implementation of an Architecture for shar...Gamemate - Design and Prototypical Implementation of an Architecture for shar...
Gamemate - Design and Prototypical Implementation of an Architecture for shar...Alessandro Sanino
 
Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...
Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...
Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...Codemotion
 
Sviluppo web dall'antichità all'avanguardia e ritorno
Sviluppo web  dall'antichità all'avanguardia e ritornoSviluppo web  dall'antichità all'avanguardia e ritorno
Sviluppo web dall'antichità all'avanguardia e ritornolordarthas
 
Jc06 Antonio Terreno Fluidtime
Jc06 Antonio Terreno FluidtimeJc06 Antonio Terreno Fluidtime
Jc06 Antonio Terreno FluidtimeAntonio Terreno
 
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerDoaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerAlessandro Alpi
 
Oauth2
Oauth2Oauth2
Oauth2I3P
 
Twcrashcourse
TwcrashcourseTwcrashcourse
Twcrashcourserik0
 
Delphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev OverviewDelphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev Overviewpietrobr
 
Node.js – Convincing the boss
Node.js – Convincing the bossNode.js – Convincing the boss
Node.js – Convincing the bossClaudio Cicali
 
Unity: introduzione storica ed analisi di un microprogetto
Unity: introduzione storica ed analisi di un microprogettoUnity: introduzione storica ed analisi di un microprogetto
Unity: introduzione storica ed analisi di un microprogettoDevDay
 
Linux Day 2010: Virtualizzare con OpenVZ
Linux Day 2010: Virtualizzare con OpenVZLinux Day 2010: Virtualizzare con OpenVZ
Linux Day 2010: Virtualizzare con OpenVZAlessio Pennasilico
 
Linux on power best practices
Linux on power best practicesLinux on power best practices
Linux on power best practicesPRAGMA PROGETTI
 
Orchard - architettura
Orchard - architetturaOrchard - architettura
Orchard - architetturaMichele Aponte
 

Similar to (NOW 3.0) MMORPG Architecture for dummies (20)

this = that
this = that this = that
this = that
 
Gamemate - Design and Prototypical Implementation of an Architecture for shar...
Gamemate - Design and Prototypical Implementation of an Architecture for shar...Gamemate - Design and Prototypical Implementation of an Architecture for shar...
Gamemate - Design and Prototypical Implementation of an Architecture for shar...
 
Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...
Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...
Kunos Simulazioni and Assetto Corsa, behind the scenes- Alessandro Piva, Fabr...
 
Clonare mac os x
Clonare mac os xClonare mac os x
Clonare mac os x
 
Sviluppo web dall'antichità all'avanguardia e ritorno
Sviluppo web  dall'antichità all'avanguardia e ritornoSviluppo web  dall'antichità all'avanguardia e ritorno
Sviluppo web dall'antichità all'avanguardia e ritorno
 
Jc06 Antonio Terreno Fluidtime
Jc06 Antonio Terreno FluidtimeJc06 Antonio Terreno Fluidtime
Jc06 Antonio Terreno Fluidtime
 
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerDoaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
 
Virtualizzazione
VirtualizzazioneVirtualizzazione
Virtualizzazione
 
Oauth2
Oauth2Oauth2
Oauth2
 
Twcrashcourse
TwcrashcourseTwcrashcourse
Twcrashcourse
 
Delphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev OverviewDelphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev Overview
 
Node.js – Convincing the boss
Node.js – Convincing the bossNode.js – Convincing the boss
Node.js – Convincing the boss
 
Unity: introduzione storica ed analisi di un microprogetto
Unity: introduzione storica ed analisi di un microprogettoUnity: introduzione storica ed analisi di un microprogetto
Unity: introduzione storica ed analisi di un microprogetto
 
Linux Day 2010: Virtualizzare con OpenVZ
Linux Day 2010: Virtualizzare con OpenVZLinux Day 2010: Virtualizzare con OpenVZ
Linux Day 2010: Virtualizzare con OpenVZ
 
Python su ipad pycon 8
Python su ipad pycon 8Python su ipad pycon 8
Python su ipad pycon 8
 
Cloud computing 101
Cloud computing 101Cloud computing 101
Cloud computing 101
 
Linux on power best practices
Linux on power best practicesLinux on power best practices
Linux on power best practices
 
Proxmox VE
Proxmox VEProxmox VE
Proxmox VE
 
Orchard - architettura
Orchard - architetturaOrchard - architettura
Orchard - architettura
 
Windows 10 IoT
Windows 10 IoTWindows 10 IoT
Windows 10 IoT
 

(NOW 3.0) MMORPG Architecture for dummies