Multiplayer Spiel - Schere Stein Papier

Fireche

Mitglied
Hi, ich möchte gerne ein MP Version des Spieles Schere-Stein-Papier schreiben. Ich habe keine Probleme einen Echo Server zu schreiben und das Spiel für einen Spieler ist auch kein Problem, doch wie verbinde ich das Spiel mit dem Server u. Client. Ich möchte, dass bis zu 10 Spieler "joinen" können und sich dann einen Gameroom aussuchen.

Ein paar Tipps wären nett. mfg
 

JavaMeister

Gesperrter Benutzer
Dann mach dir mal gedanken.

Du brauchst einen Server, der das managed.

Auf diesem Server brauchst du "Spieler" das wäre eine Klasse, die am besten serialisierbar ist, zum übertragen über das Netzwerk.

Und dann braucht man einen Container für die Spieler "Gameroom".

Nun bebötigt man ein Protokoll, dass es erlaubt eine Liste abzurufen oder einem Raum zu joinen.
 

JavaMeister

Gesperrter Benutzer
Dann haben wir hier das Problem, dass ich bereits beim posten gesehen habe, mir aber gedacht habe, dass ich es dennoch probiere: Am besten vor dem Posten "Wie man Fragen richtig stellt" googeln. Dann hat man solche Probleme nicht ;D
 

Fireche

Mitglied
Was ich gerne sehen würde sind pseudo Code Snippets die mich erleuchten und zeigen wie ich an die Sache herangehen soll. Wenn du mir dabei nicht weiterhelfen kannst, dann ist das kein Problem ;) Schönen Abend noch.
 
Zuletzt bearbeitet:

Gucky

Top Contributor
Hast du überhaupt keine Idee? Irgendeine Idee musst du doch haben. Überleg dir, wie du es tun würdest und poste deine Überlegungen hier. Vielleicht auch schon in Code umgesetzt.
 

Fireche

Mitglied
Eine Frage die sich mir zum Beispiel stellt ist, ob ich überhaupt eine Player class brauche wenn ich doch die Client class habe. 1 Client ist ja = 1 Player.

Desweiteren habe ich folgende Klassen schon geschrieben: Ideone.com - Vj5YQ9 - Online Java Compiler & Debugging Tool , Ideone.com - rzhaV0 - Online Java Compiler & Debugging Tool

Meine Überlegungen:
-Ich brauche eine .Game class die jeweils 2 Clients "aufnehmen" kann, sprich die Klasse hat eine Instanzvariable vom Typ Client [2].

Dann stellen sich mir noch andere etliche Fragen aber damit warte ich noch :rtfm:
 
Zuletzt bearbeitet:

JavaMeister

Gesperrter Benutzer
Ja das geht schon, aber wo willst du dann die Businesslogik unterbringen oder komplexe Informationen übertragen.

Du solltest dein Problem zunächst auf logische Komponenten (Spieler, Raum, Spiel etc.) unterteilen. Das wäre das Modell.

Auf dem Modell arbeitet dann die Business - Schicht.
Die BOs sollten im Server sein ;D


Die Clients präsentieren es und leiten Aufgaben an die Business Schicht.
 

Fireche

Mitglied
Hm, ist es geschickter, dass der Server ALLE Informationen die er empfängt weiterleitet an ALLE Clients und dann filtert wer, welche Nachricht für welchen Client gedacht ist oder soll der Server vorher schon filtern und dann die Nachrichten den Clients zuschicken die es auch erhalten sollen?

Lösung 1 scheint mir einfacher zu sein aber bin gespannt auf eure Meinungen.
 
Zuletzt bearbeitet:

taro

Bekanntes Mitglied
Hm, ist es geschickter, dass der Server ALLE Informationen die er empfängt weiterleitet an ALLE Clients und dann filtert wer, welche Nachricht für welchen Client gedacht ist oder soll der Server vorher schon filtern und dann die Nachrichten den Clients zuschicken die es auch erhalten sollen?

Lösung 1 scheint mir einfacher zu sein aber bin gespannt auf eure Meinungen.

Generell sollte der Client nur die Informationen erhalten, die er auch benötigt. Die richtige Informationsverteilung ist Sache des Servers.
 

Fireche

Mitglied
wozu braucht es eigentlich einen Client Handler der meistens in der Klasse Server steht? Warum es nicht gleich in die Serverklasse schreiben?
 

Fireche

Mitglied
So, es funktioniert soweit alles ganz gut ^^
Server Klasse: Ideone.com - 6uMQWe - Online Java Compiler & Debugging Tool
Client Klasse: Ideone.com - wObOY5 - Online Java Compiler & Debugging Tool

Das einzige Problem ist, dass in der Server Klasse bei Zeile 177. Es sollten eigentlich beide Clients diese Nachricht erhalten aber es erhält nur der Client, der Runde 1 beendet und ich kann mir nicht erklären weshalb, denn ich habe 2 Player für jeden Client und beide rufen die setScore() Methode auf, welche eine Zeile darüber steht.

Vielleicht kann mir jemand weiterhelfen. Sorry falls es etwas unverständlich klingt oder ich meine Frage nicht perfekt formuliert habe aber es ist 3 Uhr ^^ und ich bin den ganzen Tag daran gesessen und ein bisschen ausgepowert :p

Danke für eure Geduld. mfg
 

smer4

Mitglied
1) mach erstmal ein lokales Spiel, mit mehreren "spielern", guck da was jeder Spieler macht
2) Dann kannst du ein kleiner Protokoll formulieren, z.B. beim jeden Request sendet ein Client login, password, und verschiedede Kommandos, und Endsymbol, weiter kann Nachricht verschlüsselt sein.
3) mach mal auf jedem Klien eine Schleife, die Daten von Server abliest als array von Bytes und mit Endsymbolen trennts du die voneinander. Dann kann jeder Klient zu jeder Zeit plötzlich eine Nachricht bekommen, da nicht immer ein Klient weisst dass am Server was aktualisiert wurde.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Mehrere Spielewelten im Multiplayer Netzwerkprogrammierung 2
J Socket Tutorial zu Multiplayer Server schreiben? Netzwerkprogrammierung 5
F Ideensammlung zu Multiplayer Netzwerkprogrammierung 10
O 4Gewinnt Multiplayer - Netzwerk Problem (TCP) Netzwerkprogrammierung 1
K Multiplayer eines Spiels Netzwerkprogrammierung 21
V TCP Tick Tack Toe Multiplayer Netzwerkprogrammierung 2
L Erstellen eines Online Multiplayer Apps Netzwerkprogrammierung 10
S Spiel mit Server programmieren Netzwerkprogrammierung 2
U Socket Spiel verspätung Netzwerkprogrammierung 2
I Client/Server Kommunikation bei einem Spiel Netzwerkprogrammierung 4
I PingPong Spiel übers Netzwerk Netzwerkprogrammierung 1
Messoras Launcher für mein Spiel Netzwerkprogrammierung 7
T P2P-Spiel-Prototyp Netzwerkprogrammierung 3
S Socket-Frage zu einem LAN-Spiel. Netzwerkprogrammierung 3
J Komplexes Netzwerk-Spiel im Internet Netzwerkprogrammierung 13
dayaftereh Bester Stream für ein Spiel? Netzwerkprogrammierung 15
G alle 20 sec ein 2 sekunden Lag im Java-Spiel Netzwerkprogrammierung 13
S Spiel netzwerkfähig machen (RMI) Netzwerkprogrammierung 6
G server für mein spiel. Netzwerkprogrammierung 5
C TIC TAC TOE-SPiel Netzwerkproblem Netzwerkprogrammierung 5
J 2 Player Spiel Netzwerkprogrammierung 2
R Spiel auf Netzwerk auslegen? Netzwerkprogrammierung 10
S Spiel über Netzwerk. Netzwerkprogrammierung 7
L Netzwerkfähiges Java-Spiel Netzwerkprogrammierung 2
P Welche Art von Sockets für ein Spiel? Netzwerkprogrammierung 3
M Netzwerk spiel??? Netzwerkprogrammierung 9
G netzwerkfähiges spiel! Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben