Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
Server anpingen
- GM 8
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
Ich würde mal davon ausgehen, dass es eine DLL dafür gibt, aber ich hab keine funktionierneden Links bei einer kurzen Suche gefunden.
Unabhängig davon: Bist du dir sicher, dass du einen "ICMP echo request" Ping brauchst? Wenn du für ein Netzwerkspiel Feedback über die Performance haben willst wäre es klüger, eine eigene Pingfunktionalität innerhalb deiner eigenen Architektur zu implementieren. Das ist sehr viel Aussagekräftiger, da hier neben der eigentlichen Netzwerklatenz auch Faktoren wie überlastete Server im Ping berücksichtigt werden.❧ -
boxxar schrieb:
Ich würde mal davon ausgehen, dass es eine DLL dafür gibt, aber ich hab keine funktionierneden Links bei einer kurzen Suche gefunden.
Unabhängig davon: Bist du dir sicher, dass du einen "ICMP echo request" Ping brauchst? Wenn du für ein Netzwerkspiel Feedback über die Performance haben willst wäre es klüger, eine eigene Pingfunktionalität innerhalb deiner eigenen Architektur zu implementieren. Das ist sehr viel Aussagekräftiger, da hier neben der eigentlichen Netzwerklatenz auch Faktoren wie überlastete Server im Ping berücksichtigt werden.
Das habe ich bereits versucht.
Der Client sendet einen byte (1) an den Server, der Server sendet ihn wieder zurück.
Das Problem: Da bei Game Maker Steps=FPS=Speed ist, kann man das bei einem room_speed von 60 nicht genau berechnen.
Ich erhalte lokal einen Ping von 33,3ms, was praktisch unmöglich ist.
Wenn ich aber den room_speed auf 1000 erhöhe, erhalte ich einen realistischen Ping, auch von anderen Clients aus.
Ich kann in meinem Spiel aber keinen room_speed von 1000 benutzen, da es das gesamte Spiel zusammenhauen würde.
Mein Code sieht wie folgt aus:
Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33) -
Ich habe in 1 gegen 1 fußball nen ping, moment, ich such das mal kurz....
Create:
EndStep:
GML-Quellcode
- if global.master{
- timer+=1
- if timer>90{
- writebyte(5)
- writebyte(ping)
- timer=0
- }
- //hier ist der empfangen-switcher
- case 5:
- ping=timer
- break;
- //Und hier ist der switcher zu ende
- }
- else{
- //hier ist der empfangen-switcher
- case 5:
- ping=readbyte()
- pong=1
- break;
- //Und hier ist der switcher zu ende
- if pong{
- writebyte(5)
- pong = 0
- }
- }
Draw:
Ich hoffe, du kannst damit was anfangenKopiere dies in deine Signatur, um es in deiner Signatur zu haben.
Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
Nach langer zeit wieder im Forum aktivDieser Beitrag wurde bereits 5 mal editiert, zuletzt von Larsi ()
-
Die Berechnungsidee, "Delay/room_speed*500" verstehe ich nicht ganz.
Aber das ist im Prinzip dasselbte System, das ich verwende.
Erhältst Du denn realistische Pings?Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33) -
Es spielt doch eigentlich überhaupt keine Rolle, das du das Gefühl hast, diese Pings seien unrealistisch? Das sind die realen Latenzen, die bei dem Spiel entstehen. Durch die begrenzte room_speed hast du nunmal effektiv einen Ping von mindestens 1/room_speed. Selbst wenn das Netzwerk schneller ist, dann spielt das keine Rolle, weil du durch alles was schneller ist als 1/room_speed nichts mehr gewinnst, die Spiellogik selbst arbeitet halt nicht schneller.❧
-
Yop, aber wie kann ich eben diese Berechnung so umstellen, dass es die exakte Latenz in ms angibt?Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
-
Ich versteh deine Frage nicht ganz. Wenn du wissen willst, wieso Larsi statt 1000 den Faktor 500 benutzt: Er berechnet nur den halben Ping. Der Ping ist ja der gesamte Roundtrip, also von A nach B und wieder zurück. Die Zeit, die du von A nach B brauchst, ist dann natürlich groß geschätzt nur halb so groß. Man kann sich jetzt streiten, welche von beiden Angaben sinnvoller ist.❧
-
Genau, ich messe nur den Nachrichtenhinweg...
Lokal ist das 1step 17ms
Online zwischen 3 und 7 stepsKopiere dies in deine Signatur, um es in deiner Signatur zu haben.
Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
Nach langer zeit wieder im Forum aktiv -
Achja, stimmt.
Hab grad nen Hirngulasch, so wie's aussieht.
Aber das hilft mir schonmal weiter, danke!Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
-
Benutzer online 1
1 Besucher