After much time spent over-thinking the menus and the design choices that come with them, a new format was finally decided.



Posts have been sparse for a way too long time, but I'm back to inform you about some of the progress you have missed out on. Last month I finally decided to do something about the menus; in fact, the alpha build has been without a proper game setup menu since it went live.

Two months ago I added a simple ingame menu, which is used to bring the user back to the main menu. But other than this and the main menu itself, the game lacked proper menus.
Old setup menu
This has been the game setup "menu" for quite some time.

As it perhaps became obvious in the post on the matter way back in February, I had some trouble creating a menu and sticking with it. Back then, I scaled the menus in a manner that I did not find proper or professional. Elements would look weird in certain resolutions, or even overlap, fixing the overlap problem would lead to elements instead going outside of the screen, and so on. Neither did I find a way to scale fonts in a way that I found sufficient. I simply decided it was too much of a time sink, and that I should wait until I come up with something better while instead working on the game logic. So I set the work of making menus aside until recently.

In choosing a new menu format, it was necessary to realize the faults from when I had tried before.

One of these was being afraid of tailoring code towards a static design. As many programmers, I like to handle as much as possible by code, generic code that can be re-used over and over again. I had always preferred to draw every piece of element, background, border and window manually, separated in organized spiresheets to save as much texture space as possible. I never liked the idea of saving large images as menu backgrounds, but this time I gave in for the greater good.
Lobby menu
New game setup menu

This time around all non-intractable items in the menu are just contained in a full resolution menu background image. This also allows greater detail in menu artwork and of course much easier editing. I realized that menus were just a way too specific case to attempt other endeavors and it was a bit over the top to try something else in the first place. Ironically some time back I might have called this a cheap shortcut.
Multiplayer menu
Multiplayer lobby browser menu

As to how I solved the problem of scaling and different resolutions, I settled for a minimum resolution and centered the menu on screen as is pretty common these days.

Both of these two new menus are now fully implemented into the game and functioning aside from some work left on the multiplayer lobby code.

Setting old practices aside I spent more than 90% of the time working on the design and the rest on making them functional within the game, compared to before when I would spend loads of time just wrapping my head around how to write the perfect code for drawing "flexible" menus. Making new menus is now a breeze, and I like it.