Refactor: Troubleshooting
Starting Early
It's not even 10am yet and here I am troubleshooting the issues with my refactor. Actually, I started with an easy fix, the induction terminal interface. I found, during testing of the refactor, that if the player set their name, then quit and started a new game, the previously entered name would remain. Luckily, the fix appeared to be as easy as adding a single line to my code to clear the input. And indeed it was.
The next issue took a bit more work to troubleshoot though. But, in reality it appeared much simpler. Of course appearances can be deceiving! I thought maybe all I needed to do was set the dirty flag again but my testing didn't work. So I fed two versions of my savegame manager to Gemini, the version from before the refactor and the current version. I asked it to compare the two and figure out why it wasn't working anymore. I was surprised with the results because the response was correct.
I just needed to add two more lines of code after the game data is written to disk, one to update the actual metadata surrounding the save data, and another to actually commit the changes to disk. I think this bug was my own fault though, because I remember not liking the idea of committing the ConfigFile to disk twice during the save. I guess I just didn't realize exactly why Gemini suggested that in the first place, and of course it didn't push back when I made the change.
With those two bugs resolved it was time to address the third, my background music begins playing, then begins playing again. This is an issue I had experienced previously and resolved, although I can't say for certain yet that it is actually the same issue. After taking a look at my debug log it occurred to me that I am actually loading my main menu twice, and each time I do I'm starting my background music. I fed my log into Gemini to have it confirm and it suggested a couple of different fixes, neither of which were appealing to me.
So I decided to base the music playback on the game's state. A small modification to the main menu's playback in ready to validate the game is actually in the main menu state and now everything is working fine! It isn't even 10am yet and I've finished the troubleshooting and fixed all the issues I identified from the refactor I've been doing over the last few days. This is great and just feels good to get this done so early. I have the whole day ahead of me to do whatever I want (well, really whatever my partner wants, I think she plans for us to go to the mall).
Next Time
Well, I'm not exactly sure what to work on next. There is a lot to do still, so the choices are nearly endless. Obviously, whatever I do next will be part of my vertical slice. I have a lot of polishing to do still, but before I even get there I still need to add a lot to the vertical slice experience. At the moment I've only got the player skilling up into Gathering (Tool Level 1) and I expect to push all the way to Tool Level 9 in my vertical slice. This means lots of quests, world design, and more.
That doesn't even take into account the half-built systems that need refinement and additional functionality. Things like my character menu and inventory are still woefully inadequate and incomplete. The player still can't even eat food! That's okay though, this is a labor of love, not something I plan to rush through. Taking time to build this game slowly and deliberately is important for me.
Xenodochium
The future is what you make of it!
| Status | In development |
| Author | Munchmo |
| Genre | Role Playing |
| Tags | 2D, Cozy, Godot, Indie, Life Simulation, Pixel Art, Sci-fi, Singleplayer |
| Languages | English |
More posts
- HUD Prefab: Layout Changes4 hours ago
- Virtual Joystick: It's Alive1 day ago
- Virtual Joystick: Wiring In2 days ago
- Planning Is Work3 days ago
- User Config Refactor: Completed?5 days ago
- User Config Refactor: Continued6 days ago
- User Config Refactor: Planning6 days ago
- Virtual Joystick: Configuring8 days ago
- Virtual Joystick: Plugging In9 days ago
Leave a comment
Log in with itch.io to leave a comment.