Rewritten ZenF in C / libtonc
As I promised I wanted to address all issues mentioned by the jury and submitters of GBA Jam 2024.
I took me a lot longer than expected but it's finally done now.
A big problem I had in my Jam version of ZenF was a crash caused by video ram running out. I tried everything but couldn't get the problem under control in my Jam project using Rust and the agb framework. There is a bug in the agb framework not freeing tiles correctly after you are done using them. As I allocate and release tiles when switching back and forth between menu and ingame the vram is slowy filling up with no longer used tiles and in end it runs out of memory. The author of agb is maybe aware of the problems, or at least I found one discussion in the github describing this problem, but sadly it is not solved until now. Here is a link to the discussion, in case you are interested: https://github.com/agbrs/agb/discussions/730 . I was myself not able to find the bug in the agb framework but hopefully it is getting fixed in the future.
Beside the vram problem I am and was never convinced with the performance I achieved using the agb framework. To be honest I also didn't like the development with the agb framework too much. for several reason and that was finally it which lead me to my decision:
Lets rewrite ZenF from ground up.
For the rewrite I decided to use C programming language, as it fits very well for gba development. Just using structs and functions does work very well most of the time, no matter what you are trying to achieve. I used devKitPro ( https://devkitpro.org/ ) and libtonc ( https://github.com/devkitPro/libtonc ) as framework / library. The development was much different compared to the more "high level" agb framework, but I think I learned much more about gba programming by going this route. By the way, I want to mention this excellent website https://gbadev.net/tonc/foreword.html , which helped me a lot learning libtonc and my understanding of the game boy advance in general.
That's it for now. In the following I will just list stuff I improved on in the rewritten version of ZenF:
1. Running out of VRAM is no longer a problem, because I could handle the allocation of tiles myself and that just works.
2. Sounds are realized using the gba inbuild square wave generators and now have appropriate volume.
3. The main menu, sub menus and the help page are redone using bigger font for better readability.
4. There is now a difficulty slider with 21 different levels, which let's you adjust the game difficulty to your liking. Also check out the "random" setting for most gameplay variaty.
5. A new control scheme was added, letting you hold down the A or B button to be in "Flatten" or "Deflatten" mode and leave the mode on release of the button. Turns out this works so much better then the old input scheme, so it is the default now. You still can switch to the old scheme in the options if you like so.
Thanks for all your suggestions to improve the game. Have fun with the update.
Files
Get ZenF
ZenF
Zen puzzle game to relax.
Status | Released |
Authors | gordonshamway23, WTBasil |
Genre | Puzzle |
Tags | 2D, Game Boy, Game Boy Advance, Relaxing |
Languages | English |
Leave a comment
Log in with itch.io to leave a comment.