Join-Session schlägt fehl

  • Guten Abend,


    ich hoffe euch allen geht es gut, und das ihr alle gesund seid.


    Ich habe mich endlich dazu entschlossen, mal ein Multiplayer-Game zu entwickeln. Das hatte ich schon lange vor, aber immer ein bisschen Angst vor Replication etc. hatte.

    Und wie sich heraus stellt, scheitere ich bereits, bevor ich überhaupt zu Replication und so komme ;) .


    Denn das erste, was ich angehen wollte, war das Session-System. Dafür habe ich mein Projekt auch für das Online-Subsystem für Steam vorbereitet.


    Widgets, Game-Modes und Game Instance stehen auch schon. Nur funktionieren sie nicht.


    Das ist auch DIE Gelegenheit, den neuen Blueprint-Parser hier im Forum zu testen.


    Also:


    Hier der Blueprint aus dem PlayerController, für den PlayerCharacter im MainMenu:

    Externer Inhalt blueprintue.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Hier der Blueprint aus der GameInstance:

    Externer Inhalt blueprintue.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Mein Problem sind folgendes:


    Wenn ich das Game (im Editor) teste, und der NetMode auf "Play As Listen Server" steht, so wird mir das Main Menu nur auf dem Server angezeigt, auf dem Client aber nicht. Beende ich den Test, so erhalte ich folgende Errormessage:


    Only Local Player Controllers can be assigned to widgets. MainMenu_PlayerController_C_1 is not a Local Player Controller.


    Ich bin wirklich für jede Hilfe dankbar, da ich da seit zwei Tagen dran Sitze, und ich kein bisschen weiter komme.


    Vielen Dank schonmal im voraus, und einen schönen Abend noch :)



    EDIT:


    Also ich hab es jetzt zum Teil hingekriegt. Ich habe für mein Main-Menu, nähmlich einen eigenen PlayerController gemacht, wobei es dabei scheinbar Probleme gab. Nachdem ich alles aus dem Controller (war ja nur die Widget-Darstellung) in meinen Player Character gepackt habe, und ich den Controller gelöscht habe, war zumindest die Fehlermeldung, wegen dem Local Controller, weg.

    Look behind you! A three-headed monkey!

    3 Mal editiert, zuletzt von Janinus ()

  • Ich bin gerade etwas verwirrt. Bist du im Main Menu bereits in einer Session? Falls nämlich nein, dann brauchst du da doch noch gar keinen server & client test. Zu diesem Zeitpunkt bist du nur auf dem Client unterwegs und du hast noch keinen Server.


    Das Steam Session System funktioniert über die SteamSDK. Unreal ist bis zu dem Zeitpunkt wo du eine Session erstellst oder einer joinst also Client only. "Der Play as Listen Server" bringt dir da also noch nichts.


    Das was du gerade machst kannst du folgendermassen testen:

    Du brauchst entweder zwei verschiedene Geräte mit unterschiedlichen Steam Accounts oder arbeitest mit Virtualisierung. Dann startest du auf beiden Geräten dein Game. Auf einer Seite klickst du Host und auf der anderen Seite müsste die Session mit FindSession gefunden werden.


    Dabei musst du aber ein paar dinge Sicherstellen:

    1. Die Konfiguration für Steam ist im Projekt richtig eingestellt

    2. Du Testest mit 2 unterschiedlichen Steam Profilen

    3. Beim Starten im Standalone wird Steam gestartet (Diese kleine Fenster unten Rechts)


    Joinst du dann einer Session wechselst du ja das Level. Erst ab diesem Level greift der Unreal MP und auf diesem Level kannst du dann auch mit "Play as Server" wirklich testen.


    Hoffe ich konnte dir damit weiter helfen.


    Gruss Veelos

  • Veelos Danke für deine Antwort :). Bei dem "As Listen Server", hab ich mich auch vertan, weil ich gedanklich noch bei einer anderen Version der UE4 war, wo das immer als "Listen Server" ablief, bzw. immer in Client und Server unterschieden wurde. Ich hab nur nicht darüber nachgedacht, dass man das in zwei unterschiedlichen Szenarien betrachten muss (Main Menu und In-Game). Ich hab es zwar schon gelöst bekommen, hätte ich es aber nicht geschafft, hätte mir deine Antwort weiter geholfen :) .