Wie werden Spieler in online Games miteinander synchronisiert?

    Wie werden Spieler in online Games miteinander synchronisiert?

    Hallo hab mal eine frage.
    Angenommen ich habe ein online Game in dem sich 2 Spieler frei bewegen können. wie gehe ich dann vor wenn ich die Position der Spieler an den jeweils anderen übergeben möchte?

    schicke ich dann einfach die Position (also x und y) mehrmals die Sekunde an den anderen Spieler, oder übergebe ich die Tastatur eingaben an den anderen Spieler das sein Client die Position meines Spielers berechnet?


    hoffe ihr wisst was ich meine :D
    Hi.
    Ich habe die Erfahrung gemacht, dass es komisch aussieht wenn man mehrmals in der Sekunde die Position aktualisiert.

    Da die Verbindung schwankt. (zumindest bei Bluetooth)

    Deswegen würde ich dir raten es zu berechnen.

    Ich denke alle Onlinepiele machen das so.
    Man kann es gut sehen, wenn ein Gegner "laggt". (Egoshooter)
    • Bluetooth Multiplayer
    • Wasser App: play.google.com/store/apps/details?id=com.gaming_apps.water_physics_simulation
    • :shifty: :motz:
    Das ist auf jeden Fall fortgeschritten.
    Du brauchst einen Server, der einen Port freigegeben hat. Über den können dann alle kommunizieren. Diese Kommunikation zu erstellen ist zwar nicht schwer, aber beansprucht viel Zeit, wenn der Server etwas mehr als nur Positionen vergeben muss. Für Position-Übertragung bewährt sich UDP am besten.
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe

    glim888 schrieb:

    Ich denke alle Onlinepiele machen das so.
    Man kann es gut sehen, wenn ein Gegner "laggt". (Egoshooter)


    Bei Rocket League habe ich manchmal den Eindruck, dass die Positionsangaben per Brieftaube übertragen werden. :(
    Jetzt CYPEST spielen. Zeig, was Du drauf hast. :thumbsup:
    Byte GameMaker Magazin
    - Die online Zeitung für Spieleenwicklung, Freeware und mehr!
    schicke ich dann einfach die Position (also x und y) mehrmals die Sekunde an den anderen Spieler
    Client-side. In dem Falle kann der Server einfach als Relay dienen, damit beide Spieler die Daten des anderen empfangen (sofern du einen dedizierten Server benutzt).

    oder übergebe ich die Tastatur eingaben an den anderen Spieler das sein Client die Position meines Spielers berechnet?
    Server-side. Server-side ist ein bisschen aufwendiger, weil man einfach mehr Daten hin-und herschicken und auswerten muss. Nvm, hab nicht gelesen, dass du es direkt von Client zu Client machen willst. Trotzdem, ähnliches Prinzip, weil man in Game Maker technisch gesehen immer einen Server hat.

    Beides kann aber ohne Probleme angewendet werden.