Journal

The Black Forest: Auto-tiles and Water Shaders

Posted by:

The Black Forest: Auto-tiles and Water Shaders

Over the last two weeks, we’ve been working hard on two separate efforts:

1) Auto-tiling + Dynamic Water

2) Recreating menus in Godot

This post will focus on (1), but we’ll update you soon on our status on the Godot menus which are coming along nicely.

Auto-tiling has been a major time saver in terms of creating maps; however, it is sometimes challenging to create an auto-tile template. This was definitely the case for dirt walls that are on display in the second dungeon of the Gray Mage’s prologue, the Black Forest.

We ran into several unexpected difificulties using the 3×3 Godot auto-tiling feature because using a 48×48 pixel tile led to issues with ambiguous definitions for certain auto-tile bitmaps. This required us to try alternate approaches and we finally settled on a 96×96 auto-tile, but it still required numerous shifts and modifications to finally get the auto-tile to work properly, but this time will benefit us in all future maps since we now have the auto-tile template.

We are also excited to be using the Godot shading language to create dynamic effects with both fog (not shown) and water. Although the dynamics of the water aren’t truly shown off in this still image, we’ll try to post a video in the future so you can see the wavelike motions that the shader provides:

If you look carefully, you can see that the water is slightly transparent and you can see the riverbed below. The water shown above is a combination of water auto-tile but shader to get the desired water edging and wave motion. This gives us some exciting possibilities in the future such as allowing the player to potentially swim in the water to reach new areas. We’ll also be investigating how to perform sprite reflections in the water.

We’re nearly finished with the Black Forest which will complete the mapping of the Gray Mage’s prologue at which point we’ll be focusing on building up the mechanics in the Godot Engine.