Release 1.36: Applying Bandages and Optimizations
Delta Light Patch Notes — June 29, 2023
Aggregated from Steam, cross-tracked with Battle.net coverage on GamePatchNote.
Originally coming out in 2020, Delta Lights original release feels like half a lifetime ago. And yet I am here to once again announce a big patch for Delta Light. And much like many other Delta Light patches, this patch unfortunately has no new visible content. Yet I dare call this a big patch.
In the last three years I’ve been updating and patching the game and its engine with what feels like literal patches or bandages. For Delta Light the whole engine has been branched off to accommodate the game-play layer. But unfortunately bad design choices three years ago bite me harder than I can bandage.
In these patch notes I want to lay some bandages applied in this summer 2023 patch!
The first big bandage was applied on a subsystem that handles rendering sprites. This bandage increases actual CPU performance by a ton. Without going too much into technical mumbo-jumbo, I phenomenally reduced the amount of time different CPU tasks wait on each-other when displaying sprites. I don’t think 3 years ago I would have found this problem. I ain't Dave Plummer yet (and I don't pretend to be), but this must mean I am still getting better, this makes me happy.
Delta Light still uses more ram than an app of its complexity ever should, and I know why It does. And this issue has a clean solution. But that requires me to rewrite how to handle huge images. I know this, but instead I used a bandage. Much like increasing performance by reducing the amount of running code, I increased ram performance by using smaller images. There was a huge part of the background that was never visible to the player, now the game just doesn’t ever try and render it. So less ram is used.
The last bandage - this is not really a bandage - is in the system that holds a couple dozen of variables for each object in the game. Each object had a dictionary for the variables, a type of collection that stores every variable with a readable name. Now, instead all the possible variables are stored in a line in a fixed order. When the code wants to retrieve something from the list it just has to know where in the line the variable should be in and return whatever is there. This might not seem like a big improvement, but just going into memory and returning whatever is there is way quicker then looking it up by a name. But this small improvement, done for each (of the thousands) object in the game multiple times per frame sure adds up.
I want to thank everyone kind soul that interacted with me or the game in those three long years
~Veldin