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

(NOW 3.0) MMORPG Architecture for dummies

Jun 27, 2015

Download

Technology

squid

MMORPG Architecture for dummies
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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’!!