written by owen on 2023-Oct-09.
What have I been doing? Nothing much. I took up a new goal of simplifying my game engine code down to the bare minimum. It is turning out to be more difficult than I expected. Code grows rapidly. I have been creating new prototypes because I am definitely not going to re-write my old games. Plus I really should be working on multiple smaller things rather than spending years hacking at one big project as is my modus operandi.
These new prototype projects rarely make it into the screenshot gallery because I am testing them on dolphin instead of the real wii hardware (which is where all these screenshots come from). This comes with benefits in that I can record some silent videos which I then upload to the NewoGame youtube channel - 77 followers so far. The prototype pictured here is a new simplified collision code that I hope to use to replace the more complicated code in NZ. However it needs more testing before I jump into that ball of fire - if it aint broke dont fix it. It would reduce+simplify the code by 80% - if it works but I am very cautious.
I created a new lib called quad.h to which you send 4 world space vectors, 1 normal and 4 colours. It then converts all the points to model space so they can be drawn in one drawn block. I am really deep into this one draw call multi-object batching life. Similar to what I did with the sprite signs+decals in NZ except this is for quads. This is how the green landscape is drawn in the prototype you see here. This lib was quickly added into NZ to replace a similar hack for the buildings - I had to do a few calcs to figure out where the 8 corners of the cube fell but it was straight forward once I worked it out. It was not as big of a performance jump as I had hoped but everything is buzzing along nicely for the upcoming NZ4 release.
The NZ codebase has gotten huge. I dread thinking about the number of systems that I have put in place over the 2 years that I have been working on it. Lots of things are happening at the same time especially in the UI to make everything work together. I need to simplify alot of the variables if I ever hope to add multiplayer. Currently the player variables are in global space and there are a couple pieces of code that check for the player's position so I need to centralize those to ensure they are multiplayer aware.
These performance tweeks that I have been making in the past couple of months have given me more head room for the future additions that multiplayer will require. NewoZero V4 is basically done, mostly casual testing. If I try to add the new track collision code I might run into delays so I will probably leave it out until the next version. NZ v4 will add a new master cup/difficulty, more decals and better performance. I will probably release it in Dec2023.