And today is the day! 😁
Before you is the second devlog, where I'll discuss several new, exciting aspects of the game:
Let's get started!
As part of the ongoing development of the health system, I've introduced a basic combat system to the game. What do you think about some action? 😉
As you can see in the gif below, we can attack an object marked with the IDamageable interface. Additionally, you'll notice that the object is pushed back with each hit - that's our knockback system in action! ⚔️
In the future, I plan to expand this system significantly! Each of the mobs or other characters that will have the ability to attack will receive their special moves and attacks. However, all of this will happen only after implementing the basic systems for the alpha and beta versions. First the foundations, then the fireworks, right? 🆎
Another newly introduced system is the stamina system. Because what kind of werewolf can't run for an extended period? 🐺
It only affects movement at the moment, but in the future, we'll use it to perform powerful attacks and other special abilities. Can you feel the power already? ⭐
Now let's move on to something that gave me the most "challenges" (as they say in corporations 🤭). Biome generation is a problem that required many attempts and... well, quite a few errors! 💥
Eventually, I arrived at a solution and the appropriate generation algorithm steps:
Now that we know the mechanism, let's discuss it in more detail! 😁
Let's start with generation. In this process, we go through all x and y indices from 0 to the chunk size. Then, using Perlin noise and Worley noise (as a helpful biome "blurrer") for 3 parameters: temperature, humidity, and height, we select the best matching tiles for a given location. This is how biomes are created, for which only selected tiles fit.
In the next step, we smooth transitions between tiles (biomes) by selecting the most frequently occurring tile in the immediate vicinity. Imagine: we have a grass tile, but around it are only water tiles - the adaptation will involve changing the grass tile to a water tile. Nobody likes weird, single tiles sticking out like a sore thumb! 😅
The final step is selecting the appropriate shape of a given tile, which works similarly to smoothing - by checking the neighborhood and using it to select the appropriate shape from the tile's spritesheet.
This is the simplest thing I came up with! 😊 The problem (or "challenge" if you prefer) was solved by adding another TilemapLayer object to each chunk, which - if it's generated - I show or hide using simple methods provided by Godot: Show() and Hide().
If it doesn't work in the future, I'll change it somehow, e.g., managing a tilemap pool. Who knows, maybe you'll witness my next battle with code? 🧙♂️
In future plans, I have the continuous development of the game according to the roadmap indicated in Devlog #01.
We're also getting closer to the first alpha build of the game! I'm wondering if adding an installer will be necessary at this point... 🤔 I think that for the alpha version, not yet, but the beta version will already include an installer. What do you think about this? 🧑💻
That's all for today's post! I invite you to my social media, where you can catch me and see various side posts unrelated to blog posts. Let me know in the comments what you think about these new systems! 🫢
Ciao! 🤟
© 2025 JBeGames. All rights reserved.
Website created by Jakub Solecki, owner of the JBeGames brand.
This site uses essential cookies... More information can be found in our Privacy Policy.