Multiplayer Replicate ot not to be replicate :D

  • Moin,



    hab hier schon paar Monate nichts mehr gepostet, da ich auch nicht mehr weiter gemacht habe mit meinem Projekt, aber grade hab ich viel Freizeit also hab ich es mal wieder angemacht.


    Mir kam dann gestern beim Battlefield zocken ein Gedanke wieder auf.

    Ich wollte ja mal versuchen das in meinem Game jeder Spieler alles auf die gleiche Art sieht.

    Wie z.b. in Battlefield jeder Spieler die eigenen Teammates in Blau sieht und die Gegner in Rot und die Gegner sehen sich selbst auch Blau und die anderen Rot.


    Dazu kam mir folgende Idee.

    Jetzt grade werden in meinem Game von jedem Spieler 5 Cubes gespawned durch den Server, diese werden dann an den anderen Spieler replicated.

    Das Problem war bisher das ich das mit diesem Schritt die Position der Karten beim anderen Spieler nicht ändern kann. Sprich ich musste für Spieler 1 die Karten auf der linken Seite und für Spieler 2 die Karten auf der rechten Seite spawnen.


    Jetzt hab ich mir überlegt anstatt die Karten über den Server spawnen zu lassen und zu replizieren. Sage ich dem Server einfach nur, spawne mir bitte 5 Karten und sag es dem anderen Spieler das ich dies gemacht habe.

    Der andere Spieler bekommt dann die Information vom Server, das der andere 5 Cubes gespawned hat und bittet den Server 5 cubes auf der anderen Seite anzuzeigen.


    Macht das Sinn?

  • Ja soetwas kann Sinn machen.

    Etwas abstrakter gesagt synchronisitert du nicht den Actor, sondern du hältst nur das Datenmodell (also welche Karten order gar nur wie viele Karten hat ein Spieler) synchron, während deine Actoren in jedem Client lokale repräsentationen des Datenmodells sind.

    So handhabt man z.B. gerne Special effects wie Particles und Sounds, hier müssen diese ja z.B. auf einem Dedicated Server gar nicht spawnen da gar nichts angezeigt wird, jedoch aber auf Spielerseite.

  • jeden spieler ein anderes spielfeld sehen zu lassen wär ja doch der kompliziertere weg. es geht ja um ein kartenspiel, ich denk es mit 2 cams aus 2 richtungen zu zeigen wär ja am sinnvollsten, also dass beide von vorn draufschauen, nicht von rechts und links?


    meinst du, du kannst nicht darstellen, dass die karten für den anderen verdeckt daliegen?

  • Bisher war es so das die Kamera von oben auf das Spielfeld schaut. Aus der selben Richtung.


    Habe jetzt erstmal eine andere Sache probiert die mir vorgeschlagen wurde.


    Jede Karte die spannt wird eine ID zugewiesen. 1 für Player 1 und 2 für player 2.

    Dann vergleiche ich die ID mit der Spieler ID und Färbe die dann Local ein. Funktioniert so auch halb. Allerdings werden bisher beim Player 1alle Karten Blau und beim Player 2 alle Rot angezeigt. Da muss ich noch rausfinden wieso da einer der ID nicht richtig übertragen wird.


    Das Problem was mir aber bei dem System auffällt und wo das System was ich mir ausgedacht hab vielleicht besser ist, sind Kartenskins. Wenn der andere Spieler einen benutzt un. Ich das aber local ändere weiß ich ja nicht welcher Skin das ist.

  • Wieso nicht einfach 2 Triggerboxen setzen, für den einen ist alles links rot, für den andern rechts ^^


    Sollte auch per Material möglich sein (Distance Node + gesetzte Location per Material Parameter Collection im PlayerController), pro Spieler gibts eine Instance (darfst aber nicht per PIE testen, da siehst nur das von dem der den Wert als letztes gesetzt hat, wenn ichs noch richtig weiß)...

  • Wieso nicht einfach 2 Triggerboxen setzen, für den einen ist alles links rot, für den andern rechts ^^


    Sollte auch per Material möglich sein (Distance Node + gesetzte Location per Material Parameter Collection im PlayerController), pro Spieler gibts eine Instance (darfst aber nicht per PIE testen, da siehst nur das von dem der den Wert als letztes gesetzt hat, wenn ichs noch richtig weiß)...

    Da werde ich aber auchdas Problem haben das ich denn Triggerboxen bei einem Sein das auch wieder mitteilen muss. Bzw. Das die triggerboxen nur auf bestimmte actor reagieren. Da ja sonst, wenn man mit der Karte auf die triggerbox der anderen Seite kommt diese umfärbt.