Taking Stock: Current State of the Game
This morning I woke up with a notification on my phone. A couple of nights ago something about the game came to mind and so I set a reminder for myself and promptly forgot about it. This made me realize that I hadn't yet truly documented what I've done and what I plan to do. So that's the work I'm doing on my game today, documenting my game.
I started by taking that little reminder and creating an "issue" in my GitHub for the game. This is actually the second issue I've raised, the first is something with the cutscene player. I tried to fix it, but things were working well enough that I tabled it and left myself a very vague note. This new issue I raised was actually something I overlooked when building the savegame manager. I wanted to include versioning and left that out, plus I totally forgot to save the data surrounding the player character (chosen skin).
But let's back up now and take a look at the whole game, what I've done, and what I have left to do. I'm going to approach this, at first, from a player's perspective. I've been building the game in this manner, so that I can introduce something simple and playable as quickly as I can, even if there really isn't anything to do. So, let's dig into the game from the beginning.
The first things to load are my Autoload scripts. Each one is meant to be a singleton that handles a specific function within the game. There are nine of them total, and I'm pretty sure I can think of a few more that I need to build later. The ones that come to mind now are the factory manager, the farm manager, and the NPC manager. They will all be created when I get there.
I have my debug handler, which started out by quickly and easily outputting extra data to my console. Over time the debug handler has grown though. I've added a debug overlay which shows important information for testing and grants me access to other functionality as I need it. It's a simple toggle that turns it on and off in the settings, but when I'm testing from the editor, it's enabled by default.
I have my game manager, the heart of the game. This controls scene switching and tracking the game state. This is one of the most complex pieces of my game and I'm pretty sure there's a lot more to do here. Every time I need to make any changes here I dread it due to its complexity.
There's my audio handler, it deals with global sound effects and my background music. This one was tricky to get just right, then was broken again while working on something else. I'm fairly confident this is in a fairly stable state and won't need many changes.
Next up is my data manager, which handles loading internal resources. Currently only deals with items and effects, but will eventually grow to load up other data such as dialogue. This one is going to become a beast, once I add in more data sets. Pretty sure I'm also going to have to add cutscenes to this one too, but for now the actual cutscenes themselves (there's only one) are defined in their own scene.
The inventory manager will be a big part of the game. Right now it's fairly simple, it just handles an infinite inventory. I've got adding and removing item functions as well as checking for item quantity. I feel like there may be a time where I modify this one, but for the moment it seems to have everything I think I'll need.
There's my UI Manager, which is a big pain in the butt. UI in general sucks. But this one handles showing the hiding things like my load game dialog, my pause menu, my settings screen, and just about anything you could want to appear on top of another scene. This one is still a work in progress though, as there's still so much UI I haven't built yet.
I have my time handler for tracking in game time passage. This one is kind of simple, an in-game minute is a real-world second. But hours, days, weeks, months, and years are different than you'd expect. One in-game day takes roughly 20 minutes to play through. Looking at this, I see I'm missing a week definition, so that goes on my to do list with another raised issue in GitHub!
The player stats manager focuses on what you'd expect. It tracks attributes, vitals, experience, skills, and effects. This one is pretty cool, but it's really big too. There are so many small things it handles and it hooks into a bunch of other systems. I've already got some working effects though, so the player loses hunger and get buffs and debuffs based current vitals.
Finally, there's my savegame manager, which deals with saving and loading all of my persistent data. This one will be changing a lot over the course of building the game. Not only do I need to address the issue I raised earlier, but I've got systems I haven't even built yet that will need to have their data saved. This one was a biggie though, it required me to build out a bunch of other stuff before I could even begin working on it, and it's going to change so much over the course of development.
With all that out of the way, I can start the game. This takes me to my loading screen, right now I have a forced delay of 5 seconds. That's much too long, so I've shortened it in my game manager. That was originally there so I could verify that the screen was even appearing. I don't have a lot of data to load yet. Once that goes away I'm met with my main menu. From there I have access to a simple settings screen where you can mute and adjust volumes as well as enable/disable debug mode. There's a credits button that doesn't work, but I've got the beginnings of a credit scene built out.
One you hit the play button, you're met with a load game dialog, which allows you to select which game slot you want to play, either starting a new game, loading an existing one, or deleting a save. When a player first starts a new game, they're sent through another loading screen into a cutscene which ends with the player walking around the main city scene. The HUD is loaded, giving feedback about important systems in the game, and there's even a building for the player to explore. If a player loads an existing save, they're thrust into the main city scene with loaded stats.
But that's where my to do list starts growing. I thought I had it fixed, but it seems I may still have issues with my time handler and player stats manager not getting along when loading a game. My building covers part of my cutscene. Oh, and the walls still don't have any collision. I need to deal with the walls blocking raycasts too.
Then there are the systems I haven't even started working on, such as the interaction system, for world entities and NPCs. I need a dialogue system for talking to NPCs. I need the player to be able to update their skin and their name. I need the player to be able to see their inventory. I plan to incorporate a crafting system and a farming system. I want to add fishing. There will be space ships and a shipyard. And I'm sure there's even more.
But, putting all of this down in writing is a great way to know how far I've come while keeping track of what I still plan to do. Even with all this talk of building systems and adding new things, there's a whole other side of the game that I still have to do, and that's the creative work that goes into these systems I've built. There are the item definitions themselves, a hugely important piece of the puzzle. There's drawing the entire game world itself, there is no game without a world. There's the individual NPCs and their dialogue, an integral part of the entertainment value of the game.
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
- Refactoring: Cutscene Player15 hours ago
- Localization: Finished, Terminado, Fertig, Tapos Na!1 day ago
- Localization: Digging Deep2 days ago
- Localization: A Return3 days ago
- Of Dragon Con, Debug Overlay, and Localization7 days ago
- Dragon Con: A Vacation9 days ago
- Dialogue System: Talking Points Go BRRRR11 days ago
- Dialogue System: Talk About It12 days ago
- NPCs: Let's Talk!13 days ago
- NPCs: A Simple Start14 days ago
Leave a comment
Log in with itch.io to leave a comment.