This is the week I decided that a lot of what I had been doing was wrong and ended up completely reworking it. I can’t really claim to have made a lot of progress, since everything has kind of just been rearranging things so that things go smoother in the future, but I’ve been working pretty hard anyway.
Last week I said I’d created an entity ‘signature’ system to track them uniquely. I’ve decided that that system was redundant and poorly thought out, so I’ve deleted it: Instead I’m working on fleshing out each entity’s ability to track its own state between creation and destruction, the ability to set remembered parameters from outside or inside the entity and use those to create whatever long-term effects are needed. Because of this and because I’ve long felt the entire entity system is a bit suboptimal in terms of stability and understandability, I’m overhauling the entire entity system now. Here’s how it’s supposed to work:
Each entity has a template, which stores all of the behaviors of the entity and thus defines basically what it is. It also houses the settings for each of those behaviors, which can be tweaked as necessary, and which are saved with the template. The entity itself also has two data storage points, parameters, which are saved with each entity instance, and status, which is transitory and created/deleted with the entity. Previously, I’d kept both parameters and status data together in one block, but separating them allows me to make certain assumptions which will prove invaluable when I start working with them more directly and regularly. Also sorry for my handwriting.
Before I went down that whole road, I spent a couple of days overhauling the entity editor, which is now much more streamlined and easier to work with since I took all of the template editing stuff out. For now all of that work will go unused, but I may create a separate dedicated template editor with the work if I decide that will be a good use of my time somewhere down the line. So, once I finish overhauling entities, now that all of the parameters I need to tweak for entities will be conveniently split out into their own object I should be able to fairly quickly and easily throw together a parameter editor to fit on top of the existing entity editor, and from there I should be able to very quickly start populating levels with entities while still being able to tweak them in a fairly detailed way as necessary.
There’ve been a few slow days in the mix here, but I think that once I get through this work will pick up again pretty rapidly. I’m looking forward to it.