Dev Log #51 :: UI Improvements

Howdy Folks!

A huge thank you for playing Mercury Fallen. There some big user interface changes coming that I’m very excited about.

It all started with wanting a better system for handling tabbed windows. It turned into a face list for most of the windows in the game. The info window for objects and colonists is currently separated into two different windows, and I had wanted to unify them for a long time. In order to do so, however, there were two elements that would have to change.

One Info Window To Rule Them All

Colonists generated a texture for their portrait icon, whereas objects and machines used pre-generated sprites. It was fairly straightforward to consolidate those objects, as I just needed to update the portrait generation code to convert a created image into a sprite. This way, the info window didn’t care about the source of its data, as long as it got a sprite to display for its header graphic.

The more complex task was updating the info window to use tabs. The data that represents an object or colonist in the game uses a custom component system. These components can reference a UI section class, which is what binds these components to a visual output in the info window. When the window is created, it looks through all of an object’s components and generates UI sections for the ones that reference a UI section class. While this system worked very well, the problem was that there was no binding or definition for them to be listed under a specific tab within a window. I also had no consistent definition of what a tab was, or how tabs were generated. The colonist window controller manually placed component UI sections under specific tabs that were defined solely within the colonist UI window.

To resolve this issue, I created GDUITab data objects that store info for each icon, tool-tip and, of course, reference id. Components could now reference which tab they should appear in. When the info window is created, it looks through all of the target components and automagically gets or creates a new tab to put the UI content in the right place. This allows me to fully unify the colonist and object windows into the same system, and have a nice generic tab system to be used in other windows as well.

In the process of creating this, the info window design also got a facelift, which I’m applying to other windows in the game. Since objects and colonists now use the same tabbed design, some sections, such as equipment management, will be moved into new tabs.

I now have a generic tabbed window system that can be used in other places. A sample of this was sneakily — or accidentally? — added in the settings window in the last update.

Planet Map Interface

Creating a generic tabbed window/panel system was something I wanted to do so that I could update the planet map interface. Vehicles and expeditions have been put under separate tabs to avoid scrolling past your growing list of vehicles to start and manage expeditions.

I’m working on a new section which will show a list of constructed buildings.

Construction Queue Window

A construction queue window has been a highly requested feature and a lot of work has been put into it so far. The new construction queue window is a visual breakdown of all objects that have been placed for construction.

You will be able to click and drag to reorder the list, quickly move objects to the top or bottom of it, and, with the click of a button, select any object on the list for more details. The construction queue list can also be filtered by category to help find specific types of objects.

Going Forward

Aside from UI changes, I’m working on various improvements to game flow and progression. There are many mechanics that made more sense before the addition of the planet surface and expeditions, and while some of these elements have been tweaked, I’m reviewing everything to try and provide better game pacing and progression. While the focus of the game is exploration and expansion, there is a shifting focus towards additional hazards — for without risk, there is no reward.

My goal is not to turn Mercury Fallen into a challenging survival game. The Mercury Fallen project is primarily about developing a game that I personally enjoy, and I enjoy exploring and creating without feeling like I could lose everything because of a random event, or being suddenly overwhelmed by combative forces. I do occasionally enjoy a bit of chaos, but at a pace I choose, and not a pace that is enforced.

I’ve focused mainly on the safe haven experience of Mercury Fallen to this point, but I do plan to add additional hazards and challenges. It’s important that the player has some agency over when and how they approach these challenges.

I’m working on changes to the underground world generation that will include some resources that can be acquired early on, and re-balancing the materials that can be acquired underground. Hazards are in the works that will make mining a bit more interesting.

I have a lot of things in mind moving forward, and can’t go into a lot of detail about all of them quite yet. But in the meantime, let me know what you think of these new changes and what you are excited to see in Mercury Fallen.

Follow Mercury Fallen development on
Twitter | Facebook | Discord | Steam

Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Get On Steam

Twitter Posts