Fragen zu Netzwerkspiel, ArrayList verschicken

frostbyte

Aktives Mitglied
Hallo,

ich bastle momentan an einem Spiel, das momentan lokal gut funktioniert. Es gibt ein Simulations-Backend und ein Anzeige-Frontend, die fast unabhängig voneinander laufen. Der Simulator hält eine Liste mit allen im Spiel aktiven Lebensformen, dort ruft er dann entsprechende Methoden auf, die den Lebensformen Leben einhauchen. Auf der anderen Seite hat man das Interface, das diese Lebensformen anzeigt und den Spieler interagieren lässt.

Momentan ist es so aufgebaut, dass das Interface einen Spieler hat, der letztlich die Aktionen erledigt. Auf diese Weise könnte man das Spiel auch auf 3D oder CLI umstellen, ohne dass die Mechanik anders wäre. Dieser Spieler hat wiederum eine Liste mit den Lebewesen, die er kontrolliert und sagt den Lebensformen, was sie tun sollen.

Mehrere Spieler auf einem Rechner wäre nicht so so das Problem, da ich dann ja einfach mehrere Spieler an gleichen Simulator andocken könnte und auch die ganzen Listen und Lebensformen da wären.

Wie mache ich das denn, wenn ich das ganze übers Netzwerk machen möchte? Wenn ich jedes Mal die Objekte vom Server-Simulator abfrage und gar keinen eigenen Simulator laufen habe, entsteht zwar eine Menge Traffic, allerdings gibt es keine Zweideutigkeiten, wie wenn ich zwei Simulatoren eventuell auseinander laufen habe.

Aber wie kann ich konkret auf die ArrayList zugreifen, die auf einem anderen Rechner läuft? Wenn ich das ganze in Text serialisiere und auf der anderen Seite zusammen baue müsste ich mir ja erst mal ein Protokoll ausdenken und hätte jede Menge Arbeit mit Konstruktoren und Serialisierunsfunktionen. Und wie würde ich das mit Funktionen der Lebensform-Klasse mache, die als Parameter eine zweite Lebensform entgegen nehmen?

Grüße,

frostbyte
 
G

Gast2

Gast
Du kannst auch z.B. das ganze als Webservice (z.B. SOAP/XML) implementieren - wenn du Interesse hast dich da einzuarbeiten.
 
T

tuxedo

Gast
Je nachdem was da für ein Datenafkommen da ist, ist XML und Co. für ein Spiel schon ein performance-fresser.

Bei RMI und SIMON gibt's zwar auch Overhead, aber der ist im bytes-bereich anzusiedeln. Der Overhead durch die notwendige Serialisierung: Dem kann man entgegen wirken indem man einfache und flache Objekte benutzt.

Wenn's wirklich um Millisekunden und sparen von bytes bei der Kommunikation geht, bleibt nur eins:

Selbst auf dem nackten Socket (oder Datagram/UDP) aufsetzen und ein eigenes, angepasstes Protokoll schreiben.

- Alex
 

Landei

Top Contributor
Es gibt speziell auf Spiele zugeschnittene Netzwerk-Bibliotheken/Frameworks, z.B. JGN und Project DarkStar (letzteres wird allerdings nach meinem Kenntnisstand nicht weiterentwickelt)

Könnte allerdings sein, dass das für dich mit Kanonen auf Spatzen ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Fragen zu Java Webservice mit Axis2 Netzwerkprogrammierung 0
N Fragen zu Sockets Client Netzwerkprogrammierung 3
V erste Client - Server Anwendung, paar Fragen wie Socketverbindung checken usw. Netzwerkprogrammierung 4
B Grundlegende Fragen zu einem Verbindungsaufbau in einem LAN Netzwerkprogrammierung 15
lumo Ping implementierung in TCP mit fragen... Netzwerkprogrammierung 7
M Fragen zu Java NIO Netzwerkprogrammierung 2
S HTTP Grundlegende Fragen zu java multithreading & Glassfish Netzwerkprogrammierung 3
dayaftereh Fragen zu Apache Mina? Netzwerkprogrammierung 5
A Fragen zum Ablauf Netzwerkprogrammierung 14
DeviAn Über ein Linux Server ein Windows Server nach einer File fragen Netzwerkprogrammierung 6
Developer_X Habe fragen zur Chat Programmierung Netzwerkprogrammierung 4
G Fragen zu RMI Netzwerkprogrammierung 8
S [RMI] Allgemeine Fragen Netzwerkprogrammierung 5
G Fragen/Probleme mit JavaMail Netzwerkprogrammierung 2
S paar Fragen Netzwerkprogrammierung 6
E RMI - ServerFactory und ein paar Fragen Netzwerkprogrammierung 2
A RMI -Activation; Fragen zur automat. Objektaktivierung Netzwerkprogrammierung 2
K Netzwerkspiel Netzwerkprogrammierung 6
R Netzwerkspiel im Browser spielbar machen Netzwerkprogrammierung 4
A Netzwerkspiel Client ruckelt Netzwerkprogrammierung 2
D Lags bei Netzwerkspiel. Netzwerkprogrammierung 2
platofan23 Socket Hilfe mit Socket Thread und ArrayList Netzwerkprogrammierung 6
T ArrayList über Netzwerk senden! Netzwerkprogrammierung 5
M IP Adressen gespeichert in Arraylist ausgeben Netzwerkprogrammierung 3
G Alternative Rückgabe große ArrayList Netzwerkprogrammierung 2
H ArrayList via WebService übertragen Netzwerkprogrammierung 3
C Webservice, ArrayList übergeben Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben