Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi OnlineSpiel ruckelt (https://www.delphipraxis.net/76997-onlinespiel-ruckelt.html)

pendragon302 13. Sep 2006 11:41


OnlineSpiel ruckelt
 
Hallo zusammen.

Ich habe versucht ein PingPong Spiel fürs Internet zu programmieren, es klappt auch alles ausser, dass das Spiel beim gegenüber ruckelt und nicht so flüssig wie bei mir läuft.
Das Programm ist folgendermassen aufgebaut:

Es gibt zwei Softwaren, zum einen die Serversoftware, die benutze ich zum spielen und die Clientsoftware, die benutzt mein Gegner.

Die Serversoftware besitzt einen Timer der auf 20 gestellt ist, in jedem Zeitintervall werden an den Client die Position des Balles sowie die Position meines Schlägers und die momentanen Punktestände versendet. Die Position des Gegners wird auf der Clientsoftware ermittelt.

Die Clientsoftware sendet lediglich Signale OnKeyPress oder OnKeyUp Ereignisse auftauchen, dann sendet die Clientsoftware, welche Taste momentan betätigt wurde.

Für die Verarbeitung der Daten vom Server also Position des Balls usw. hab ich einen Buffer erstellt, der erstmal alle angegkommenen Daten speichert, und dann abarbeitet mithilfe einer Whileschleife.

Die Verbingung zwischen Client und Server erhalte ich mithilfe TServer-/TClientSocket Komponenten.

Leider ruckelt das Spiel wenn es online gespielt wird im gegensatz zum Lan, da läuft es relativ flüssig. Liegt es an der Verbindung? Der Server sendet ja lediglich einen String aus maximal 30 Zeichen, mehr nicht. Wenn ich den Timer einwenig runter setze dann läuft es ein wenig flüssiger, aber auch nciht erheblich. Wo ist der Fehler in meinem Konzept?
Bei Bedarf würde ich auch den Quelltext verschicken.

Gruß

freak4fun 13. Sep 2006 11:54

Re: OnlineSpiel ruckelt
 
Was habt ihr denn beide für eine Verbindung? Die 20ms in dem Timer sind ja nicht alles. Du kannst ja die IP deines Gegenüber anpingen und dann die Sendedauer abfragen. Wenn das zB 100ms sind ist das vielleicht der Grund für das Ruckeln.

MfG
freak

3_of_8 13. Sep 2006 12:01

Re: OnlineSpiel ruckelt
 
Beim Internet hat man nun mal sehr lange Pingzeiten. Daher MUSS das ruckeln. Wenn man dem entgegenwirken will, kann es nur helfen, aus der aktuellen Richtung und Geschwindigkeit des Gegners eine wahrscheinliche Position zu interpolieren.

pendragon302 14. Sep 2006 23:04

Re: OnlineSpiel ruckelt
 
Vielen Dank für die antworten, hab jetzt eine interpolation eingebaut bei den clienten, damit klappt es schon viel besser :-)

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr.

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