Multiplayer Werte Übertragen

  • Multiplayer Werte Übertragen

    Tja ich bin zwar mit den Funktionen des mplays vertraut aber hab da nochn paar fragen, auf die ich bisher nirgends ne antwort gefunden hab:
    1. Was ist der unterschied zwischen shared data und messages? (außer das man messages an bestimmte spieler addressieren kann)
    2. Dann gibts diese guaranted mode: es steht da: "es ist langsamer", was heißt das genau?
    3. Wann werden die Daten verschickt und wann sind si dann für andere Rechner nutzbar? (im nächsten step?)
    4. Ein prob bei meinem spiel: ich hab n objekt was ne variable immer um eins erhöht, das ist der timer für alle andren objekte. Das kann ja theoretisch jeder Spieler an sich für sich alleine machen. Aber was ist wenns bei jmd. lakkt? Also das er statt ner FPS von 30 nur noch 20 hat? Dann wäre das game bei ihm ja langsamer und damit asynchron...d.h. keine rohstoffproduktion etc.
    Wie kann ich das ausschließen? Ich hab gedacht: shared data:
    1. Host-Timer
    2.-x. Spielertimer

    wenn dann alle spieler-timer gleich dem hosttimer ist dann setzt der host die variable 1 höher
    damit würde die produktion für alle verzögert wenns mal lakkt.
    5. Es heißt ja mann soll nicht so viel übertragen: Also berechnet jeder spieler "seine" objekte und übertragung nur wenn andere spieler darauf zugreifen
    das geht ja bei statischen objekten. ich hab aber raumschiffe die von den spielern gestartet werden und dann zu nem ziel fliegen
    wie mach ich das? Es soll ebenfalls das problem das lakkens (s.o.) beachtet werden!

    Sry für soviel aber trotzdem, es intressiert vl auch andre.
    Antwort bitte nur genaue Lösungen damit der Thread übersichtlich bleibt. Alos kein "ich schau mal nach" oder "vl damit oder so"
    Thx
    Brauche immer noch Grafiken für mein Space-Game (StarAge), Thread zum Game
    Bitte melden!
    Thread zu Resourcen
  • Hi, ich selbst hab mich nicht viel mit der gm eigenen mplay funktion beschäftigt, ich mag lieber Soc3.1(dll)
    Zu:
    2. Naja das heißt das die Pakete die die Client bekommen nicht so schnell ankommen (so zu sagen ist der Ping höher)

    3. Also ich würd sagen, die daten werden verschickt wenn du den code/befehl ausfühst
    4.
    Da kannst die rechnung machen:

    GML-Quellcode

    1. time = 1*room_speed/fps //time ist die variabel die hochgezählt wird, 1 ist die geschwindigkeit, also hat man volle FPS dann wird sie um 1 erhöht wie du sagtest, bei weniger FPS wird sie um >1 erhöht damit es ausgeglichener ist^^

    oder so ählich auf jedenfall^^

    5. Wenn es ein stradegie spiel ist, solltest du dan nur die zielkoordinaten schicken wohin das Schiff geht, und per pathfinding oder so dort hinlaufen lassen (damit es flüssig ist), wenn es actionshooter ist dann würde ich nur jede paar steps was schicken und dann auch denn "Dummy" dorthin per pathfinding bewegen lassen


    ich hoffe ich hab dir irgendwie geholfen^^
    *gähn*
  • was ist die soc3.1? kanste mal nen link posten mit bps?
    antworten wie "ich würde sagen" bringen mir nix ich muss es genau wissn
    hm das mit der rechnung klappt nicht da das n timer ist
    wenn da was übersprungen wird gibts unterproduktion...--->desync
    Brauche immer noch Grafiken für mein Space-Game (StarAge), Thread zum Game
    Bitte melden!
    Thread zu Resourcen
  • noch ne Frage: hat jmd ein tut für mplay? also mit so ner dll und serverlist, connecten, sessoins,daten verschicken usw.
    oder zumindest ein example.
    wär nett
    dann hab ich noch ne frage: wie überträgt man am besten die daten der objekte? ich würde es so machen:
    wenn ein objekt von nem anderen spieler gebraucht wird dann wird ne message mit inhalt: "-obj-id" und index z.b. 3 gesendet
    wenn der owner dieses objekts diese nachricht kriegt, sendet er die objekt daten in nem codiertem string(objid|var1|var2 usw.) an alle spieler. diese passen dann das objekt mit der id obj-id entsprechend an
    gibts ne bessere möglichkeit?

    PS: die Fragen von oben sind immer noch offen
    Thx a lot
    Brauche immer noch Grafiken für mein Space-Game (StarAge), Thread zum Game
    Bitte melden!
    Thread zu Resourcen
  • so wie ich das aus ein paar tutorials mitbekommen hab ist es am besten einen dedicates server zu machen.

    alle spieler senden dann ihre position und der server berechnet welcher spieler in der nähe(sichtweite) von einem anderen spieler ist und sendet diesem dann die daten.

    alternativ könnte man jedem spieler die daten senden was aber langsamer ist als eine vorherige berechnung von einem server an wen was gesendet werden soll.

    trotzdem braucht der server/host eine gute verbindung.


    zu der übertragungs art:
    am besten nur das nötigste senden z.b. direction und speed anstatt x,y werte. und vielleicht jede sekunde oder alle 2 sekunden ein backup mit x,y usw senden damit das spiel bei jedem gleich aussieht(auch bei lag, aber wenn das backup nicht ankommt hat man pech -_-)
  • hm... was ist jetzt der vorteil an soc 3.1? Soweit ich das sehe sind die funktionen für directe connection gleich den message-fkt vom gm
    was fehlt sind die fkt des gm um sessions zu erstellen dennen namen zu geben und ne max-spielerzahl
    wies aussieht würde ich darum die gm-funktionen verwenden
    es sei denn jmd hat n example für das gleiche (und das andere aus meinem letztem post) für ne dll
    Brauche immer noch Grafiken für mein Space-Game (StarAge), Thread zum Game
    Bitte melden!
    Thread zu Resourcen
  • Hmm...Wo wir bei example sind,ich hab mich auch schon damit beschäftigt(diverse Texte und so) aber ich kapiers einfach nicht. Kann sich vielleicht irgendjemand mal mein spiel downloaden (Mafia Runner 2:Topdown, hier bei Spiele/EXE) und mal sehen ob er vielleicht ein Tutorial oder Example hat und/oder weiß? Ich komm da einfach nicht weiter. Tut mir traurig wegen dem Noob gefasel, aber bis jetzt hat mir noch nichts richtig geholfen. Danke
    Es macht mich starr vor Furcht und Staunen! (Hamlet, 1. Aufzug, 1.Szene)
  • Eh nur so zur info, ich habe weiter oben gelesen dass man nur die wichtigsten daten übertragen sollte, direction und speed anstelle von x und y. Das is quatsch, NIEMALS speed als wert übertragen, weil wenn die übertragung scheiße is, kann es sein dass deine figur oder was auch immer ím weiteren spielverlauf nicht an der gleichen position steht wie beim anderen pc! immer schön x und y nehmen!

    "Make love, not Warcraft"
  • Dir ist schon klar das der Thread n halbes Jahr alt ist?
    Wenn du wenigstens etwas gepostet hättest was dem Treadersteller oder andere die sich mit dem Thema befassen groß weiter helfen würde, aber wegen sonem kleinem Kommentar der nichteinmal wiklich wahr ist?
    In vielen Fällen ist es sinnvoller direction und speed einmalig zu übertragen als jeden step die x/y koordinaten... zb. bei nem bullet das erstellt wird und in eine bestimmte richtung fliegt.
    Bei einem Object das unvorhersehbar rumrennt, wärs in der Tat Schwachsinnig speed und direction bei jeder änderung einer dieser Werte zu übertragen und stattdessen x und y sinnvoller, aber mehr fältl mir grad auch nicht ein wo dies sinnvoller wäre

    Also bitte nicht auf Uralt Threads antworten, wenns nicht gerade wichtig ist
  • Benutzer online 2

    2 Besucher