Hallo,
und zwar würde ich gern mein Spiel Netzwerkfähig machen.
Ich habe mir dazu bereits eine kleine Server Klasse geschrieben mit der ich Strings zwischen Server und Client hin und her schicken kann. Es soll ein 2 Player spiel werden, allerdings wäre es Top wenn mehr Leute gleichzeitig gegeneinander spielen können. (Aber immer nur 1 vs 1)
Nun ein paar Fragen:
1) Ist es sinnvoll alle Berechnungen bezüglich Koordinaten (Zug gültig Ja nein usw.) auf dem Server zu machen und die Clients nur noch das was der Server sendet zeichnen lassen?
2) Ich würde gerne für jeden Client einen eigenen Thread einrichten, d.h. verbindet sich ein Client mit dem Server, wird automatisch ein neuer Thread erzeugt und ihm zugewiesen. Innerhalb dieses Threads werden dann die Nachrichten empfangen und versendet. Ist dies von der Performance her nicht etwas laggend? Hier kommen wir zum 3ten Problem:
3) Wenn mehrere Spiele gleichzeitig gegeneinander Spielen, wie ermittle ich dann den passenden Client, an den die Aktionen seines Mitspielers gesendet werden? Meine Idee ist folgende: Verbindet sich ein Client wird ein neues Client Objekt erstellt, welches als Attribut die IP des Clienten sowie die des Gegners hat. Diese Client Objekte Speicher ich dann in einer LinkedList<Clients> als Attribut von meiner Server Klasse. Nun kann ich in jedem ClientThread (Thread ist innere Klasse von Server) auf den zugehörigen Gegner zugreifen und somit die Nachrichten korrekt übermitteln. Meine Frage nun, gehts auch einfacher? Ist bisschen umständlich, war nur meine erste Idee
Das wars fürs erste, hoffe ihr könnt mir helfen
Mfg und danke schonmal
Alex
und zwar würde ich gern mein Spiel Netzwerkfähig machen.
Ich habe mir dazu bereits eine kleine Server Klasse geschrieben mit der ich Strings zwischen Server und Client hin und her schicken kann. Es soll ein 2 Player spiel werden, allerdings wäre es Top wenn mehr Leute gleichzeitig gegeneinander spielen können. (Aber immer nur 1 vs 1)
Nun ein paar Fragen:
1) Ist es sinnvoll alle Berechnungen bezüglich Koordinaten (Zug gültig Ja nein usw.) auf dem Server zu machen und die Clients nur noch das was der Server sendet zeichnen lassen?
2) Ich würde gerne für jeden Client einen eigenen Thread einrichten, d.h. verbindet sich ein Client mit dem Server, wird automatisch ein neuer Thread erzeugt und ihm zugewiesen. Innerhalb dieses Threads werden dann die Nachrichten empfangen und versendet. Ist dies von der Performance her nicht etwas laggend? Hier kommen wir zum 3ten Problem:
3) Wenn mehrere Spiele gleichzeitig gegeneinander Spielen, wie ermittle ich dann den passenden Client, an den die Aktionen seines Mitspielers gesendet werden? Meine Idee ist folgende: Verbindet sich ein Client wird ein neues Client Objekt erstellt, welches als Attribut die IP des Clienten sowie die des Gegners hat. Diese Client Objekte Speicher ich dann in einer LinkedList<Clients> als Attribut von meiner Server Klasse. Nun kann ich in jedem ClientThread (Thread ist innere Klasse von Server) auf den zugehörigen Gegner zugreifen und somit die Nachrichten korrekt übermitteln. Meine Frage nun, gehts auch einfacher? Ist bisschen umständlich, war nur meine erste Idee
Das wars fürs erste, hoffe ihr könnt mir helfen
Mfg und danke schonmal
Alex