Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Phalax

Frischling

  • »Phalax« ist der Autor dieses Themas

Beiträge: 82

Beruf: Student Media Systems

  • Private Nachricht senden

1

14.05.2012, 10:01

Tipps zur Umsetzung vom Multiplayermodus bei Rundenbasierten Strategiespielen

Hey,

ich bin momentan an einem schon recht groß gewordenen Projekt, nämlich einem Rundenbasierten Strategiespiel, vergleichbar mit Battle Isle oder UniWar. Ich habe schon verschiedene Terrainarten und Einheiten sowie einen Mapeditor und man kann schon lokal gegeinander spielen. Ist also soweit spielbar.

So meine Frage bezieht sich jetzt auf den Multiplayer modus. Also wie kann man das am Besten umsetzen. Ich hab schonmal ein kleines Panzerspiel fürs LAN mit Sockets entwickelt, das hat auch gut funktioniert. Nur denke ich, dass das für ein RBS etwas schlecht geeignet ist. Schließlich brauche ich ja keine permanente Verbindung unter den Spielern sondern nur eine kurze aktualiserung des Spielstandes. Ich hatte mir überlegt, dass man die Züge der Spieler in eine Datei schreibt und diese dann auf einen Webserver speichert. Die einzelnen Clients laden sich dort dann immer den aktuellen Spielstatus runter. Was haltet ihr davon und habt ihr Ideen wie man es sonst lösen könnte?

lg
Phalax

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

2

14.05.2012, 10:54

Es spricht doch nichts gegen eine permanente Verbindung über TCP/IP. Gerade für rundenbasiert ist das ideal, weil du dich nicht um verlorene Pakete sorgen musst. Und wenn es erstmal lokal im Netzwerk läuft musst du für Internet nur den entsprechenden Port auf der Serverkiste freischalten.

Dazu stell dir mal vor, du möchtest einen Chat implementieren... naja das möchte ich nicht über eine Datei auf dem Server aushandeln :)

Phalax

Frischling

  • »Phalax« ist der Autor dieses Themas

Beiträge: 82

Beruf: Student Media Systems

  • Private Nachricht senden

3

14.05.2012, 11:20

Naja, ich dachte es wäre leichter ohne TCP/IP zu arbeiten und einen Chat wollte ich eig nicht implementieren, im Krieg chatet man nicht mit seinem Gegner ;). Außerdem ist es glaub ich für Handy user besser nur ab und zu ne Verbindung zum internet zu brauchen (ich wollte das spiel nämlich für android rausbringen).

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

4

14.05.2012, 11:41

auch ich mit meinen mangelnden Netzwerk-Erfahrungen (gut, mir mangelt es nur an Erfahrung in der Umsetzung von Netzwerkkommunikation) kann dem zustimmen, dass eine normale TCP Verbindung grundsätzlich gut ist

bei Handyspielen ist es problematisch, wenn sie viel Datenvolumen verbrauchen, da sie so sonst nicht über eine Mobilfunkverbindung benutzt werden würden (oder zumindest seltener), sondern eher über ein WLAN
ich kann (aufgrund bereits genannter fehlender Erfahrungen) nicht sagen, ob eine kaum benutzte TCP-Verbindung zu viel Datenvolumen bedeuten würde
da es sich um ein rundenbasiertes Strategiespiel handelt, würde vermutlich immer nur dann Auslastung (durch das Spiel, nicht durch das offen halten der Verbindung) auftreten, wenn die Spieler tatsächlich etwas machen oder ggf. (je nach Game Design) hauptsächlich am Rundenende

eine Datei von einem Server abzufragen ist aber auch nicht die beste Lösung, da dadurch ein Polling notwendig wäre
ansonsten wüsste der Spieler, wenn er mit seinen Zügen fertig ist, nicht, wann der andere auch mit seinen Zügen fertig ist und die nächste Runde beginnen kann

Chat:
ich weiß nicht, wie es bisher angedacht ist, aber man könnte sich so evtl. mit seinen verbündeten verständigen
auf einem Smartphone ist es zwar nicht unbedingt sehr angenehm, aber durchaus machbar


ich finde die Idee, es für Android anzubieten, gut, da mir bisher keine Android Spiele bekannt sind, die die Internetverbindung für einen Multiplayer-Modus verwenden ;)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

14.05.2012, 13:48

Guck dir mal Impera Online an. Ein Online Risiko Spiel. Vielleicht kannst du ja etwas von der Idee übernehmen. Wenn es hinterher mit Smartphones laufen soll, würde ich das Spiel selbst vielleicht für einen Server schreiben und die verschiedenen Clients greifen dann nur noch auf WebServices zu. Dann ist es egal ob man vom Browser, Android oder IOS spielen würde.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

14.05.2012, 17:30

Von welchem Zeitraum sprechen wir denn zwischen den Zügen? Weil prinzipiell ist es recht effektiv, wenn nur einmal am Anfang der gesamte relevante Datensatz synchronisiert wird und danach nur noch Aktualsierungen für die geänderten Objekte. Wenn das allerdings ein Spiel ähnlich wie ein Browserspiel sein soll, wo man nur alle paar Stunden nachschaut, dann bietet sich natürlich ein Webserviceansatz an.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Werbeanzeige