Multiplayer mit Steam SDK keine Kontrolle über Character

  • Moin Leute,


    ich fange gerade an mein bisheriges Projekt zur Evaluation zu UE4 zu portieren.
    Es ist ein Multiplayer in dem jeder Spieler einen Character steuert.
    Nun habe ich mir das Steam SDK eingerichtet und im Standalone sehe ich auch Avatar + Overlay, also alles gut soweit.


    Zudem habe ich einen eigenen GameMode mit eigenem GameState, Character, PlayerController. Alles auf NetOnLoad/Replicate (Movement) aktiv.


    Starte ich das Spiel in der Game Scene, also ohne Session, lässt sich der Character steuern.
    Starte ich eine Steam (Standardeinstellungen im Node) Session und lade die Scene nach Success, habe ich meinen Character, kann ihn aber nicht steuern.


    Ich habe es sowohl mit direktem Input (ich bin Server und habe Authority), als auch über RPC probiert, nichts hilft.
    Zudem habe ich versucht, nach dem PostLogin im GameMode den Character manuell zu erstellen und dem einloggenden PlayerController über Possess zuzuweisen.
    Das Zuweisen geht (laut ControlledPawn), bringt meinen Character aber auch nicht zum Laufen.


    Was ich noch nicht probiert habe, ist nach dem Erstellen der Session -> OpenLevel die Option "listen" zu geben, kann es daran liegen?
    Das habe ich erst später in einem Tutorial aufgeschnappt.


    Nun meine Frage: Habt ihr hier eine Idee, was ich dämlicherweise vergessen haben könnte?

  • In Maps&Modes habe ich meinen GameMode als Default eingestellt und in der World ist er auch eingestellt.
    Was ich allerdings auch noch gestern Abend gesehen habe ist, dass ich wohl meine Game Instance Class nicht gesetzt habe... Ich berichte, ob das den Fehler behebt.
    Wäre auf jeden Fall was, was Sinn macht.


    Task für mich selbst als Erinnerung:

    • Game Instance Class unter Maps & Modes einstellen
    • Im OpenLevel nach Erstellen der Session die Option "listen" übergeben
  • Ich kenne das Problem nicht aber ich würde echt probieren das ganze ohne Session zu starten, also normalen listen server starten z.B. über editor oder console und schauen ob es da auch so ist. Dann kannst du schonmal Steam ausschließen.


    Wie genau wird denn der Charakter possessed? Wird er über einen Player Start vom GameMode gespawnt oder steht er im Level und du nutzt die AutoPossess funktionalität. Außerdem wäre es gut zu prüfen ob dein ListenServer den richtigen GameMode, etc hat wenn du ihn startest.
    Das wären zumindest so die Sachen die ich zuerst prüfen würde, zum debuggen.


    Der Fehler ist aber definitiv nicht normal. Als mein Spiel richtig als ListenServer ohne Session lief, lief es sowohl mit OnlineSubystemNull als auch Steam.

  • Damit ihr wisst, dass alles mit dem Subsystem etc. funzt... Offenbare ich meinen peinlichen und schnell auftretenden Anfängerfehler:


    Ich hatte im Hauptmenü für die UI nur noch UI Input erlaubt.
    Beim Start der Game Scene aber nicht mehr auf Game Input umgestellt.
    Somit war also mein Player Input einfach blockiert.


    Nun setze ich mich in die Schamecke und danke euch für die Hilfe! :laughing: