Eine Menge Spieler: API Server vs Dedicated UE Server

  • Hi Zusammen,


    ich arbeite gerade an einem Spiel in welchem ich viele Spieler gleichzeitig spielen lassen möchte.


    Da stellt sich die Frage, wie sieht das Server System aus. Soll es ein Webbasierter API-Server sein oder alles in UE mit dem UE Server machen.


    Habt ihr Erfahrung mit MMO Server Systemen?

  • Hallo


    Ich habe keine Erfahrung mit MMO Server Systemen.

    Aber Was genau meinst du mit "oder"?

    Die meisten (klassischen) Spiele verwenden beides. Meist einen Online Service wie den EOS, Steam, Amazon etc. oder eine eigene API mit entsprechender Implementation des OnlineSubSystem.

    Ich denke für ein MMO braucht es aber einen angepassten UE Server und eine eigene Web API.

    Denn weder der UE Server nocht die üblichen Online Services, wie EOS etc. werden die notwendingen Anforderungen für ein MMO erfüllen. Kommt aber auch natürlich auf die Art des Spiels an.


    Gruss

  • Ok, ich arbeite mich in diese ganzen Themen erst ein, stelle hoffentlich nicht deshalb zu dumme Fragen haha.


    Das Spiel geht sehr stark in die Richtung GTA. Allerdings mit viel mehr Online Aktivität, also den Fokus weniger auf das Gameplay und mehr auf Multiplayer.


    Doofe Frage aber UE5 kann auch direkt mit einer Datenbank sprechen, ist es dann nicht möglich das komplett in Unreal zu machen?


    Wenn man für Accounts zb den Service von UE nutzt.

  • Geht es dir jetzt um die Lobby, also den Teil wo Spieler andere Server finden können, oder um den Spielablauf an sich?


    Bei ersterem, auch wenn UE5 direkt in Datenbanken schreiben kann, wirst du ja irgendwie immer eine Spielerverwaltung brauchen.


    MMO-Technisch wirst du nicht um einen dedikadet Server herumkommen.


    Es wäre aber schon gut zu wissen, was du nun genau meinst, bzw. welchen Teil.


    Nehmen wir mal Minecraft. Mojang hat da auch eine Nutzerverwaltung, webbasiert, dann halt das Spiel selber, halt hostet oder dedikated, kann man beides machen. Das beruht aber in beiden Fällen auf Minecraft, und in meinem Fall halt Java.


    Oder das älteste MMO-Spiel, welches ich persönlich gerne ab und an noch mal spiele, Ultima Online. Auch da hast du eine Webbasierte Spielerverwaltung, einen Loader, der eben halt die Daten der User verwaltet, abfragt, Updates runterlädt etc. und das Spiel selber basiert dann auf einem dedikated Server.

  • Doch das geht. Aber die UE hat eben keinen Service für Accounts. Aber ich glaube du meinst das schon korrekt.


    Du brauchst die Web API von Epic, also Epic Online Services (oder eben Steam, Amazon oder was eigenes). Glücklicherweise gibts dafür ein Plugin von Epic, das ist schon in der Engine und das musst du nur unter Plugins aktivieren. Das ist extrem einfach zu nutzen. Dieses Plugin erlaubt dir dann die nutzung von Login, Freunden, Achievements, Purchase, Session, Voice etc.


    Zusammen mit deiner DB, die du dann vom UE dedicated Server aus direkt ansteuert hast du dann die Grundfunktionalität.

  • Hey danke euch schon einmal für die Tipps.


    Wichtig ist mir gerade eine gute Basis zu schaffen um mit vielen Spieler gleichzeitig klarzukommen. Die Lobby und Serversuche sind aktuell noch nicht so wichtig.


    Es sollen eben Features wie Proximity Voice Chat und Trading zwischen Spieler möglich sein und das kann sicher zu Problemen führen wenn da mehr als 50 Spieler auf einem Server sein sollen.


    Aber das hat mir bereits weitergeholfen.


    Eine Frage hätte ich noch habt ihr Erfahrungen was von der Performance besser ist gerade für MMOs, ich weiß das kommt sehr aufs Detail drauf an aber vielleicht habt ihr ja bereits mit dem ein oder anderen gearbeitet und da ein paar Tipps.

  • Wenn auch noch Voicechat usw. hinzukommt dürfte das größte Problem wohl die Performance des Servers und die Anbindung an das Internet sein.


    Ich weiß ja nicht wie viele Daten bei so einem Chat übertragen werden, aber wenn du mit so um die 50+ Spieler rechnest könnte das schon schwierig werden. Ich habe jetzt zwar noch nie gemessen, was zum Beispiel Teamspeak so alles überträgt, aber mit hin und her ist es bestimmt nicht wenig.


    Auf jeden Fall würde ich dir da nicht unbedingt raten da Webinterfaces zu benutzen, es sei denn es gibt da etwas, was den Spieler dann auf einen extra dedikated Teamspeakserver oder so umleitet und anmeldet.


    Es gibt ja entsprechende Plugins in UE, also wird es auch schon jemand genutzt haben. Aber ob das auch bei einem MMO funktioniert, mit 50+ Spielern ist fraglich. Man darf ja den Ursprung der UE nicht vergessen, sie kam mal aus einem Shooterbereich, wo dann so 5 gegen 5 oder so gespielt haben.


    Andererseits, Versuch macht klug. Technisch wird es gehen mit der UE. Der Rest ist Sache der Performance.


    Denke ich zumindest. Auch, wenn ich mir in Sachen Voicechat erst durch deinen Beitrag Gedanken gemacht habe.


    Alles Andere, Traden oder so, das sollte nicht das Problem sein. Da kann ich nur mein längstes Lieblingsspiel Ultima Online wieder anführen, da konnten die Spieler auch Handel betreiben, und das Spiel funktionierte sehr gut in Zeiten wo es noch nicht einmal ISDN in weiter Verbreitung gab. Allerdings muss man dazu auch sagen, es war bei weitem noch keine 3D-Darstellung, und die NPCs bewegten sich halt nur alle paar Sekunden mal ein Feld weiter, solange sie nicht mit dir interagiert, oder dich nicht angegriffen haben.


    Wie gesagt, kurz zusammengefasst, ich denke, es wird, wenn es schwierig wird, am ehesten an der Performance von Internetanbindung und Serverperformance liegen. 50+ Spieler, der braucht schon was.


  • Fürchte da gibt es kein Schwarz oder Weiss, manche kleinen Details können viel Einfluss auf die Performance haben. Letztlich wiegt man in der Praxis immer Performance gegen Sicherheit ab. So wäre z.B. sicherer jegliche bewegung des Spielers auf dem Server zu steuern und nur Inputs vom Client entgegenzunehmen. Dadurch wäre es unmöglich Hacks zu nutzen die es einem ermöglichen zu fliegen oder mit 10facher geschwindigkeit zu laufen. In der Praxis kostet das aber zu viel Serverlast und Bandbreite und führt zu mehr lag. Je mehr Spieler du mit einem Server bedienen willst desto mehr Funktionen lagerst du auf den Client aus und desto mehr Angriffsfläche für hacks bietest du.


    Auch ein wichtiger Aspekt ist die PING eines Spielers. Hast du nur einen Server kannst du nicht viel machen - aber mit 2 Servern könntest du einen Server als "Quarantäne" deklarieren und alle Spieler mit einer hohen Ping dahin verschieben, dann haben wenigstens die Spieler mit niedriger Ping ein gutes Spielerlebnis. De facto wirst du es als newcomer kaum hinbekommen die ganze Welt mit gut angebundenen Servern in jedem Land zu versorgen von daher wirst du oft gegen lag käpfen.


    Voice Chat würde ich auf einen Separaten Server auslagern. Du wirst dir sonst deinen Server mit zuviel Paketen zuschiessen.