Multiplayer (à la MMORPG): neue Spieler

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Multiplayer (à la MMORPG): neue Spieler

    Komischer Thread Titel, ich weiß..^^
    Also.. Ich mach halt ein Online Spiel.. Und ich hab keine Ahnung, wie ich es machen soll dass wenn sich ein neuer Spieler registriert hat, dann ingame ist.
    Zur Veranschaulichung: bei einem mormalen Online Spiel, sagen wir zB Pong, gibt es eine bestimmte Anzahl an Spieler gibt, und für jeden Spieler ein Objekt. Schön und gut.. und wie mache ich dass wie bei einem MMORPG? Also mit sozusagen unendlicher Anzahl an Spieler?
    Soll dann für jeden Spieler beim Client ein Objekt erstellt werden welches dann praktisch nur den Sprite und die Koordinaten (mehr brauch ich atm noch nicht) vom Server an den Client leitet?

    Hoffe jemand weiß was ich meine und kann mir helfen..^^

    Liebe Grüße,
    Megm

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Megm ()

  • Soll dann für jeden Spieler beim Client ein Objekt erstellt werden welches dann praktisch nur den Sprite und die Koordinaten (mehr brauch ich atm noch nicht) vom Server an den Client leitet?

    Exakt, nur das bei jedem Spieler für jeden Spieler n Obejct erstellt werden muss.
  • Oki.. also ein neuer Spieler kommt online.. der Server schickt an alle anderen Spieler etwa 'Mach n neues Objekt, n neuer Spieler is on gekommen'. Dann schickt der Server noch die Koordinaten des Spieler an den Client. Wie weiß dann der Client, welchem Objekt (dem neuen Objekt kann man doch nicht einfach nen Namen geben, oder erinner ich mich nur nich dran?^^) er die Koords zuordnen muss?
  • klar kann man objecten "Namen" geben.
    so zb:

    GML-Quellcode

    1. Spieler273=instance_create(x,y,obj_player);

    und mit:

    GML-Quellcode

    1. Spieler273.x=blubx;
    2. Spieler273.y=bluby;

    Kannste dann die Koordinaten ändern.
    Wobei ich das dann mit nem array (Spieler) machenwürde, wobei i dann durchgegangen und der erste nicht benutzte wert genommen wird.
  • Man kann das Ganze natürlich auch so machen, dass die Leitung geschont wird. Dazu muss nicht der Server die ganzen Daten senden, sondern der Client sagt "Ich bin an Position XY und habe einen Zeichenradius von 50 Bodeneinheiten eingestellt. Sende mir die Positionen alles Spieler und aller Objekte in deisem Bereich!". Auf diese Weise kann man die Leitung entlasten.
  • Original von TrunX
    klar kann man objecten "Namen" geben.
    so zb:

    GML-Quellcode

    1. Spieler273=instance_create(x,y,obj_player);

    und mit:

    GML-Quellcode

    1. Spieler273.x=blubx;
    2. Spieler273.y=bluby;

    Kannste dann die Koordinaten ändern.
    Wobei ich das dann mit nem array (Spieler) machenwürde, wobei i dann durchgegangen und der erste nicht benutzte wert genommen wird.

    Das würde ich eher in 'nem Array lösen, sonst müsste man für jeden Player 'ne extra Zeile Code haben, und wahrscheinlich nicht nur an dieser Stelle.
    Also lieber

    GML-Quellcode

    1. Spieler[273]=instance_create(x,y,obj_player);

    und mit:

    GML-Quellcode

    1. Spieler[273].x=blubx;
    2. Spieler[273].y=bluby;
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • Original von Kilik
    Original von TrunX
    klar kann man objecten "Namen" geben.
    so zb:

    GML-Quellcode

    1. Spieler273=instance_create(x,y,obj_player);

    und mit:

    GML-Quellcode

    1. Spieler273.x=blubx;
    2. Spieler273.y=bluby;

    Kannste dann die Koordinaten ändern.
    Wobei ich das dann mit nem array (Spieler) machenwürde, wobei i dann durchgegangen und der erste nicht benutzte wert genommen wird.

    Das würde ich eher in 'nem Array lösen, sonst müsste man für jeden Player 'ne extra Zeile Code haben, und wahrscheinlich nicht nur an dieser Stelle.
    Also lieber

    GML-Quellcode

    1. Spieler[273]=instance_create(x,y,obj_player);

    und mit:

    GML-Quellcode

    1. Spieler[273].x=blubx;
    2. Spieler[273].y=bluby;

    Haste mich missverstanden oder versteh ich dich wiedermal falsch?^^
  • Nee, diesmal hast du Recht.^^
    Muss ich irgendwie falsch gelesen haben, sry.

    *hust* Ich meinte: Ich wollt's nur nochmal verdeutlichen, wie das genau gemeint ist.^^
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • Ich denke du solltest erstmal Tutorials und Examples zu dem Thema lesen. Leider gibt es hier in der Database nicht viel zu dem Thema, aber du kannst ja mal das offizielle Forum durchsuchen, da muesstest du eigentlich was finden. Da hab ich scvhon unmengen an Material zu dem Thema gefunden. Und die 39dll hat sogar ein Beispiel zu dem Thema mitgeliefert...
  • Mit der 39dll arbeite ich ja :) bei mir war da nur ein Pong Example mitgeliefert.. Hab mir aber auch ein 39dll MMORPG Example angschaut, aber bei fremden Code blick ich meistens nicht so ganz durch *g*
    Weiß aber jetzt ja wie ichs lösen kann.
  • Benutzer online 1

    1 Besucher