Skirmish Menus#10
Conversation
2f44d4c to
4e44193
Compare
|
Thanks for the feedback! Regarding the empty space: This is an intentional design choice. A core philosophy of this UI refactor is standardizing the layout across all screens (LAN, WOL, Skirmish). By keeping a consistent right-aligned Vertical Action Stack, the buttons remain in the exact same screen position regardless of the menu you are in, which preserves muscle memory. The empty space simply accommodates dynamic buttons (like 'Cancel' during map selection) or extra buttons present in other menus. The same goes for the left side: stacking the settings vertically clears the center and matches the modern visual flow of the other screens. I believe we shouldn't be afraid of negative space if it serves modularity and consistency. Regarding the map preview proportions: That is a fair technical point regarding engine limits and player position selection. Could you provide a specific map name or an example where this breaks? |
|
Here's the map. !TestAllFactionsBuildingsUnitsPromo.zip
Improved Menus attempts to fix what's already there while also trying to preserve familiarity, therefore, negative space feels out of place (no pun intended). Regarding these windows specifically, the project only fixes inconsistencies between all three of them by taking WOL Game Options as reference because I think it is the most comfortable looking compared to the other two. |
|
Thanks for the map! I've performed a thorough technical test with it. Regarding the map preview: I’ve verified in-game that the blue rings remain 100% functional and clickable. There is no desync between the visuals and the engine's hitboxes. In fact, moving to a square (1:1) aspect ratio is a technical improvement; since the vast majority of maps are square, this layout represents the actual map geometry more accurately than the stretched legacy preview. It’s a UI-only change that enhances visual fidelity without breaking any underlying logic. Regarding the empty space: If we compare this to the vanilla UI, the original menus actually had significantly more scattered and unmanaged "dead zones." This refactor manages screen real estate much more efficiently by grouping elements into logical stacks. The remaining negative space is intentional—it serves the game's natural symmetry and, more importantly, provides a future-proof buffer for adding new features or buttons without needing to overhaul the layout again. The goal here is to apply modern UI/UX principles: consistency, scalability, and clarity. While I respect the "familiarity" aspect, I believe these changes offer a cleaner, more professional experience that aligns with the quality of a modern refactor. |
|
My advice is that you can try to look how other layouts are done (regarding the skirmish screen) in other RTS games and then see which one has a modern looking while also not looking out of place. I also have been thinking of implementing a skirmish screen more similar to the later CNC entries. |


UI Refactor: Redesign layout and align with Lobby styling in Skirmish Menus
This PR refactors the Skirmish UI (
SkirmishGameOptionsMenuandSkirmishMapSelectMenu) to visually align with the existing Multiplayer Lobby design language. The overarching goal was to transition from the legacy horizontal bottom-bar button layout to a stacked, bottom-right configuration. Alongside these visual improvements, the underlying object tree was cleaned up, list dimensions were optimized for better UX, and extended the map list dimensions inSkirmishMapSelectMenuto show more items at once.Key Changes:
Reset FPSbutton fromSkirmishGameOptionsMenuand deleted the obsoleteWinGadgetBorderfromSkirmishMapSelectMenuto declutter the hierarchy.SkirmishMapSelectMenuto show more items at once and replicated the map preview static text for consistency.MAXDISPLAYvalue for the Army ComboBox to improve dropdown behavior.Reset Honorsbutton remains hidden but fully functional in the code. I intentionally left an empty space in the new bottom-right button stack for it. It is kept hidden to prevent accidental clicks since the engine currently lacks a confirmation dialog. Modders can easily re-enable it, or we can restore it in a future patch once a confirmation prompt is implemented.Object Tree Diff:
└── [USER] SkirmishGameOptionsMenuParent └── [USER] SubParent ├── [PUSHBUTTON] ButtonStart ├── [PUSHBUTTON] ButtonReset ├── [PUSHBUTTON] ButtonBack + ├── [USER] BattleHonors ├── [SCROLLLISTBOX] ListboxInfo ├── [HORZSLIDER] SliderGameSpeed ├── [STATICTEXT] StaticTextGameSpeed + ├── [STATICTEXT] StaticTextGameSpeed1 ├── [STATICTEXT] StaticTextStartingMoney ├── [CHECKBOX] CheckboxLimitSuperweapons + ├── [USER] Statistics │ ├── [STATICTEXT] StaticTextLosses │ ├── [STATICTEXT] StaticTextLossesValue │ ├── [STATICTEXT] StaticTextWins │ ├── [STATICTEXT] StaticTextWinsValue │ ├── [STATICTEXT] StaticTextStreak │ ├── [STATICTEXT] StaticTextStreakValue │ ├── [STATICTEXT] StaticTextBestStreak │ └── [STATICTEXT] StaticTextBestStreakValue ├── [PUSHBUTTON] ButtonSelectMap + ├── [COMBOBOX] ComboBoxStartingCash ├── [STATICTEXT] TextEntryMapDisplay ├── [USER] MapWindow │ ├── [PUSHBUTTON] ButtonMapStartPosition0 │ ├── [PUSHBUTTON] ButtonMapStartPosition1 │ ├── [PUSHBUTTON] ButtonMapStartPosition2 │ ├── [PUSHBUTTON] ButtonMapStartPosition3 │ ├── [PUSHBUTTON] ButtonMapStartPosition4 │ ├── [PUSHBUTTON] ButtonMapStartPosition5 │ ├── [PUSHBUTTON] ButtonMapStartPosition6 │ └── [PUSHBUTTON] ButtonMapStartPosition7 ├── [STATICTEXT] StaticTextMapPreview ├── [STATICTEXT] StaticTextTeam ├── [COMBOBOX] ComboBoxTeam7 ├── [COMBOBOX] ComboBoxTeam6 ├── [COMBOBOX] ComboBoxTeam5 ├── [COMBOBOX] ComboBoxTeam4 ├── [COMBOBOX] ComboBoxTeam3 ├── [COMBOBOX] ComboBoxTeam2 ├── [COMBOBOX] ComboBoxTeam1 ├── [COMBOBOX] ComboBoxTeam0 ├── [STATICTEXT] StaticTextFaction ├── [COMBOBOX] ComboBoxPlayerTemplate7 ├── [COMBOBOX] ComboBoxPlayerTemplate6 ├── [COMBOBOX] ComboBoxPlayerTemplate5 ├── [COMBOBOX] ComboBoxPlayerTemplate4 ├── [COMBOBOX] ComboBoxPlayerTemplate3 ├── [COMBOBOX] ComboBoxPlayerTemplate2 ├── [COMBOBOX] ComboBoxPlayerTemplate1 ├── [COMBOBOX] ComboBoxPlayerTemplate0 ├── [STATICTEXT] StaticTextColor ├── [COMBOBOX] ComboBoxColor7 ├── [COMBOBOX] ComboBoxColor6 ├── [COMBOBOX] ComboBoxColor5 ├── [COMBOBOX] ComboBoxColor4 ├── [COMBOBOX] ComboBoxColor3 ├── [COMBOBOX] ComboBoxColor2 ├── [COMBOBOX] ComboBoxColor1 ├── [COMBOBOX] ComboBoxColor0 ├── [STATICTEXT] StaticTextPlayers ├── [COMBOBOX] ComboBoxPlayer7 ├── [COMBOBOX] ComboBoxPlayer6 ├── [COMBOBOX] ComboBoxPlayer5 ├── [COMBOBOX] ComboBoxPlayer4 ├── [COMBOBOX] ComboBoxPlayer3 ├── [COMBOBOX] ComboBoxPlayer2 ├── [COMBOBOX] ComboBoxPlayer1 ├── [ENTRYFIELD] TextEntryPlayerName ├── [USER] Line ├── [STATICTEXT] StaticTextTitle - └── [PUSHBUTTON] ButtonResetFPSScreenshot:
Before:
After: