Blog Blog

[September 21, 2026]

Age of War 3D Devlog 2

finally solved the memory issues and got the engine in a stabe place, so i thought it was finally time to make a progress update!! :smile:

after my i uploaded previous devlog, I had made the descision to switch from baking in sprites right into the game, to reading the decompiled flash assets from the SD card instead (this was for a few reasons. I thought it was a bad idea to package a public build of the game with copywrited assets, to avoid legal issues, but it also opens some pretty cool doors, like modding and reskinning!)

adding in all 5 ages and all their sprites was easy, and it was working just fine on emulator, but then I tried on console..... it crashed my entire sysetm whenever it got to around age 3, sometimes right away, sometimes I just had to think about it and it would crash... sometimes i would see it crahing in my dreams and i would wake up and it would be crashing in front of my face !!!

I struggled with this for months, went crazy actual coocoo bananas to the point that didn't even wanna look at this project anymore.. but I finally just sat down and committed myself to it again, and ended up making an image swizzler/caching system that converts assets into 3DS optimized textures (32-bit to 16-bit, power of 2 downscaling, reorganizing the pixels into 8x8 tiles, etc) and caches them into binary files on the first boot of the game! ages then dynamically load, 2 at a time! the current age and the next age, and if there's still some units of a previous age still alive after both the player and the enemy have evolved, theres usually still room in memory for them too until they die and are fully culled from memory!

a few other small things worth mentioning is that I made a wood grain texture generator which generates a new wood grain texture every time the game is booted for use on the bottom screen's GUI! and to create 3D depth whenthe background image of the ground/treeline is just one image, i built a custom pixel scanning algorithm which is applied to the image during the cachine process, which converts it into 2 seperate assets which are then rendered at different depths!

another thing worth mentioning is that I've completely reworked formation logic, in my original devlog they just attacked opposing units and ranged units shot from behidnd friendly units that were attacking, it was very simple, but caused a lot of problems. but I've refined it so now units follow a strict rank order, so theres a frontline unit rank, and a support unit rank. support ranks are just ranged units that are directly behind an attacking frontline unit, all frontline units default to melee in close combat, and it just simply works like it should!! and the base enterance hitbox is also refined, so that now units spawn on one edge of it, and opposing units attack the other edge, leaving the space in the middle, which solved all of the weird overlapping and desync in the formation line!!

the big reasons for the memory issues and system crashes I've been dealing with the past year was the massive overhead of processing and opimizing literally hundreds of pngs on the spot in during gameplay.. and on top of that, the power of 2 conversions i initially were using were converting textures into HIGHER resolution instead of smaller! for example, the dinorider's death sprites are 140 pixels wide, and they were being converted to 256 pixels! and so the system just always ran out of memory and even cpu power, from all the image processing happening ingame. the entire thing was just so messy, and it took me a long time to solve, and I had actually reverted to much older build and soft resetted more than once!

but it's working now! and the systems are wayyy cleaner! I could technically add as many ages as i want,
and theyd all load as they should! the current engine is very very solid, adding the rest of the features should honestly be way simpler! I'm working hard right now at getting the special attacks fully implemented, and still continuing to tweak hitboxes and sprite offsets, to get the formation looking tight and consistent, and then I'll be focusing on the turrets! I'm already making progress on the special attacks, so you definitely won't be waiting another year for the next devlog!
I'm feeling confident my next one will be my last for this project! :smile:

[September 11, 2026]

noo pls stop unsubscribing from my music channel lol i swear im still making music :cry:

[September 11, 2026]

huge news for anyone who was following my age of war 3DS port, I finally cleared the wall that was standing in my way for months and fixed the memory crashes!! I solved it by making an image swizzler which generates a binary cache on the first launch, which optimizes the images for 3DS hardware and converts them into .bin files for each age! now an entire age is able to load in a second!!! I'm feeling very positive about this, I'm working now on adding in special attacks, and getting all the values aligned with the original game, like health, xp given, gold given, cooldown speed, damage given, health, etc, for each unit,
I'll post a new devlog to show the current progress! :cool:

[August 8, 2026]

wtf