# Performance meiner Idee



## Tsunamie (22. Mrz 2008)

Hallo ihr Lieben...
Jetzt muss ich doch mal eine Frage posten, da ich mit meinen Überlegungen nicht weiter komme.

Kurze Beschreibung von dem was ich will:
Ich implementiere ein Netzwerkfähigesspiel (wie so viele ein mmog  ) mit Hilfe von dem Project: Darkstar (Sun Game Server). Der SGS übernimmt die Kommunikation, Persistenz, Nebenläufigkeit etc.

Mein Problem ist nun, ich bin am überlegen wie ich Daten zwischen Server und Client austausche, also welches Format ich wählen soll. Der SGS benutzt von Haus aus byte[] so das ich nicht eingeschränkt bin.
Jetzt hab ich mir überlegt:

Wenn sich ein Spieler einlogged erhählt er alle Räume, Spieler, Items in einem bestimmten Bereich als serialisierte Objekte zugeschickt und wandelt diese bei sich wieder in entsprechende Klassen um, so hat jeder Spieler immer ein Abbild der Spielwelt bei sich. Wenn nun Änderungen auftreten (Spieler bewegen sich etc.) würde ich an betroffende Spieler Updatepakete (eigene Klasse die serialisiert wird) verschicken und den Client bei sich die Änderungen/Updates durchführen lassen. Ich würde gerne so einen Wert von 15-20 Updates pro Sekunde erreichen um die Bewegung der Spieler einigermaßen flüßig zu bekommen...

Ich weiß nur einfach nicht ob das performant genug ist. Also ob die Pakete nicht zu groß werden. Ich habe aber auch keine Lust nur Strings durch die gegend zu schicken (war mein erster Ansatz).


Soweit erstmal, wenn noch was unklar ist bitte melden


MFG
tsunamie


----------



## tuxedo (22. Mrz 2008)

Eins vorweg: Die Serialisierung von Objekten ist langsam. 

Wenn man mal in den Source von großen Projekten schaut (z.B. der freie Lineage2 Server "L2J"), dann sieht man, dass die auch nix serialisieren. Da werden primitive Datenpakete geschnürt die die notwendigen Roh-Informationen transportieren.

"World of Warcraft" z.B. macht das auch nicht anders.

Die Sache mit Byte-Arrays ist schon eine der "besten" Möglichkeiten.

Aber mal was zu SGS:

Hast du da zufällig ein gutes Tutorial zur Hand?


----------



## Tsunamie (22. Mrz 2008)

Tach,
danke schonmal für die Antwort, ich habs ja irgendwie befürchtet^^

Ein recht gutes Tut ist beim SGS dabei, in dem Paket unter docs.
Ansonsten gibt es von O'Reilly einen shortcut der auch nicht schlecht ist!


----------

