octoawesome icon indicating copy to clipboard operation
octoawesome copied to clipboard

Überarbeitung des UI-Systems

Open fnawratil opened this issue 7 years ago • 3 comments

Nachdem ich mich endlich mal wieder mit OctoAwesome beschäftigt hab, sind mir einige Dinge aufgefallen, die am UI-System überarbeitet werden sollten. Das hier soll einfach mal eine Liste all dieser Dinge sein - ich werde dann bei Gelegenheit versuchen die Punkte abzuarbeiten.

  • [x] Austausch von MonogameUI durch EngeniousUI. Das ist natürlich kein "muss", allerdings erachte ich es für sinnvoll die Entwicklung von MonogameUI für Engenious nicht nur in einem Branch von MonogameUI fortzuführen. (Zumal in EngeniousUI inzwischen einige Bugs gefixt sind die MonogameUI noch hat). Natürlich muss vorher nochmal überprüft werden, ob EngeniusUI alle Fixes aus dem feature/engenious branch hat.

  • [x] Erweiterungen die Möglichkeit geben eigene Screens/Dialogs zu definieren. Das wurde schonmal angesprochen. Wie genau das realisiert wird muss noch geklärt werden.

  • [x] Erweiterungen die Möglichkeit geben bestehende Screens zu verändern. (Kann nützlich sein, um Mods bspw. das Hinzufügen neuer Settings-Pages oder eine Anpassung des Inventars zu ermöglichen).

  • [ ] Pause-Menü überarbeiten. Da Pause-Menü sollte eigentlich ein Overlay sein und das Spiel im Hintergrund weiter anzeigen. Aktuell könnte man es auf den ersten Blick auch für das Hauptmenü halten.

  • [ ] Möglichkeit bieten, das Hauptmenü etc. mittels Command-Line Options zu überspringen. Das könnte fürs Debugging ganz interessant werden. Dann könnte man das Spiel bspw. direkt mit --multiplayer --server=localhost starten und spart sich das geklicke am Anfang.

Soweit mal meine Ideen, bin auf weitere Vorschläge/Verbesserungswünsche gespannt.

fnawratil avatar Nov 18 '18 10:11 fnawratil

  • Pause-Menü überarbeiten: Der Code dazu ist schon vorhanden und auskommentiert, das mit dem Overlay sah damals nicht so gut aus, da die Simulation nicht angehalten wurde und sich so im Hintergrund die Entities weiter bewegt hatten.

  • Austausch von MonogameUI durch EngeniousUI: Wäre es hier nicht grundsätzlich möglich eine einheitliche Codebasis mit Conditional-Zeugs zu bauen? MonogameUI wäre sonst wohl sicher tot, wenn wir es selbst nicht mehr benutzen.

  • Erweiterungen die Möglichkeit geben bestehende Screens zu verändern: Zumindest war das früher mal drin, dass man eigene Screens zum Hauptmenü hinzufügen konnte. Ggf. kannst du dir das mal anschauen. Ist im ganz alten multiplayer-Branch.

  • Möglichkeit bieten, das Hauptmenü etc. mittels Command-Line Options zu überspringen Meine ich, ist erstmal nicht so wichtig.

ManuelHu avatar Nov 18 '18 10:11 ManuelHu

  • Pause-Menü überarbeiten: Ja, ich erinner mich. Aber die Simulation anzuhalten ist ja zumindest im Multiplayer sowieso keine Option. Im Singleplayer sollte es doch kein Problem sein die Simulation zu pausieren?

  • Austausch von MonogameUI durch EngeniousUI: Theoretisch wäre es das schon, aber das bedeutet erheblich Mehraufwand. Wir müssten in jedem File die usings in Conditionals packen und müssten mit Namespaces generell höllisch aufpassen. Außerdem entspricht Engenious ja nicht (mehr) 1:1 Monogame. Wir könnten also auch nur unter Mehraufwand neue Features verwenden. => Ich finde das ist den Aufwand eindeutig nicht wert, zumal MonogameUI in seinem aktuellen Zustand funktionsfähig ist und soweit ich weiß von keinem anderen Projekt aktiv verwendet wird.

  • Erweiterung die Möglichkeit geben bestehende Screens zu verändern: Werd ich mir anschauen - Nur sollte das ja auch für andere Screens möglich sein und am besten schön einheitlich funktionieren.

  • Möglichkeit bieten, das Hauptmenü etc. mittels Command-Line Options zu überspringen: Also ich fände das schon sehr praktisch. Hat natürlich keine hohe Priorität, wäre aber vermutlich recht schnell zu implementieren.

fnawratil avatar Nov 18 '18 13:11 fnawratil

EngeniousUI hat jetzt alle Fixes aus dem feature/engenious-Branch aus monogameui. Das NuGet-Package ist auch up to date und verwendet die neueste engenious-Version.

Ich schlage damit vor beizeiten auf das Nuget-Package umzustellen. Da ich Namespaces angepasst hab müssen die entsprechend angepasst werden.

Ich würde das in nem Branch basierend auf feature/multiplayer (sobald wir wissen wies mit dem jetzt aussieht) machen, weil alle anderen Branches seit längerem nicht mehr angegriffen wurden und wir sonst vermutl. Unmengen an Merge-Conflicts bekommen.

fnawratil avatar Nov 18 '18 16:11 fnawratil