• Hier das Original: https://www.warofrightsforum.c…platform-system-explained



    Hier die schnelle Google Übersetzung:


    Hallo zusammen,


    Nachdem unsere Gemeinschaft in den letzten Wochen Beiträge verfasst hat, in denen einige der Probleme, die sie derzeit (und seit langem) im Alpha erlebt, hervorgehoben wurden, waren wir der Meinung, dass wir Ihnen allen erklären müssen, was getan wird, um diese Probleme zu lösen. Deshalb baten wir Philipp - den anderen Teil unseres Programmierungsteams, der sich nicht auf die Artillerie konzentriert - zu erklären, was er in erster Linie seit der Veröffentlichung des Alphas auf Steam Early Access unternommen hat.


    Das Plattformsystem


    Hey, ich bin Philipp und einer der Programmierer des War of Rights-Teams.

    Ich habe hauptsächlich an Kernsystemen wie Spielregeln, Spawning oder Networking gearbeitet, um nur einige zu nennen.

    Seit einer ganzen Weile, seit Januar letzten Jahres, habe ich mich auf ein ziemlich großes und schwieriges Unterfangen konzentriert, das wir für notwendig erachtet haben, um die Entwicklung von War of Rights zu erleichtern und uns zu ermöglichen, eine brauchbare Online-Multiplayer-Erfahrung zu bieten. Dabei handelt es sich um ein völlig neues Plattform / "Lobby"-System.


    Was ist das?


    Die Aufgabe des Plattformsystems besteht darin, alle Funktionen einer "Plattform" zu verwalten, auf der das Spiel derzeit läuft.


    Einige der entscheidenden Merkmale sind:


    - Authentifizierung

    - Matchmaking und Server-Entdeckung

    - Handhabung der Verbindung zwischen Client und Server

    - Plattformbezogener Datenaustausch (Benutzernamen, Clans, etc.)

    - Chat


    Und einige der weniger entscheidenden:


    - Freunde/Klane/Gruppen

    - Möglichkeit, an Spielen teilzunehmen, an denen Ihre Freunde/Clans/Gruppen teilnehmen

    - Reichhaltige Statusanzeige darüber, was Sie anderen antun (z.B. "Angriff auf Karte x für Seite y")

    - Statistik

    - "Benutzergenerierter Inhalt" (Icons, Server-Banner usw.)


    Warum ist das so?


    Im Moment werden unsere Online-Funktionalitäten von einer Bibliothek verwaltet, die für Spiele im Stil der ps3/xbox360-Ära im p2p-Stil konzipiert wurde und der wir die für Steam-Server erforderliche Funktionalität hinzugefügt haben. Seit wir den frühen Zugriff freigegeben haben, ist dies ein ständiges Kopfzerbrechen. Es macht es unserem kleinen Team viel zu schwer, Probleme im Zusammenhang mit Verbindungsausfällen und anderen Konnektivitätsproblemen zu debuggen. Auch das Hinzufügen neuer Funktionen ist jedes Mal eine Qual und könnte in der Folge weitere Probleme verursachen. Kurz gesagt, unsere derzeitige Lösung ist nicht praktikabel, wenn wir sie weiter ausbauen wollen.


    Was wird dadurch gelöst?


    Eine völlig neue Implementierung ermöglicht es uns, alle Online-Funktionen in ein eigenes Modul zu zerlegen und uns auf die Lösung von Problemen zu konzentrieren, die das Spiel seit der frühen Zugangsveröffentlichung geplagt haben und die wir bisher kaum reproduzieren, geschweige denn debuggen können.


    Einige der Probleme, die dadurch behoben werden oder uns dabei helfen werden, sind


    - Feststecken bei der Festlegung des Kontexts

    - Zufällige Verbindungsabbrüche

    - Fehler beim Wiederherstellen der Verbindung zu einem Server

    - Fehlschlagen der Verbindung zu einem Server

    - Server-Massenabwürfe

    - Server, die nicht in der Liste auftauchen

    - Verbindungen zu anderen Spielern, die nach dem Trennen der Verbindung aktiv bleiben

    - Entlasten Sie das Netzwerkmodul und den Thread des Spiels


    Was erlaubt sie uns, zu tun?


    Abgesehen davon, dass wir alle unsere Verbindungsprobleme ordnungsgemäß debuggen und beheben können, ermöglicht es uns auch die Implementierung einiger geplanter Funktionen sowie hypothetischer Funktionen auf der ganzen Linie, so dass wir nicht jedes Mal, wenn wir etwas hinzufügen wollen, alles auseinander reißen müssen.


    Einige der geplanten Features sind:


    - Korrekte Fehlermeldungen bei Netzwerkproblemen. Dazu gehört eine Beschreibung, warum ein Join-Versuch fehlgeschlagen ist, oder eine Nachricht, die Ihnen mitteilt, warum Sie von einem Server gekickt/gebannt wurden.

    - Integration in das Steams-Freund-System, so dass Sie Ihren Freunden und Gruppen direkt vom Steam-Client aus beitreten können.

    - Integration mit einem Backend-Dienst, der es uns ermöglicht, Benutzerdaten mit unseren eigenen persistenten Daten zu ergänzen. Dadurch ist es möglich, das Unternehmenstool in das Spiel selbst zu integrieren.

    - Backer-Belohnungskosmetik


    Einige hypothetische Merkmale, die wir mit diesem System ohne wahnsinnigen Arbeitsaufwand implementieren können:


    - Persistente Daten für den Nahkampf

    - Spiel-Veranstaltungen

    - Server-Slot-Reservierung basierend auf Firma oder Ereignis

    - Erweiterung auf andere Plattformen in der Zukunft (Epic, xbox, Playstation, Switch, Telefon, Mikrowelle)

    - Plattformübergreifendes Spiel


    Warum dauert das so lange?


    Wie Sie sich vielleicht vorstellen können, ist das für ein kleines Team wie das unsere eine riesige Menge Arbeit und beinhaltet Threading, Networking, Serialisierung und andere lustige Dinge.

    Der Schlüssel hier ist, es richtig zu machen und einen nachhaltigen Rahmen zu schaffen, der sowohl wartbar als auch erweiterbar ist. Dazu gehört auch, es so zu entwerfen, dass es eine einfache Integration der verschiedenen Platform Apis ermöglicht. (Steam ist die wichtigste, aber lan muss auch für interne Tests implementiert werden).


    Es war also eine ziemliche Herausforderung, eine Kombination von Werkzeugen zu finden und sie zu erlernen, aber wir hoffen, dass wir bald die erste Iteration davon veröffentlichen und einige dieser anhaltenden Konnektivitätsprobleme lindern können.

  • Wenn ich das so richtig verstehe werden die es im Endeffekt komplett ändern. Anderes Framework oder dergleichen. Vielleicht wechseln sie sogar die Programmiersprache um eben vielleicht Plattformübergreifend zu werden oder derartiges.

    Was ich aber eher vermute ist, dass sie es modularer machen. Wie bei anderen Spielen soll es eine Lobby oder gar einen Launcher geben. Momentan gibt es um die Gefechte herum im Spiel selbst nichts zu tun und so wie das klingt wollen sie das auch ändern.

    Sprich man kann dann Clans anlegen und dergleichen. Aber das alles lässt sich so wie es bisher gebaut wurde einfach nicht umsetzen und daher muss alles neu gemacht werden.


    Klingt mir kurz gesagt wie "Entschuldigt aber wir müssen alles ändern daher wird es so schnell erstmal nichts ersichtliches Neues geben. Maximal ein paar Bugfixes oder aber kleine Features nach denen ihr gar nicht gefragt habt"