It’s been a while since our last update, and we owe you a big thank you for sticking with us. February and March were intense, and after all the chaos, Dan needed a bit of a breather from the social side of things. But we’re back, and we’ve got a lot to share.
Dan has now shifted to working “mostly full-time” on the game, which has been a rollercoaster of its own. Balancing the creative freedom of solo dev life with the pressure of managing every tiny detail has been overwhelming at times, but it’s also been incredibly rewarding. He’s learning that owning your own project is a whole different beast, but he’s committed to making Violet the best it can be.
Art Updates
Centaur Animations
Tony has been hard at work bringing the Centaur to life. Given its larger size, the animations take a bit longer to complete, but the results are absolutely worth it. Here’s a sneak peek at what he’s been working on:
Balanced Swings (In Demo)


Dash Sprites (Going to Demo)

Dodge Sprites (Going to Demo)


Swamp Assets (WIP)
To avoid burnout, Tony has also been tackling some fresh ideas. Here’s a look at some work-in-progress Swamp assets that will help expand the game’s atmosphere:





Music Updates
Forest Dungeon Music (In Demo)
Eugene has been composing some fantastic tracks, including two pieces you can already hear in the demo:
Forest Dungeon Night
Forest Dungeon Enemy
Wild Enemy Theme (Going to Demo)
This track, which essentially serves as the Centaur’s battle theme, is set to make its way into the demo soon. It’s intense, primal, and fits the tone of the Centaur perfectly. (Note: Quality reduced slightly for demo size considerations.)
Marketing Insights
We’ve been doing some deep dives into how we present the game, and one takeaway is that some areas have felt a bit too empty. This is partly because we haven’t entered the polish phase yet, where those fine details come in. In response, we’ve made a big decision to “compress” the world a bit, which should help make each area feel more alive. We’ll share more on this below.
Grass Sprites (Going to Demo)
We’ve been refining our grass sprites to add more life to the environments. (We’ll include a few of our favorites below.)



Asteric Art Updates (On Hold)
We received some feedback on Asteric’s character design and have been throwing around some ideas on how to improve him. At the moment, there is not much to report here, but we’re not forgetting about it!
Some of Tony’s rework:


Optimized Loading
One of the major technical challenges Dan has been tackling is optimized loading. If you’ve played the demo, you’ve likely seen the loading screen:

Currently, the demo loads everything at once, which is fine for a small world, but as the game expands, this approach simply won’t cut it. Loading 81 sections at once would slow the game down significantly or even cause memory issues on lower-end devices.
The numbers on the left and right side of the HUD are debug info. The left side shows the total number of dynamic resources. The number on the right side shows what is being loaded / unloaded. The numbers in []
is the section the player is in. The section numbers above the ===
are the sections being loaded, the topmost currently being loaded and everything else being queued. The section numbers below the ===
are what is being unloaded, the topmost currently being unloaded and everything else being queued.
So, instead of loading everything up front, the game now loads sections as you approach them, keeping performance smooth and load times manageable. This is trickier than it sounds, though. Game Maker is a single-threaded engine, meaning loading in the background without affecting gameplay required a lot of creative problem-solving. Dan even had to write a custom extension to handle file I/O on a separate thread to make this possible! This is because for most of development, we were aware of the buffer_load_async
function, that we assumed to load files asynchronously. Well, come to find out, this is not true whatsoever. Our ace up our sleeve was false! buffer_load_async
is NOT spun off to another thread, it is just non-blocking.
The good news? After a lot of trial and error, this system is almost ready. It’s a huge step toward making Violet a seamless, sprawling world. We even have a loading bar now!

7×7 Zone Rooms (Future)
As part of the effort to make the world feel more alive, we’re moving from an 8×8 to a 7×7 zone grid (the black squares in the image below). This decision not only makes combat more engaging but also reduces memory overhead, which will help the game run smoother on all devices.

Other Notable Updates
- Game Maker 2024.13 Update (Going to Demo)
This was a surprisingly smooth update, with only a minor hiccup involving some function overrides. - Move Audio Back Out From Game Maker (Future)
We’re also finished shifting audio files back out of Game Maker to improve performance and encryption security.
Conclusion
Thank You for Your Support!
As always, we can’t thank you enough for following along with our journey. If you’d like to stay up to date with our progress, make sure to follow us on socials and share the game with your friends. Every bit of support helps!
Until next time,
The Violet Team