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

13.09.2011, 21:27

[C#]Multiplayer mit Sockets

Hey,

ich hab jetzt probiert ein kleines Programm zu machen, welches sich über einen Socket mit einer anderen Instanz des Spiels verbindet und die Position der Spielfigur sendet und die andere Instanz empfängt.

Das ganze habe ich mit C# und XNA gemacht und TcpListener sowie TcpClient genutzt. Sobald man ja eine Verbindung hat, kann man über einen NetworkStream Daten austauschen. Ich habe mir ein StreamReader sowie StreamWriter auf den Stream initialisiert und schreibe die Position mit WriteLine in den Stream und mit Readline lese ich diese wieder aus. Das passiert jeweils in einem eigenen Thread der in einer while(true)-Schleife läuft und mit Thread.Sleep(1) wartet.

Das ganze funktioniert zwar, aber es gibt immer eine Verzögerung beim anderen Spieler, auch wenn ich beide Instanzen auf meinen Rechner laufen lasse, wo es ja eigentlich keine Verzögerung geben sollte. Ich frage mich gerade, ob ich etwas grundlegend falsch mache oder was ansonsten das Problem ist. Vielleicht kann mir ja jemand mit mehr Erfahrung helfen oder mir gute Ressourcen über die Thematik zeigen, da ich fast nichts gefunden habe.

2

13.09.2011, 21:30

Wie groß ist denn die Verzögerung? Kann es sein, dass du vergisst flush auf den StreamWriter aufzurufen?

Phalax

Frischling

  • »Phalax« ist der Autor dieses Themas

Beiträge: 82

Beruf: Student Media Systems

  • Private Nachricht senden

3

13.09.2011, 21:35

Oups, verdammt das wars tatsächlich man was ein... .Echt großen Dank, ich wusste echt nicht was los war.

[Edit]
Kennt trotzdem jemand gute Ressourcen zu dem Thema und ist mein Ansatz der Richtige oder wird das in einem richtigen Spiel anders progammiert?

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Phalax« (13.09.2011, 21:53)


Werbeanzeige