Hallo zusammen,
in Netzwerkprogrammierung bin ich bis auf kleinere Versuche noch Grünschnabel, habe aber Böcke (und Anlass) mir da jetzt mal einige Sachen anzusehen.
Es geht konkret um eine Idee zu einer speziellen Form von Multiplayer-Spiel, von der ich relativ begeistert bin - ich habe diesen Ansatz erst einmal bei einem Spiel gesehen und fand ihn ziemlich cool - ich erklärs mal kurz und hoffe dann auf hilfreiche konzeptuelle Ideen:
Das Spiel setzt voraus, dass die Spielenden die Spielregeln selbst beherrschen und implementiert daher keinerlei Regelmechanik, sondern wirklich ausschließlich die Spielmaterialien (z.B. Tisch, Karten, Spielsteine, etc.). Die beteiligten Spieler können einfach als ob sie zusammen am Tisch sitzen mit den Materialien, die zum Spiel gehören, spielen.
Und jetzt kommts - ich hab da à la Kochsendung nämlich schonmal was vorbereitet:
Zwei Dinge schweben mir vor - einmal eine Scrabble-Implementation, die einfach die Spielfläche und die Steine sowie eine verdeckte Ablage für die "Hand"-Steine der einzelnen Spieler bereitstellt. Das Spiel lässt die Spieler einfach Plättchen legen wie sie wollen - denn die Regeln können die ja. Ich finde diesen Ansatz zeimlich cool - natürlich ist das nicht bei jedem Spielkonzept die passende Lösung, hier schon. Guckt mal hier:
Das zweite wären klassische Kartenspiele: Ich habe eine hübsche Spielfläche und die Möglichkeit einfach Karten-Stapel auf den Tisch zu legen, die verschoben werden können und von denen man Karten aufdecken und ziehen kann, die man dann auf der Spielfläche hin und herschieben kann wie man will. Die Spieler überlegen sich dann selbst, welches Spiel sie daimt spielen. Ein virtueller Kartentisch sozusagen. Natürlich mit Chatfunktion fürs Streiten und Meckern
Hier mal ein Screen:
...nun zu meinem Problem: Ich habe die Netzwerkkommunikation noch nicht gemacht, will erstmal nach dem besten Ansatz forschen. Meine Ideen sind bisher ganz grob folgende:
Die Objekte, die auf dem Tisch liegen, könnte man serialisiert an alle Clients broadcasten. Bei dem Scrabble-Beispiel sind da KEINE Grafiken drin, wär also wohl OK. Bei den Karten müsste man mal sehn.
Ist Serialisierung überhaupt der richtige Weg? Die Datenmengen werden ja wohl nicht groß sein.
Könnte man bei Objekten mit Bildern die Bilder bei der Serialisierung weglassen? Es wär ja blöde die mitzusenden.
Wär es möglich eine Art Echtzeitdarstellung zu bekommen? z.B. wenigstens in einem Intervall von 1 Sekunde eine Aktualisierung der Darstellung abhängig von dem Client, der gerade "am Zug" ist?
Wie kann ich der Client-Anwendung am schönsten mitteilen, dass irgendwelche Komponenten verändert wurden, ohne eine Referenz auf diese "Client-Parent-Anwendung" in meinen Spiel-Objekten zu haben? Er serialisiert mir ja sonst immer den ganzen Client mit...
Naja das ist etwas wirr, aber hoffentlich wird irgendwie klar, worauf ich hinaus will. Sorry für die vielen Wörter - aber hey - es sind auch 2 Bilder dabei, also nicht über trockene Lektüre beschweren
in Netzwerkprogrammierung bin ich bis auf kleinere Versuche noch Grünschnabel, habe aber Böcke (und Anlass) mir da jetzt mal einige Sachen anzusehen.
Es geht konkret um eine Idee zu einer speziellen Form von Multiplayer-Spiel, von der ich relativ begeistert bin - ich habe diesen Ansatz erst einmal bei einem Spiel gesehen und fand ihn ziemlich cool - ich erklärs mal kurz und hoffe dann auf hilfreiche konzeptuelle Ideen:
Das Spiel setzt voraus, dass die Spielenden die Spielregeln selbst beherrschen und implementiert daher keinerlei Regelmechanik, sondern wirklich ausschließlich die Spielmaterialien (z.B. Tisch, Karten, Spielsteine, etc.). Die beteiligten Spieler können einfach als ob sie zusammen am Tisch sitzen mit den Materialien, die zum Spiel gehören, spielen.
Und jetzt kommts - ich hab da à la Kochsendung nämlich schonmal was vorbereitet:
Zwei Dinge schweben mir vor - einmal eine Scrabble-Implementation, die einfach die Spielfläche und die Steine sowie eine verdeckte Ablage für die "Hand"-Steine der einzelnen Spieler bereitstellt. Das Spiel lässt die Spieler einfach Plättchen legen wie sie wollen - denn die Regeln können die ja. Ich finde diesen Ansatz zeimlich cool - natürlich ist das nicht bei jedem Spielkonzept die passende Lösung, hier schon. Guckt mal hier:
Das zweite wären klassische Kartenspiele: Ich habe eine hübsche Spielfläche und die Möglichkeit einfach Karten-Stapel auf den Tisch zu legen, die verschoben werden können und von denen man Karten aufdecken und ziehen kann, die man dann auf der Spielfläche hin und herschieben kann wie man will. Die Spieler überlegen sich dann selbst, welches Spiel sie daimt spielen. Ein virtueller Kartentisch sozusagen. Natürlich mit Chatfunktion fürs Streiten und Meckern
Hier mal ein Screen:
...nun zu meinem Problem: Ich habe die Netzwerkkommunikation noch nicht gemacht, will erstmal nach dem besten Ansatz forschen. Meine Ideen sind bisher ganz grob folgende:
Die Objekte, die auf dem Tisch liegen, könnte man serialisiert an alle Clients broadcasten. Bei dem Scrabble-Beispiel sind da KEINE Grafiken drin, wär also wohl OK. Bei den Karten müsste man mal sehn.
Ist Serialisierung überhaupt der richtige Weg? Die Datenmengen werden ja wohl nicht groß sein.
Könnte man bei Objekten mit Bildern die Bilder bei der Serialisierung weglassen? Es wär ja blöde die mitzusenden.
Wär es möglich eine Art Echtzeitdarstellung zu bekommen? z.B. wenigstens in einem Intervall von 1 Sekunde eine Aktualisierung der Darstellung abhängig von dem Client, der gerade "am Zug" ist?
Wie kann ich der Client-Anwendung am schönsten mitteilen, dass irgendwelche Komponenten verändert wurden, ohne eine Referenz auf diese "Client-Parent-Anwendung" in meinen Spiel-Objekten zu haben? Er serialisiert mir ja sonst immer den ganzen Client mit...
Naja das ist etwas wirr, aber hoffentlich wird irgendwie klar, worauf ich hinaus will. Sorry für die vielen Wörter - aber hey - es sind auch 2 Bilder dabei, also nicht über trockene Lektüre beschweren