Dev Log #0


This is my first devlog, duh. I’m working on my first game that I plan to actually complete haha. I had this game idea for a long time to have a world made out of different colors of sand. Over time this idea evolved into the game idea that I’ve started prototyping in Godot. It’s a tactics roguelike where the player heals mutated animals by balancing their bodies with the correct color of sand. Right now, it is just boxes moving around a hex grid but the vision is to have the player be a healer that’s going on a journey to heal these mutated animals and grow in their healing powers. The issue is the animals are aggressive and violent when they are mutated so healers that walk this path are putting their lives at great risk. One fun idea with this concept is that we now have a reasonable explanation for the player to get resources that isn’t picking stuff off their dead body. When the healer heals the animals of their mutations, the animals repay the healer with magical sand, which the healer can use to craft new abilities or purchase items from a wandering caravan. The end is essentially defeating a final boss that is a powerful source of mutations.



But, for now we have boxes on a hex grid lol. Right now, I am still prototyping and I already ran into some difficulties related to my lack of programming knowledge. In Godot, you use signals to communicate data from child nodes to parent nodes. It turns out that I was just sending signals everywhere with reckless abandon. I asked the Boston Godot group on Slack about it and they told me about the Messenger bus design pattern. This design pattern basically means that you can have a script that is acting as a mediator that you can send your signals to. And, then that script takes those signals and updates the appropriate data. For example, a player sends an attack signal to the Messenger and then the Messenger updates an enemy’s health. In this way, the player and enemy node can be focused on their own state and less focused on sending and receiving a bunch of signals between a bunch of different nodes. There are other benefits and costs, but that is the basic gist.



Anyway, I now have to re-factor a bunch of code 😅. You might wonder why I am doing this for a prototype. The reason is that the fundamental turn-based tactics part of the design is not going anywhere, so I want to build a solid foundation that I can then iterate on and experiment with. My goal is to make my code more readable and understandable, so that it is easier to adjust later. Easy adjustment is important since I will be changing a lot of mechanics during prototyping.



Thank you for reading my first devlog! You are adorable!