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 libra...
$ /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 ...
$ cat /etc/server/arch >
/dev/console
Internet
Client
Client
Client
Client
Client
Client
Login server
Game server
Patch se...
Login
Database layer
Login Server:
====================
Viene messo in un thread (o eseguibile)
separato
Spedisce il/i gam...
Game Server
Entities
Game Server:
====================
Entities = NPC, MOB, ecc…
Characters = Personaggi
World Objects = C...
Patch server
Versioning
persistence
Patch Server:
====================
Modifiche distribuite centralmente
Correzioni centr...
# cat /home/squid/arch/client > /dev/console
World of
Warcraft
{
Asset
interno
LUA engine
script
Cache interna per
GameObj...
Diamond
libraryhttps://github.com/tgiachi/diamond-server.git
https://github.com/tgiachi/diamond-client.git
https://github....
Cosa e’ Diamond ?
Liberia per spedire i messaggi Clients <->
Server
Open
source
Completamente modulare (interfacce a
go go...
Struttura dei messaggi
Statistiche Diamond
Java 7 NIO ~ 1200 msg/s
MongoDB
> vs. MySQL
Server Client
Protocollo universale:
AES / DES 256 -> JSON...
N.O.W.
3.0
Denghiu’!!
Upcoming SlideShare
Loading in …5
×

(NOW 3.0) MMORPG Architecture for dummies

543 views

Published on

MMORPG Architecture for dummies

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
543
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

(NOW 3.0) MMORPG Architecture for dummies

  1. 1. Corso a prova di CRETINO niubbo di Window$ 2000dieciotto111!!!!!!! one~ein
  2. 2. MMORPG Architecture for dummies // Live @NOW 3.0 2014 - San Donnino - 15 Marzo 2014 // @squidleon
  3. 3. Table of contents - Presentazioni - Breve introduzione storica - Architettura Server - Architettura Client - Diamond library
  4. 4. $ /whoami facebook.com/rintronato github.com/tgiachi @squidleon
  5. 5. $ 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)
  6. 6. $ cat /etc/server/arch > /dev/console Internet Client Client Client Client Client Client Login server Game server Patch server Server
  7. 7. 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
  8. 8. 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
  9. 9. Patch server Versioning persistence Patch Server: ==================== Modifiche distribuite centralmente Correzioni centralizzate Patch Server: ==================== Modifiche distribuite centralmente Correzioni centralizzate
  10. 10. # cat /home/squid/arch/client > /dev/console World of Warcraft { Asset interno LUA engine script Cache interna per GameObject
  11. 11. Diamond libraryhttps://github.com/tgiachi/diamond-server.git https://github.com/tgiachi/diamond-client.git https://github.com/tgiachi/diamond-data.git
  12. 12. 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)
  13. 13. Struttura dei messaggi
  14. 14. 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 !
  15. 15. N.O.W. 3.0 Denghiu’!!

×