Developing Floramancer

So it's been awhile since I posted any updates to Sometimes I find it a bit difficult to juggle both development and outreach, but a lot has happened since I last posted, so here's the big updates:

The design of the game has gone through many, many iterations, with some sections being whittled down and others expanded upon. For instance, in the original design document, I had plans for a whole village rather than just your garden, with people settling down on the village and you being able to build relationships with them. But this has been slashed. The garden is now simply your little home where you raise your units. This reduction has been somewhat counterbalanced with a few things that have been added though, such as terraforming the ground and being able to build structures.

This design decision came about because I felt like it took away from the core part of Floramancer, which is stopping the Void from corrupting your island. Having a whole community to manage and interact with made the game feel much more like a farming sim than a strategy game and I needed to balance the two better (as in, it needed to feel like it was equally a farming sim and a strategy game, rather than leaning one way or another).

A day in the life of a Floramancer

On the flipside, the combat aspect has been reworked and expanded dramatically over the development of the game. Originally, it was intended to be kind of a creature rush. You grow as many units as possible and attack things, and combat would happen somewhat automatically. But this quickly got old.

After the creature rush idea was abandoned, I was thinking about a tile-based combat system that relied heavily on positioning. Combat would flow automatically, but the positions you moved your units to would determine what combos you could pull off, etc. But this led to a very hands-off approach and it made longer combat sessions, or sessions where creatures spread out widely across the grid feel kinda boring.

So finally, I settled upon the current system, which is hexagon tile base, with each unit having a unique special ability alongside a standard attack and you controlled each creature directly. Combining the unit's magic type with abilities that effect the actual hexagons themselves (for instance, certain fire units being able to set fire to hexagons, other ones being able to freeze them, etc) was just the thing that was needed to spice up combat.

Here's an example of the combat field with each hexagon having a randomly assigned status effect to it (the field won't look so crowded and confusing during actual gameplay, as this was just a test of the status effects):

Hexagon status effects after the entire combat field has had them randomly applied

In some ways, the entire development of Floramancer's combat has been about reducing the number of units you control, but adding more strategic depth to the decisions you make with those units.

On a more meta-update, I found an artist to work with, which has been awesome and led to me rewriting the entire engine from scratch. This is something I've been wanting to do for awhile, as the adoption and abandoning of different design ideas had led to a somewhat bloated engine, and finding the artist was just the kick in the pants I needed to do it. So the entire engine has been recoded from scratch and it now feels better than ever to work in.

I've also done a lot of work on the procedural generation of Corlarn (the island you live on). I went through various iterations of cellular automata and value noise generation, which -kind- of worked, but I wasn't happy with. I eventually set up a perlin noise generation, but that was super slow to generate (due to GMS' internal coding, I guess). So when I rewrote the engine, I sat down and did a lot of research into perlin noise and eventually found an explanation by Xor on how to implement it in a shader, which was awesomely fast. So by writing the perlin noise onto a surface in the shader, adding the surface to a buffer and then extracting the pixel values from the buffer (this is because GMS is super slow when reading pixel values from a surface, but pretty fast at reading buffer values), I managed to get a fairly large map generated in a few seconds which is so much better than what it was before (in fact, it was so much faster that I could generate and read three perlin noise maps into a grid in less than half the time it took to generate a single perlin map without using the shader).

Overall, Floramancer is a faster, better coded and more streamlined game due to all these changes and I'm excited for when I get to release the first alpha and beta versions for people to play and test.

Leave a comment

Log in with to leave a comment.