Server/Client Struktur?

Status
Nicht offen für weitere Antworten.

raven

Bekanntes Mitglied
Hallo,

Ich habe mal eine rein theoretische Frage zu der Struktur/Aufbau einer Server-Client-Anwendung. Besser gesagt zu einem Server-Client-Spiel. Also zum Beipsiel man möchte ein Netzwerkspiel programmieren, in den sich mehrere Spieler einloggen können. Da wirft sich mir folgende Frage auf! Wie sieht die Strucktur eines solchen Server-Client-Spiels aus. Ich erwarte hier keine Codebeispiele oder ähnliches. Möchte dir Frage nur rein theoretisch klären.

Also nach meiner Meinung nach ergeben sich doch zwei Varianten, wie man seine Netzwerkübertragung strukturieren könnte. Ich werde hier mal meine beide Varianten darlegen, wie ich mir das vorstelle. Ihr könnt mir ja dann sagen ob ich mir das so richtig vorstelle oder ob ich in genau die falsche Richtung denke. Und wie man es besser machen könnte. Also effektiver für das Netzwerkt, das am wenigsten Daten übermittelt werden. Ich nicht sinnlos Daten hin und her geschoben werden, die gar nicht nötig sind.

Variante A:
Jeder Client erhält am Anfang des Spiel seine Daten und übermittelt seine Spielerdaten(Name, x- & y-Koordinate usw.) an den Server. Der Server dient nur als Datenverteiler und schickt alle Daten, die er von jedem einzelnen Clienten empfangen hat, an jeden Clienten wieder zurück, das somit jeder Client die Daten von jedem Spieler hat und somit die Spielsituation darstellen kann. Also sprich der Client ist für Sache wie Kollision usw verantwortlich. Die Rechenarbeit wird somit auf jeden Clienten verteilt, aber auch immerwieder doppelt durchgeführt, da ja jeder Client nach Kollision testen muss.

Variante B:
Der Server besitzt alle Spielerinformation, wie Name und Koordinaten. Der Client übermittelt nur seine Tätigkeit, also sprich Springen, nach links laufen, nach rechts laufen usw. Der Server verarbeitet die Information mit Hilfe der Information vom Client und setzt die Koordinaten nach rechts oder links und testet auf Kollision usw... Nach dem Test, schickt er nur die Koordinaten zurück, die abhängig davon sind ob der Spieler kollidiert ist oder nicht. Ist er kollidiert, verändern sich die Koordinaten zum Beispiel anders, als wie der Spieler es beabsichtigt hatte.

Ich hoffe ihr habt meine grundlegende Frage und meine beiden Varianten verstanden! Ich möchte jetzt wissen, welche der beiden Varianten die besten ist und welche generell in Netzwerkspielen verwendet werden. Oder gibt es noch andere Varianten, die ich hier nicht genannt hatte. Sind diese anderen Varianten vielleicht besser geeignet.

mfg raven
 
T

tuxedo

Gast
Ich denke das kommt auf das Spiel an. Aus "Sicherheits- und Konsistenzgründen" würde ich zu Variante B tendieren.

Sicherheit wegen:

Wir ein Client auf irgend eine Art und Weise modifiziert oder der Netzwerktraffic verändert, so gibt es keine zentrale Instanz die überprüfen kann ob das auch alles seine Richtigkeit hat.

Konsistzenz wegen:

Wenn der Server nur "Verteiler" spielt ist es nicht gesagt, dass alle Spieler zur gleichen Zeit den gleichen Zustand/Status haben. Evtl. dauert das übertragen zu Spieler B etwas länger als zu Spieler A. Dann kann es sein dass es bei Spieler B schon gar keine Kollision mehr gibt weil er sich weiter bewegt hat, wohingegen Spieler A von dieser Bewegung noch nichts mitbekommen hat und mit einer Kollision kalkuliert.

Variante B ist auch die Variante die bei gängigen MMORPGs ala Lineage2 oder World of Warcraft zum Einsatz kommt.

Würde i.d.R. also zu B tendieren.

- Alex
 

raven

Bekanntes Mitglied
Danke dir, auf genau so eine Antwort habe ich gewartet. Konnte mir schon denken das Variante B die geeignetste ist, jedoch wollte ich noch einmal Rat dazu hören...

Danke...

mfg raven
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Problem bzgl. Sockets / Server-Client-Struktur Netzwerkprogrammierung 3
N Server/Client Struktur Netzwerkprogrammierung 2
X Struktur von Client/Server-Applikation Netzwerkprogrammierung 2
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
J Client-Server und SOAP Netzwerkprogrammierung 23
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
D Server - Client Informationsaustausch, Möglichkeiten Netzwerkprogrammierung 3
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
J client server mit nur einem PC Netzwerkprogrammierung 33
M Socket Nachricht von TCP-Client an Server schicken Netzwerkprogrammierung 12
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
I Client/Server Kommunikation bei einem Spiel Netzwerkprogrammierung 4
E Objekte versenden, Client-Server Netzwerkprogrammierung 25
C Mini Client-Server-Anwendung funktioniert nicht Netzwerkprogrammierung 8
P Server als Client nutzen Netzwerkprogrammierung 8
D Socket Run Args Client/Server Socket Netzwerkprogrammierung 1
Cromewell Socket Multithreaded Server und Client Netzwerkprogrammierung 1
Y Client/Server/DB communication Netzwerkprogrammierung 3
JavaWolf165 Socket mit .writeUtf etwas vom Client zum Server schicken Netzwerkprogrammierung 13
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
brainless Client Server Kommunikation verschlüsseln Netzwerkprogrammierung 13
gamebreiti Socket Server / Client Anwendung Manipulation von Objekten durch Server Netzwerkprogrammierung 9
T Socket Server/Client Kommunikation Netzwerkprogrammierung 8
F Server Client Anwendung mit UDP Netzwerkprogrammierung 2
A RMI Wo treten Exceptions bei RMI Aufrufen auf? Auf Client oder auf Server? Netzwerkprogrammierung 3
A ByteBuffer - Client/Server Netzwerkprogrammierung 9
K C# Server - Android Client Netzwerkprogrammierung 0
P MIME-TYPE Erklaerung, Kommunikation zwischen Client und Server Netzwerkprogrammierung 3
J Sichere Kommunikation bei Server Client Netzwerkprogrammierung 3
T Frage zu Client-Server Applikation Netzwerkprogrammierung 2
H Socket Client/Server Socket Programmieren Netzwerkprogrammierung 1
M Theoretische Frage zu Server - Client Netzwerkprogrammierung 2
P HTTP Server / Client Netzwerkprogrammierung 1
E Thematik Client server Netzwerkprogrammierung 2
D Client/Server per Crossover Lan Kabel Netzwerkprogrammierung 1
S Client Server Connection Netzwerkprogrammierung 4
V erste Client - Server Anwendung, paar Fragen wie Socketverbindung checken usw. Netzwerkprogrammierung 4
S Sichere Server/Client Architektur Netzwerkprogrammierung 1
D Chat Server/mehre Client Netzwerkprogrammierung 9
I Server+Client Netzwerkprogrammierung 3
N Client am Server abmelden Netzwerkprogrammierung 0
F Server/Client Probleme Netzwerkprogrammierung 3
U Socket Instant Messanger (Server Linux, Client Windows) Netzwerkprogrammierung 1
Athena Grundsatzfragen zu Client-Server-Architektur / Matchmaking Netzwerkprogrammierung 1
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
F Client Server DB Netzwerkprogrammierung 0
A Verständnisfrage Multi-Threaded Client/Server Netzwerkprogrammierung 5
F Tipps zum Thema Server/Client vie SOAP Netzwerkprogrammierung 0
F Socket Java - Server/Client simple Netzwerkprogrammierung 1
R Zeitliche Syncronisation Server - Client Netzwerkprogrammierung 0
S Server-Client: Image senden Netzwerkprogrammierung 2
C Multithreading Client / Server erklärt Netzwerkprogrammierung 11
P server - client verbindung (anfänger) Netzwerkprogrammierung 8
J Client Server - Serialisierung Netzwerkprogrammierung 8
Luk10 Server / Client: Clients speichern! Netzwerkprogrammierung 6
M allgemeine Frage über Server-Client-Kommunikation Netzwerkprogrammierung 5
K Client => Server Netzwerkprogrammierung 2
A ? Home-Network, Server/Client-Einrichtung Netzwerkprogrammierung 4
S Socket Server: ConnectionError vom Client erkennen Netzwerkprogrammierung 31
A Java Server - IOS Client Applikation Netzwerkprogrammierung 20
L Ratschlag zur Umsetzung einer client-server-Kommunikation Netzwerkprogrammierung 6
M RMI RMI Probleme zwischen Client und Server Netzwerkprogrammierung 5
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
N Client-Server-Datenbank Netzwerkprogrammierung 13
Kjubert Synchronisieren von Objekten über Client/Server - bester Weg? Netzwerkprogrammierung 7
B Client/Server Connection Problem Netzwerkprogrammierung 2
S Server Client Daten hin und herschicken Netzwerkprogrammierung 2
R Server zu Client Kommunikation Netzwerkprogrammierung 11
D TCP Verbindung (Java Client und Visual Basic Server) Netzwerkprogrammierung 12
S Socket Applet Client bekommt keine GLOBALE Verbindung zum Server Netzwerkprogrammierung 25
T Server und Client verbinden nicht Netzwerkprogrammierung 6
D Server Client Verbindung - Unexpected End of File - Invalid HTTP Response Netzwerkprogrammierung 4
V Socket UDP Server/Client Kommunikation sehr langsam Netzwerkprogrammierung 2
das-mo Client/Server sendet nicht Netzwerkprogrammierung 7
Z Socket Server/Client vernünftiger Verbindungsabbruch Netzwerkprogrammierung 4
G Bild über Socket schicken - Client/Server Netzwerkprogrammierung 10
F TCP Server/Client Netzwerkprogrammierung 14
M Problem Client - Server Sockets: .ready() wird nie true! Netzwerkprogrammierung 6
Ollek Socket Sucher passende Server/Client Lösung für meine Anwendung Netzwerkprogrammierung 2
N eine klasse mit server & client Netzwerkprogrammierung 5
D RMI Gui auf client updaten basierend auf den Property Änderung des Models auf dem Server ohne polling Netzwerkprogrammierung 12
T Socket Client versucht zyklische Verbindung zum Server Netzwerkprogrammierung 4
S Socket Einfache Client/Server-Anwendung Netzwerkprogrammierung 11
F Socket Server/Client Kommunikation Netzwerkprogrammierung 4
X Problem mit Server-Client-Kommunikation Netzwerkprogrammierung 14
D Projektstruktur / Architektur (Client-Server) Netzwerkprogrammierung 9
P Socket IRC Client nicht kompatibel mit Server Netzwerkprogrammierung 30
F FTP Client mit Sockets - wann sagt der Server nichts mehr? Netzwerkprogrammierung 7

Ähnliche Java Themen


Oben