Dev Diary [#26]

Hello and welcome to my first Dev Diary, aka progress report on Medium!

Fun fact: the first public “devlog” was posted on 30.11.2023.

What do I call a progress report? Let’s make it clear to everyone. It’s basically all the changes I’ve implemented from the last Dev Diary. It doesn’t matter if I posted some of them as sneak peeks on Twitter, Discord, or Telegram.

So, let’s get right to it.

Progress Report

Last week, I started working on an essential module, the “Save and Load system” for my game. This week was all about it again. After the initial design, I had to change how things work now. I use multiple files to store values, one for each zone and one for the player. I’m still figuring out if it’s the best solution, but it works well now.

What I’ll be testing later is merging all the values into one massive [read as: messy] file. I need to do that just for the culture, you know. And if it sucks, I’ll revert it to the current solution.

Save and Load System

Newly added values:

– Player’s inventory (items, quantity, item position)
– Player’s hotbar (items, quantity, item position)
– Player’s health (current value)
– Player’s buffs (effects, duration left)
– Player’s debuffs (effects, duration left)
– The player’s speed and maxhealth are determined by the de/buffs
– Player’s last location (position, zone/area/scene/world/dungeon, etc.)

Already supported values:
– Trees (position, current state, time to re-grow)
– Mushrooms (position, current state, time to re-grow)
– Fences and gates (position)
– Day and time
– Farming crops (position, state, if it’s watered already or not)

For wider understanding. It’s not only about saving and restoring values — that would be very easy. It’s mostly about creating a logic for HOW and WHEN the value will be restored, as it impacts many other in-game processes and game behavior.

Pets

I have removed all the current pets from the game. They will play a significant role in it, but it must be completely redesigned. Only the Little Birdie stays with us for now, but he’s not a pet, so…

A Little Birdie

I won’t go into the details just yet. I’ll dedicate a separate article to them in the future. So stay tuned!

Dungeons And Zone Objectives

Before you enter the dungeon, the game will save automatically. That’s something I said before already. So what is new this time?

To complete a dungeon, you will have to complete its objectives. For simplicity, let’s start with an example of killing all enemies and picking up five mushrooms.

If/after you complete the dungeon, the exit will appear. You go to that place and use it. Whatever it is—a portal, a door, or something else. Now, the game saves again. Everything you looted during the run will stay in your inventory, etc.

Then, the dungeon will lock itself for a specific time. For example, the first dungeon I’m testing now will close for three days (in-game days) before you can revisit it. The more prestigious the dungeon is, the more strict the entry will be.

This week, I’ve implemented all the necessary logic.
– The un/locking part
– Auto-saving and auto-loading
– Zone objectives prototype

If the zone has any zone objectives, they will appear, and you will see them in the top right corner. So you can easily recognize if there is something or not. Hint: It is not only dungeons that can challenge you. *wink-wink*

Zone Objectives UI example

The Very First Game Build

I exported the game from the game engine for the first time, made a standalone build, and tested everything. I had to change some minor things and fix a few bugs because it worked differently in the simulator.

The important message is that I can easily upload the game to itch.io or Steam (once we have the Steam page) or share it with community members directly for the first wider testing!

This is another massive step toward the Alpha release.

What’s Next

I’ll continue with the Save and Load system. I already identified a few flows that I need to rewrite to be more scalable, but nothing critical.

Saving and loading play a significant role not only when you exit the game or want to continue playing later but also when you, as a player, move between different zones, worlds, and dungeons. And that’s what I’ll change next — how the player transfers between these scenes.

For the dungeons, I’ll need to tweak and complete the system that allows you, the player, to see the completion criteria, complete them, and leave the dungeon successfully. The prototype is working well, but there’s still more to do.

Thanks for reading it all, my frens, and see you soon!