(NOW 3.0) MMORPG Architecture for dummies

15
Corso a prova di CRETINO niubbo di Window$ 2000dieciotto111!!!!!!!one~ein

description

MMORPG Architecture for dummies

Transcript of (NOW 3.0) MMORPG Architecture for dummies

Page 1: (NOW 3.0) MMORPG Architecture for dummies

Corso a prova di CRETINO niubbo di Window$ 2000dieciotto111!!!!!!!one~ein

Page 2: (NOW 3.0) MMORPG Architecture for dummies

MMORPG Architecture for dummies

// Live @NOW 3.0 2014 - San Donnino - 15 Marzo 2014 // @squidleon

Page 3: (NOW 3.0) MMORPG Architecture for dummies

Table of contents

- Presentazioni- Breve introduzione storica- Architettura Server- Architettura Client- Diamond library

Page 4: (NOW 3.0) MMORPG Architecture for dummies

$ /whoami

facebook.com/rintronato

github.com/tgiachi

@squidleon

Page 5: (NOW 3.0) MMORPG Architecture for dummies

$ cat /home/squid/intro.txt1991 - Neverwinter Nights

(AOL)Ebbe il 4000% delle vendite! WTF!

2004 - World of WarcraftIl MMORPG piu’ giocato della

storia

MMORPG.toString() ==> (Massive(ly) Multiplayer Online Role-Playing Game)

Page 6: (NOW 3.0) MMORPG Architecture for dummies

$ cat /etc/server/arch > /dev/console

Internet

Client

Client

Client

Client

Client

Client

Login server

Game server

Patch server

Server

Page 7: (NOW 3.0) MMORPG Architecture for dummies

Login

Database layer

Login Server:====================

Viene messo in un thread (o eseguibile) separato

Spedisce il/i game server dove connettersiMinimo impatto sulle performance

Login Server:====================

Viene messo in un thread (o eseguibile) separato

Spedisce il/i game server dove connettersiMinimo impatto sulle performance

Page 8: (NOW 3.0) MMORPG Architecture for dummies

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

Page 9: (NOW 3.0) MMORPG Architecture for dummies

Patch server

Versioning persistence

Patch Server:====================Modifiche distribuite centralmente

Correzioni centralizzate

Patch Server:====================Modifiche distribuite centralmente

Correzioni centralizzate

Page 10: (NOW 3.0) MMORPG Architecture for dummies

# cat /home/squid/arch/client > /dev/console

World of Warcraft {

Asset internoLUA engine

scriptCache interna per

GameObject

Page 11: (NOW 3.0) MMORPG Architecture for dummies

Diamond library

Diamond libraryhttps://github.com/tgiachi/diamond-server.git

https://github.com/tgiachi/diamond-client.git

https://github.com/tgiachi/diamond-data.git

Page 12: (NOW 3.0) MMORPG Architecture for dummies

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)

Page 13: (NOW 3.0) MMORPG Architecture for dummies

Struttura dei messaggi

Page 14: (NOW 3.0) MMORPG Architecture for dummies

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 !

Page 15: (NOW 3.0) MMORPG Architecture for dummies

N.O.W. 3.0

Denghiu’!!Denghiu’!!