Skip to content

Khemitron Industries

Amateur Game Dev, Gaming, and TTRPGs

Menu
  • Home
  • Game Dev
  • About
Menu

Using Themes to Enhance my Game

Posted on 2025-05-19

This week, as planned, I’ve focused on making my game’s Save and Load screens. I’ve also made sure that they look good (well… acceptable) in the theme I made last week. Some might say that I’m putting off refactoring my world map code. Those people would be right, but I have good reason! I wanted to build in loading and saving on the world map as I refactor it, so being able to load and save seemed like a good idea.

Save game menu

I decided to build the save game menu first. It’s significantly easier to check that your load game menu displays all the saved games if you have multiple saved games.

My initial design was very simple.

As you can see from my lovely artwork, this screen was very vertical.

I’m using the snowflake icon I made for my loading screen and main menu as a temporary logo. Repeating the logo throughout the game helps to unify everything. I also decided to put in the snow effect. It’s a simple thing that adds movement to these static screens and brings them to life.

Unfortunately, I got as far as putting the snowflake at the top of the screen and adding the box underneath. But that was as far as I got. Something was missing. The save screen felt like it was from some kind of enterprise software program rather than a game.

So I started looking for inspiration in other games. I looked at the saving and loading screens of similar games I own, and also searched the internet. Eventually, I stumbled upon the Game UI Database. This database isn’t perfect, but it does showcase screens from quite a lot of games. The one consistent theme I noticed is that the vast majority of games where you can make multiple saves have the list of files off-centre.

And that revelation helped me settle on my final design.

File list is right-aligned, the screen name is emphasised by a border, and the snowflake logo is present at the top

So what does it do?

There’s actually quite a bit going on here.

First, we have the Save Game button. This, unsurprisingly, lets you save your game.

The player is offered a suggested file name, which is currently just “Save X” where “X” is the number of existing saves plus one. They can also enter a save name of their choice. Once the player presses “Save”, their chosen file name is used, or the placeholder if they didn’t type one in.

If the save file conflicts with an existing one, the player is warned that this will overwrite an existing save. Or, if you press the “Overwrite” button on the save file, you’ll also be greeted with the same prompt.

Overwriting is red because it’s so dangerous! Dangerous in the sense that it can’t be reversed from within the game.

Confirming that you want to overwrite will, as the message suggests, overwrite the existing file with your new version.

Finally, there’s the option to delete the game file. Pressing that also prompts the player to confirm their choice.

There’s a bug with the width of this popup. I’m not sure why, but it likes being wide.

Pressing “Delete” at this point means your save file is gone forever. Or until you retrieve it from wherever your OS sends deleted files.

Load Game Menu

Next, I tackled the load game menu. I found this much easier and it took significantly less time than the Save Game menu. Probably because I’d already done most of the legwork – I had a way to retrieve files and order them by created date, and I also had a screen layout that I’m happy with.

So for the Load Game menu, I just swapped the position of the file list and the menu name.

Very similar, but different component positions

The similarity helps make the game’s menus cohesive. The different positions of the file list should mean that it’s easy for the player to differentiate which screen they’re on. That and the big screen name headers underneath the logo.

Once again, the player has the option to delete files if they no longer need them. But this time, as might be expected from a “Load Game” menu, the player can load the save file instead of saving or overwriting.

And if you have no saved games yet, there’s a message to tell you that’s the case.

In case it’s not obvious from the empty file list, there are no saved games.

Continue Game

When I first made the main menu for the game, I put a “Continue” button on it. The Continue button wasn’t functional at the time, but, through the magic of coding, I’ve made it work.

And now the continue button actually does something!

As you might expect from a “Continue” button, pressing it simply loads the latest save file so that the player can jump right back into the action!

If you don’t have any save files, which will be the case when you first start the game, the Continue button will be disabled.

Sprucing up the in-game menu

My final achievement for this week is to make the in-game menu match the styling of the main menu. Previously, I was trying to match the PF2 theme colours.

It’s alright, but definitely doesn’t match my new visual direction.

I figured that would be a good start. But now that I’ve found a theme I like, I want to immerse myself in it a bit more.

It all looks like it’s part of the same game and I’m really pleased with it so far.

I also added the “Quit to Title” button that takes the player back to the main menu. Maybe one day I’ll think of a good name for the game and put it on the main menu.

Future menu improvements

The menus are looking good, but they’re not perfect.

As I’ve mentioned before, I’d like proper artwork one day. I also want the borders around the Save Game and Load Game menu headers to have a more icy feel – potentially replacing them with mini icicles.

Another big change I’d like to add is a better transition between the different menus. I think it would be very cool to have the snowflake logo move from the middle to the correct position for the new menu. E.g. for the Save Game menu, the snowflake would move left while the original menu fades out and the save game one fades in. For the Load Game menu, it would move right.

Overall, though, I’m very happy with these menus.

Something big is coming

And for my next week (or month) of game dev time, I’m going to start working on the World Map refactor.

It’s going to be painful, but it’s necessary. I need to bring the World Map code in line with the way my Combat scene is written. The World Map code is also a mess of spaghetti code. It’s not written in a way that is particularly easy to extend. It’s not written with localisation or unit testing in mind. In short, it is now very much at odds with the way that I want to write my game’s code.

Along the way, I’ll be able to update the visuals to match my new theme. I’ll set it up so that localisation is easy. And I’ll build in saving and loading as I go.

And once it’s done, I’ll be able to start work on new features, like Research, Training Adventurers, and Forging Items.

Refactoring a mostly complete feature isn’t something that you can do in every game. But because this is a hobby, I can go back and do that. I’m kind of excited to fix my previous mistakes. I’m sure that I’ll make new ones too, but that’s all part of the learning experience.

Share on Social Media
facebook tumblr reddit emailwhatsapp

Like this:

Like Loading...

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Refactoring the World Map 2025-06-09
  • Using Themes to Enhance my Game 2025-05-19
  • Quality of Life Improvements – Nested Tooltips 2025-05-12
  • Improving Quality of Life 2025-05-05
  • Godot4.4 – Powerful Localisation with gettext 2025-04-27
©2025 Khemitron Industries | Design: Newspaperly WordPress Theme
%d