Progress this far


I've been working on a number of mechanics, starting from the most important parts first so that I can hone them and see whether they really are good features. Most of these will probably still change a lot, maybe even scrapped completely.

I decided to create all the assets myself, decision which I might end up regretting. I have drawn the sprites, made the sound effects and even wrote one track of music. Most of the time I've used on the project this far has gone to creating the assets, but it's been fun. 

Brewing potions
The main idea of the game is to brew potions.  That's why I decided to implement this part first.

Brewing works by putting ingredients in a cauldron. The ingredients are found in the world,  bought from NPCs, or made by processing other ingredients. Each ingredient has a list of alchemy effects with varying potencies. The idea is that raw ingredients can be used for low quality potions, but higher quality potions require processing. This processing is stuff like grinding, drying, distilling, fermenting, heating etc. The processing is done with devices that need to be unlocked through gameplay.  Each device would affect the potencies of the effects in different ways.

The brewing itself is very simple. You put 2-3 ingredients in a cauldron and if their effects match well enough, you get a potion. If the effects don't match, the brewing fails. The same type effects of all ingredients are summed up, and the most potent effect is selected as the name effect. If the name effect does not exceed a minimum potency, the brewing fails. Any other effects that are similar to the name effect are selected as main effects. These increase the value of the potion. Any effects that are contradictory to the main effect are side effects, which decrease the value. For example if ingredient A has the effect "Poison" and ingredient B has the effect "Strength" you are not going to get a "Poison of Strength" but a bad quality potion of strength, or a bad quality poison depending which of these effects is more potent.

Finished potion. This one has the major effect Strength with potency of 1.5, and a list of side effects. As you can see, the logic needs to be honed still. Dye and Adhesive should not be value decreasing side effects, but neutral effects.

I have already rewritten the entire logic for this once, and I really need to hone the money value calculation and the values that determine which potencies are big enough for the effects to appear in the finished potion.

Brewing in progress. The progress bar and cauldron texture changes color depending on the ingredient.

I really wanted an animated progress bar for this, I wanted the top of the progress indicator to have a bubbling effect. It ended up being much more work than I anticipated. . Turned out that you can't make an animated progress bar with the Godot's built in progress bar node, so I had to make it myself. Was a bit of a pain to get it to function properly and the code admittedly ended up bit of a mess. Looks pretty cool though.

Inventory and storage

Inventory is also important for gathering the ingredients. You can open it by clicking the backpack icon on the screen. For now the items are controlled just by simple left clicks. If a UI is open, the item is added to the UI. If no UI is open, a description of the item is shown. You can see the player inventory in the above picture.

I also made a storage chest for depositing items that don't fit in your inventory. This works with simple left clicks as well.


Grinding

The first processing device to be implemented is the mortar. This grinds the ingredients to dust, increasing the potencies of the ingredient. The full logic of this is not yet clear, this is actually still in progress.

Grinding UI. For this I desided to use the Godot built in progress bar, and it was much easier to use than the homebrewed one I did for the cauldron.

Bartering

Even though the bartering mechanic is not that important, for some reason I did it quite early. This shows in the UIs, I was not very familiar with Godot's Control nodes yet. Bartering is accessed through a conversation with an NPC, so I needed to also implement the dialogue mechanic. My first NPC is the shopkeeper who sadly doesn't have anything important to sell yet.

Dialogue interface. Ignore the terrible yellow lighting, this was probably my first time experimenting with Godot lights

The bartering UI. This was the first UI I implemented for the game and it shows. I need to redo it some time.

Next up

That's most of the mechanics this far. Next up is making the first resource gathering area and the first NPC quest. The biggest problem I have for the resource gathering now is making it engaging without combat. I've been going back and forth with ideas but I haven't come up with anything that I love this far. Maybe adding some sort of danger to the area, maybe having some sort of other challenge. I have to prototype with it a bit. If you have any ideas, please tell me in the comments.

- potiondev

Get Wilderness Alchemist

Leave a comment

Log in with itch.io to leave a comment.