Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Multiplayerspiel Netzwerktechnik ? (https://www.delphipraxis.net/72506-multiplayerspiel-netzwerktechnik.html)

arbu man 1. Jul 2006 20:17


Multiplayerspiel Netzwerktechnik ?
 
Hi,

ich suche für ein Spiel nach einer möglichkeit den netzwerk verkehr zu regeln, bisher hab ich versucht durch einen timer die positionen der spieler mit einen record(393 byte für alles) über udp zu übertragen. Diese Lösung funktioniert allerding nicht wirklich da erstens die spieler "flackern" und man zweitens gigabit netzwerk benötigt (was noch nicht viele leute haben). Deswegen suche ich jetzt nach einer anderen? Lösung.
Welche möglichkeiten gibt es da noch, bzw. wie lösen andere Spiele das ?

[edit=Christian Seehase]Rechtschreibfehler im Titel korrigiert Mfg, Christian Seehase[/edit]

inherited 2. Jul 2006 09:33

Re: Multiplayerspiel Netzwerktechnik ?
 
Andere SPiele lösen das, indem sie auch die Richtung und die GEschwindigkeit der anderen SPieler übermitteln, und sie dann, in der Annahme das sie den Weg weiterlaufe, immer mitsetzen lassen

Tubos 2. Jul 2006 09:46

Re: Multiplayerspiel Netzwerktechnik ?
 
Zitat:

Andere SPiele lösen das, indem sie auch die Richtung und die GEschwindigkeit der anderen SPieler übermitteln, und sie dann, in der Annahme das sie den Weg weiterlaufe, immer mitsetzen lassen
Genau, so wird das normalerweise gemacht.
Desweitern kriegst du Probleme wenn ein Client zum Spiele-Server eine hohe Pingzeit haben - zum Beispiel 100ms. Dann sieht der Client nämlich eine andere Ansicht der Spielwelt als der Server. Auch dafür gibt es Algorithmen, die das ausbügeln.

Benutz Google, irgendwo gibt es ein Tutorial zu dem Thema - ich glaube, es war auf gamedev.net.
Aber erwarte nicht, dass das einfach zu realisieren ist!

arbu man 2. Jul 2006 09:53

Re: Multiplayerspiel Netzwerktechnik ?
 
Ping Zeiten sind mir im LAN ziehmlich egal erst mal muss es flüssig laufen.

Aber zum übertragen der geschwindigkeiten und richtungen. An diese möglich keit hab ich auch schon gedacht. Ich habe mich allerdings gegen diese möglichkeit entschieden, da sich mir folgendes problem eröffnet hat:
Ich versende die daten über das udp protokoll da können ja pakete verloren gehen d.h. wenn ich diesen weg gehen könnten die spiele "auseinander driften". Was kann ich dagegen machen ? Auf das langsame TCP ausweichen oder etwas anderes ?

Werde mich jetzt erst mal auf gamedev.net umschauen.

3_of_8 2. Jul 2006 10:07

Re: Multiplayerspiel Netzwerktechnik ?
 
Ich nehme mal an, es gibt einen Server?
Wenn es einen gibt, dürfte es egal sein, wenn mal ein Paket in den Bit Bucket fliegt, dann bemerkt man halt ein Ruckeln oder so, das ist in Battlefield zum Beispiel auch so.

igel457 2. Jul 2006 10:29

Re: Multiplayerspiel Netzwerktechnik ?
 
Um das auseinanderdriften zu vermeiden kannst du ja neben dem Richtungsvektor noch die Aktuelle Position übermitteln. Nachteil ist, dass dann allerdings Objekte "springen" können, was nicht sehr schön aussieht.

Ich würde dir wirklich TCP ans Herz legen. Wenn man das Spiel übers Internet mit UDP Spielt, dann kommt hinten vermutlich nicht mehr sehr viel an...

arbu man 2. Jul 2006 10:54

Re: Multiplayerspiel Netzwerktechnik ?
 
Nein einen richtigen server gibt es nicht. Ich werde jetzt aber wahrscheinlich auf tcp umsteigen und einen richtigen server machen.

arbu man 2. Jul 2006 11:56

Re: Multiplayerspiel Netzwerktechnik ?
 
Ich habe mir grade die Indy TCPServer und Client angeschaut, jedoch vermisse ich bei diesen Komponenten das OnReceive Event, wie ich das verstehe wird alles über einen Theard geregelt. Gibt es eine möglich dass man da keine OnReceive Event hinzufügen kann oder gibt es eine andere TCP Komponente mit einen solchen ?

mfg, Björn

Tubos 2. Jul 2006 12:22

Re: Multiplayerspiel Netzwerktechnik ?
 
Zitat:

Ich würde dir wirklich TCP ans Herz legen. Wenn man das Spiel übers Internet mit UDP Spielt, dann kommt hinten vermutlich nicht mehr sehr viel an...
Worauf basiert diese Behauptung? Hast du das auch selber ausprobiert?
Es passiert in der Tat eher selten, dass Pakete verschwinden! Mach mal "ping -t google.at" und schau dir das Ergebnis an!

TCP ist für ein Spiel in den meisten Fällen unbrauchbar. Beispiel: Wenn das Datenpaket mit der aktuellen Geschwindigkeit und Position verloren geht, dann wird es wiederholt. Kommt es dann schließlich an, ist es zu spät - die Daten sind nicht mehr aktuell. Genau deswegen ist TCP auch für VoIP und Videokonferenzen ungeeignet.

arbu man 2. Jul 2006 12:28

Re: Multiplayerspiel Netzwerktechnik ?
 
Zitat:

TCP ist für ein Spiel in den meisten Fällen unbrauchbar. Beispiel: Wenn das Datenpaket mit der aktuellen Geschwindigkeit und Position verloren geht, dann wird es wiederholt. Kommt es dann schließlich an, ist es zu spät - die Daten sind nicht mehr aktuell. Genau deswegen ist TCP auch für VoIP und Videokonferenzen ungeeignet.
Welches Protokol wird denn in den meisten Spielen verwendet ? bzw ist gut ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:29 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz