Hello, everyone! How have you been?
After a few weeks’ hiatus, Monster Embassy is back on track! The move went well and I’m comfortably settled into my new home, so I can resume regular updates again.
I’m so happy about this. Hopefully, from now on my development speed may vary a lot, but I’ll never have to stop completely.
During my hiatus, the Godot development team has released two (!) maintenance versions of Godot 3.0, Godot 3.0.1 and Godot 3.0.2. I’ve updated my working environment to the latest release and there’s no apparent issues.
In case you’re not aware of it, I’ll explain a little about Godot’s release policies. According to the Godot team, maintenance versions such as these should not break compatibility at all, and they’ll try to fix any regressions asap. Medium releases, such as Godot 3.1, which we’re all waiting for atm (here, I made the joke!), may require some small adjustments, but nothing too earth-shattering. Only the main releases are supposed to break backwards compatibility, which is the reason why it took me some days to adapt all my codebase when I dropped Godot 2.x and started working with Godot 3.x.
It seems a good way to organise things and so far they’re sticking to it, so all’s good.
What I’ve done this week
- It seems the engine is now (finally!) able to check if the game is in fullscreen mode or not, so I’ve been able to save and load fullscreen settings from a config file. So, if you close the game when it’s in fullscreen mode, the next time you open it it will load in fullscreen automatically. Very handy for the end user, although it still requires further testing on different systems.
- I’m working on improving the titlescreen displayed at the beginning of each chapter. Apart from the chapter number and title, I’ve included the available time to finish the chapter, the starting point in the day (for example, does the chapter start at 9 PM or 10 AM?) and a short description.
This is still a work in progress, since it requires at least a partial implementation of the clock-countdown and day-night system, which is still very green. Also, I have to convert the raw minutes data to a hours:minutes display (so the 420 minutes in the picture would translate into 7:00, for example). But it’s going nicely so far.
- I’m also on the first stages of implementing a “food” system. Food will replenish your energy, but you will only be able to eat a limited amount of food on every chapter. Otherwise, you’d just be able to bring lots and lots of food items with you and there’d be no challenge at all. So far I’ve added the HUD and some variables, but it still needs a lot of work, and it’s useless anyway until I add an inventory system to store items. Still, progress! :)
What I want to work on next
- Implement the clock countdown system and finish the chapter titlescreen.
- Implement the food system, with a limitation on how much food you can consume on every chapter.
- Add a system that detects whether the player is standing on a “water tile” or not, and changes the player animation to swimming instead of walking (this is important, since at some point I’ll add the option to dive underwater and enter underwater maps).
- Add a game over event when your health drops to 0 or the clock reaches the max available time.
- Implement the item system + random drops when you destroy obstacles and take the relevant data from a json database.
Things I want to do but will leave for later
- Implement a savefile system with encrypted files.
- Add a system to save several game stats to the savefile (time it took to finish every episode, items found, etc.). Also include a scene in-game to be able to check those stats, and another scene that runs when you finish every episode and displays that particular episode’s stats.
- Create an actual config menu.
- Add custom keybindings.
- I’ve fixed the dialogue system, which I broke somehow when I changed the system font. Doesn’t it look nice? (for the moment I’m just using my design drawings as placeholder portraits. I’ll redraw them as pixel-art later on)
As I mentioned on a previous occasion, the dialog system is based on the SMRT addon by brunosxs. The text can have different speeds, and different “typing” sounds can be played when the text appears, to simulate the voices of different characters. It’s simple but cool, and it’s loaded from a very clean json database, like almost everything else in the game.
Known bugs to fix
- The icons at the bottom-right corner of the screen change depending on the action that you can perform at every time: talk, warp, use spell, etc. However, sometimes these icons don’t refresh properly and the wrong icon is displayed. It’s not a gamebreaking bug, but I’ll need to look into it sooner or later.
Well, that’s all for today. I’m really glad to be working on this again: I had really missed it. Making games with Godot is so much fun :D
Stay tuned for more news next week!