Hello again, and welcome to Devlog #3! Let’s get right into this :)
If you’re familiar with Legend of Zelda Breath of the Wild, then you may have heard of the term “Chemistry Engine”. It’s a term coined by the developers over at Nintendo, and it refers to complex intertwined systems that allow for “endless” possibilities when dealing with fire, water, ice, and more.
Well, I decided this was a good concept to play around with, and I came up with several basic concepts that will be used in many ways. If you’re not interested in the technical junk, skip the next few paragraphs!
An “Element” is essentially a way to tag objects of being a certain element. Each element can react with other elements, and trigger reaction events. Also, note that an “object” in this case is made very generic! I made a few helper classes that allows for entire objects with a trigger collider to be labeled as a single element, but it’s possible to have more complex systems: for example, characters consisting of multiple elements depending on what their wearing (metal, flesh, cloth, etc)
A reaction is a event that is triggered when two elements are tested together. For most objects, this happens when two objects touch (Fire and wood, for example). The reaction does nothing on its own, and instead an object decides what to do when a certain reaction is triggered. A firepit may decide to enable the fire particles when the “Ignite” reaction is triggered, and put it out when the “Extinguish” reaction is.
So what have I done with this? Not too much yet! I’ve essentially built a single feature out of this chemistry engine so far: firepits. Firepits can be ignited by fireball spells, or torches. They can be put out by rain or frostball spells.
What makes this system the most interesting is how it scales – if I decide to add a fire breathing monster, I won’t have to do anything special to make firepits activate when they should! I just need to tag the fire breath as a fire element, and the engine will take care of the rest.
Swords are Sharp
I decided running around with the same iron sword has gotten boring enough, so I decided to make a few new greatswords, shortswords, and daggers!
Dwarves Have Landed
At last, we have added Dwarves! Currently, there are Red Dwarves, and Obsidian Dwarves. These people were shaped from stone, and thus have extremely tough skin: Red Dwarves have sediment-like skin, while obsidian dwarves have ashen skin, hardened with obsidian. More on that another day :)
Lots of Small Features
I also got through a heck of a lot of my backlog, fixing lots of bugs and adding small features. For example, the Kavi is now textured, fast traveling causes time to move forward depending on your travel distance and stars now light the night sky.
Inventories finally have columns, making it much easier to see what is going on at a glance.
Eventually I might make certain columns smarter, aka weapons that have higher damage values show up with a green value, and lower showing up with a red value, just like how it shows up in tooltip
Over and Out
And that is devlog #3. I hope you enjoyed it! See you next time :)