Happy September! Here’s what we were up to in the last month!
Demo Update
In case you missed it, we released a demo update at the end of last month providing some bug fixes and a new performance toggle. Thanks to all the demo players who logged bug reports!
VFX Completion
We wrapped up the rest of the VFX work this past month. There might be some adjustments that need to be made, but this means that most of the visual effects for the turn-based battles are complete! The next steps for the turn-based battles will be creating the skills, adding the SFX, hooking things up, and (eventually) balancing! For now, here’s some of the last ones we put in:
Our favourite “absolutely not a Turkey” is showing off their feathers and Fluffing them Up to Raise their Critical charm points.
Our friendly Lynx is just giving you a small Body Slam out of love and affection. Probably.
Did you know Badgers will Stock Up on food? We’ve heard it’s to Raise all variety of things.
Finally we have a pot of gold showing off our Alchemy skills. This little fellow will now appear on Crafting screens and for the future Crafting skill in battles.
Tile Troubles
One of our focuses for the last month was adding a “walking through water” effect to all of the swamp maps. We have a cave map that already has this effect, but it was specific to the map. It was a little bit of work to make it work on all the swamp maps, but not too hard. No. The difficulty came up when dealing with the tile detection system and the cursed transparent tiles.
Now this is a rather common problem when it comes to the tile system for Gamemaker. Tilemaps are formed off of images, and if there are any spots in the image which are transparent they become transparent tiles. However they are not considered “empty” because there’s an associated image section assigned to it.
Now for Gataela we have a large image – particularly for the background tiles – which has empty spaces to fill in over time. We would rather have a single large image with empty spaces to fill in rather than recreating tilesets and redoing maps as development went on, or having a lot of different small tilesets and many tile layers.
Our tile checking – which is used for the water effect, VFX, and SFX – goes from top to bottom through the layers, finds a valid tile (i.e. a tile that is non-empty and has image data) and then determines the type. Although these transparent tiles are considered a valid tile by the engine – they aren’t valid for the tile checking algorithm.
Sometimes what happens while creating maps is that these transparent tiles will be accidentally be added. We could go through every single map and clean up every tile layer so there are no transparent tiles but… there are hundreds of maps. There must be a way to do it without that, right?
Most of the advice for this situation revolves around checking every single pixel for the tile. With the size of our image, we would be checking essentially every pixel in the tileset image worst case. That’s 2048×2048 checks. Even if we store the result that’s still a pretty expensive check. BUT! There’s a way to do that easier: using bounding boxes.
Gamemaker allows you to create image assets at run time, and these assets can be created from tiles. When we first run our tile checking algorithm, we will check all the tiles in the Background tileset once by turning them into temporary images and generating an automatic bounding box. If the bounding box’s LS >= RS then this tile is fully transparent so we’ll add it to the list of tiles to ignore. This means that instead of 4,194,304 checks we have 1,024.
What’s Next?
A bit of a switch up for next month – we’ll be working on adding NPCs (including dialogue) to the world over the next little while. If you’re interested in getting in a line or two, we’ll be streaming it every Tuesday & Sunday at 9pm EST.
Have a good start to Fall and a relaxing last bit of Summer!