[Gelöst] Servertravel (seamless) Not recognized bei dedicated Servern?

  • hey,
    Kennt sich jemand mit dedicated Servern hier aus?
    Meiner läuft zzt auf nem vserver und man kann auch joinen.
    Probleme gibt's erst wenn ich von der Lobby in die Gameplay map traveln will. Im log steht command Not recognized.
    Ich habe es zum Test bisher so gemacht das die Anzahl der Slots gleich mit der Anzahl die gejoint ist, ist. Dadurch das die Anzahl gleich ist sollte der Server direkt traveln sobald ich joine aber das tut er nicht.
    Kennt jemand eine Lösung dafür oder n workaround?


    Ich habe gelesen das ein dedicated Server nur 1 map haben kann was ja bedeutet das ich mehrere Instanzen vom Server machen müsste (für jedes lvl eine) und dann jeweilig switchen müsste aber würde sowas seamless gehen? Also ohne disconnect? Ich hoffe es ist anders möglich weil das ja echt ne kack Arbeit wäre

  • Hi, pls poste mal ein paar Screens von welcher Klasse aus du zu welcher Klasse aus travelst. zB Lobby Gamemode -> Gameplay Gamemode oder so. Kenne mich zwar nicht mit Dedicated Servern aus aber:


    "Command Not recognized" klingt nach: Du benutzt in deiner Lobby einen Console Command um auf deinen Server zu traveln zB Servertravel GameplayMap.
    Ist deine Lobby Map auch ein Dedicated Server oder Listen Server? Wenn Listen Server, dann musst du von der Lobby aus ja joinen, nicht Traveln.


    Und zu der 1 Map: Schon Streaming Level ausprobiert?

  • Ich habe gelesen das ein dedicated Server nur 1 map haben kann was ja bedeutet das ich mehrere Instanzen vom Server machen müsste (für jedes lvl eine) und dann jeweilig switchen müsste aber würde sowas seamless gehen?

    Ich wüsste nciht wieso ein Server mehrere Maps offen haben soll?


    Wie hast du dir denn deinen Netzwerkprozess überlegt?
    Gibt es eine Lobby wie z.B. bei Left4Dead oder League of Legends?
    Oder was willst du mit einer Lobby? Soll es nur eine Serverliste werden wo du die Server siehst?


    Erkläre uns bitte mal genauer was du erreichen möchtest.

    Ich habe es zum Test bisher so gemacht das die Anzahl der Slots gleich mit der Anzahl die gejoint ist, ist.

    Das heißt du manipulierst nachträglich deine Server Session oder wie?


    Ich bin gerade selber dabei mich in das Thema dedicated Server und Replication einzuarbeiten, deswegen bin ich sehr interessiert daran wie ihr eure Ziele umsetzt.

  • Hi, pls poste mal ein paar Screens von welcher Klasse aus du zu welcher Klasse aus travelst. zB Lobby Gamemode -> Gameplay Gamemode oder so. Kenne mich zwar nicht mit Dedicated Servern aus aber:


    "Command Not recognized" klingt nach: Du benutzt in deiner Lobby einen Console Command um auf deinen Server zu traveln zB Servertravel GameplayMap.
    Ist deine Lobby Map auch ein Dedicated Server oder Listen Server? Wenn Listen Server, dann musst du von der Lobby aus ja joinen, nicht Traveln.


    Und zu der 1 Map: Schon Streaming Level ausprobiert?

    Das funktioniert im Lokalen MP ja ohne Probleme da kann ich zu jeder map traveln wie ich will, Problem bei den dedicated Servern ist das man nur eine Map pro server instance hat und es geht anscheind nicht das man einfach von der Lobby aus auf ne andere Map Joined.
    Sprich für jede map ne instance vom server und eben dann joinen.





    Der Server hat ja nicht die Maps offen aber er kann sie auch nicht einfach laden wie im lokalen mp.


    Ich habe mein lobby System eigentlich sogut wie fertig nur muss ich jetzt wieder einiges ändern wegen des ded servers xD.
    Meine Lobby ist allerdings interaktiv sprich die Lobby ist ein Level wo man sich bewegen kann und alle Menüs sind 3D widgets.
    Was ich erreichen will ist das die ded server sogut rennen wie der Lokale MP ^^.
    Wird dann aber doch nicht so easy :D

  • Das funktioniert im Lokalen MP ja ohne Probleme da kann ich zu jeder map traveln wie ich will, Problem bei den dedicated Servern ist das man nur eine Map pro server instance hat und es geht anscheind nicht das man einfach von der Lobby aus auf ne andere Map Joined.Sprich für jede map ne instance vom server und eben dann joinen.

    Aber ganz konkret: Wo ist deine Lobby Map? Wird eine Session hier für createt oder liegt sie auf dem Dedicated Server?


    Sprich, kannst du als Client eine Lobby erstellen (Session Createn) -> Gehst in die LobbyMap -> Andere spieler Joinen in der Lobbymap -> Alle joinen gemeinsam auf den Dedicated?


    Bin ebenfalls an diesem Flow interessiert, wie Darkentik. :D

  • Also man startet Singleplayer mäßig in der start map welche die selbe ist wie die spätere lobbymap, man createt ne session, andere können Joinen und der Host kann dann traveln wenn alle da sind und los gehts. < Das ist was funktioniert > allerdings nur lokal.


    Beim dedicated Server der ja auf nem Vserver liegt ist es so das ich ihn manuel starte vorher. Damit er auch ne Session erstellt habe ich ne Serverstart map die im lvl bp einfach nachfragt is dedicated server? mit einem Branch wenn True dann erstellt er ne session und öffnet die lobbymap wenn false sprich das wären dann ja die Spieler dann startet er nur die Lobby map.


    Ich kann dann in meinem Widget nach sessions suchen und finde den dedicated server. Das ganze geht übrigens über steam ^^.
    dann joine ich dem ded server. So dann wenn ich drauf bin möchte ich eigentlich das wenn ich auf travel drücke der Server das lvltravel command ausführt. Da ich mir nicht sicher war ob das als client so einfach gehen wird hab ich es erstmal automatisch ausführen lassen sobald die Slot und Spieler anzahl gleich ist. Und hier kommt dann das Recognized. bin auch nicht der erste der das Problem hat Hier.


    Nur der der Typ da auch instanzen gesetzt hat. Frage ist nur wie ich das machen soll wenn ich die 2te map als 2te server instance habe, wo halte ich z.b Spielernamen und wie kann man den Server switchen ohne das alle disconnecten ??? Fragen über fragen

  • Würde dir empfehlen einen Schritt zurück zu gehen:


    - Wo befindest du dich vor der StartMap? Du musst ja von einer neutralen Map aus erst die Session Createn und anschließend (zB mit einer Listen Option) deine Startmap / LobbyMap aufrufen -
    erst dann hast du ja auch eine valide Session.


    Jetzt würde ich in deiner Startmap / LobbyMap erstmal überprüfen, ob und wer anwesend ist. Verwendest du Advanced Sessions? Dann lass dir den Steam Namen der anwesenden rausgeben usw,
    hauptsache du hast ein funktionierendes Array von Unique Net IDs. Neu ankommende Player kannst du im Gamemode -> Event On Postlogin abfangen, lass dir von hier auch Unique Net IDs rausgeben, store diese
    und suche deinen Dedicated. Wenn gefunden solltest du mit allen beteiligten Net IDs joinen können (Join Session).


    Würde erstmal ohne Console Command und vorallem ohne Level BP probieren. Dazu gibt es doch Gamemode, Gamestate, Player Controller etc.


    Gruß

  • Also,


    die serverstartmap ist vor der lobby da joined im grunde niemand spieler die die .exe ausführen werden da durchgereicht und startet im SP mode in der lobbymap.


    Ein dedicated server wiederum erstellt ne session in der serverstart map und wechselt dann in die Lobby.


    spieler die nun im SP-mode sind können dann auf ne konsole zugreifen und dort entweder ne session erstellen oder eine suchen.
    Wenn sie ne session Suchen finden sie in diesem Fall den ded server und können Joinen. Sprich eigentlich kann ich mich nicht beschweren weil es ja funktioniert ich müsste jetzt nur den dedicated server auf lvl 1 umstellen und dort dann ne entryliste aufmachen wo ich genau das was du beschrieben hast machen würde aber ich möchte das man die Map auf die man dann später geht von den clienten bestimmt wird sprich ich möchte das wenn dann auf Travel to map gedrückt wird reisen alle zusammen auf ne neue Map. Nur da liegt der Hase im pfeffer ^^

  • Du kannst gerne mal ein paar Screens posten, damit die anderen hier nachvollziehen können was du vor hast.


    Aus der Beschreibung wird man nicht ganz schlau. Z.B. Warum erstellt der Ded Server die Lobby und nicht der Spieler von Lokal?


    Die Lobby dient doch nur dazu, dass sich mehrere Spieler zusammenfinden und in einem Paket verschnürt auf den Ded Server gemeinsam joinen?


    Und musst du nicht eigentlich von deinem Ded aus alle Maps die du ansteuern können willst, schon gestartet haben?


    Dein Dedicated Server ist doch der Chef, dann muss er auch alle Maps gestartet haben, auf die man hin traveln möchte.


    Sogesehen sind es dann mehrere Ded Server, für jeden eine Map. Oder verstehe ich da was falsch?

  • Bin leider noch nicht zuhause deshalb gerade schwierig mit screens.


    Lokal ingame kann ich den ja nicht starten er muss ja von mir vorher auf dem vServer lokal gestartet werden. Aber damit der Server weiss was er machen soll bekommt er on begin play in der startmap die sonst leer ist den befehl create session (Advanced) ja.
    als spieler bekommt man davon ja nicht viel mit, man staret ja ganz normal im Menü (Lobbymap - Singleplayer) dann kann man an einer konsole dem Server Joinen und ist dann in der Lobby auf dem dedicated Server.


    Als Spieler kann man ja auch ne Lobby erstellen aber die Session ist dann eben auf dem eigenen Rechner gehostet.


    Genau man sollte wohl meherere dedicated Server haben für jede map einen + lobbymap von der man dann auf die jeweiligen server wechselt.
    Problem was ich gerade im Denkprozess habe ist wenn ich mehrere server erstelle, wir er wieder Probleme mit Steam bekommen so das die api nicht initiallisiert werden kann weil steam ja nur eine instance Pro user pro rechner erlaubt.


    Kann man das umgehen ? Bzw muss ich echt für nen dedicated Server n steam Account haben der immer läuft? Das machen doch andere Entwickler anders oder ?

  • Als Spieler kann man ja auch ne Lobby erstellen aber die Session ist dann eben auf dem eigenen Rechner gehostet.

    Ja genau, ein Listen Server. Da werden alle Steam IDs collected und dann gemeinsam auf den Dedicated gejoint.
    Warum sollte die Lobby ein Dedicated sein?



    Aber damit der Server weiss was er machen soll bekommt er on begin play in der startmap die sonst leer ist den befehl create session (Advanced) ja.

    Und was passiert dann On Success ? Hier musst ja deine Lobby öffnen, damit andere mit drauf können.
    Versteh nicht so ganz was du dir da zusammengeschustert hast ^^


    Gruß

  • Ja genau, ein Listen Server. Da werden alle Steam IDs collected und dann gemeinsam auf den Dedicated gejoint.
    Warum sollte die Lobby ein Dedicated sein?

    Heisst das ich sollte dann von nem Lokalen server auf den dedicated server Joinen ? ich bin doch dann schon in einer session geht das denn trotzdem? Hast du vielleicht n Beispiel BP?


    On Success hat er eben die Lobby Map erstellt und spieler können drauf joinen.
    Ich kann ja wie gesagt den dedicated Server nicht ingame starteten sondern mache dies vorher lokal. Und damit er gefunden werden kann bzw gelistet ist muss ich ihm ja zu begin also nachdem er gestartet ist ne session Createn lassen

  • das hört sich nur so verwirrend an ist aber eigentlich ganz schlüssig.
    Werde bei Zeiten n paar Screenshots zufügen damit es besser zu verstehen ist allerdings hat mir das sehr geholfen n dedicated Server zu erstellen. Wäre jetzt n bisschen viel das alles zu erklären und zu durcheinander alles zu zeigen. Aber bei Fragen helfe ich wo ich kann.