Tuesday, March 26, 2024

More Booling

A full day of programming, updating Bool. I'm amazed at how much work it is because so much has changed in my game engine since.

One example is that the old sprites used to be a fixed array, big enough for every object on the screen, so the player bat and ball, the 127 balls in the arena, and the arena itself and each letter. Unfortunately, I used the indices of these objects to know what was what, and even specific indices were printed in different orders so that some items overlayed on others.

This is not how things work now. Now I have a dynamic linked list, so that sprites are only there when needed and on screen, and these are printed in the order of the texture number, so I can use lower texture numbers for objects like shadows that need to be in the background, and higher numbers for highlights or glow effects. The new system is a lot better, but it's a lot of work changing the old system to the new one. There's more than just these bits too; the menu, text handling, even the sounds have all changed.

Still, I'm charging though this and today at 4pm, the game stutteringly ran for the first time. It took another half and hour to get the menu up and the font displaying at all. The shadows and specular highlights don't work, and the screen goes black sometimes, but now we have a first glimpse of Bool 2024:

I don't know what that horizontal blue menu line is or where it comes from! Or why it says bool three times in there, but faulty flashes, glows and other special effects aside, the game itself is playable.

My next step is to recreate new graphics and reassign new textures.

Breakout Velocity also uses this array system, which is a problem. It means that the work of getting that to work even on a simple level is also large, and probably means that I have to update its graphics and fonts just to get it running. Firefly should be easier. Oddly, Yinyang also used the separate PARTICLESTORM class, which I simply kept there. For Bool, I've removed it to use the newer EMITTER class.

I'd hoped to have all three games up and running this week, but it might be closer to a week per game, and longer to fully modernise them. I haven't had many insights from Bool as to how best to upgrade the other games, it's just naturally going to be a long process. Well, I'll do it anyway, as fast as I can.

This resurgence of my interest my old games is a direct consequence of my PC upgrade last January. It feels good to do it though.