It’s been kind of a slow week. I started off by adding those features to the map editor which I’d noticed were missing last update, but since then I’ve just been trying, bit by bit, to polish the collision detection up. It’s getting really close to perfect, but there’s something weird going on with steep slopes, with the resolution of the collision seeming slightly inconsistent. As a consequence, the character, when pushing up against a slope, kind of jiggles back and forth. On its own this effect isn’t too bad, as it actually makes it look more like she’s pushing against the slope, but it doesn’t play nicely at all with the animation system as, if she pops off the slope for even one frame, it flickers into another animation. Still, if nothing else I could revise the animation commands to make this a non-issue, so really the collision detection is basically usable now. It’s not up to my standards, and I believe there’s still work to be done, but I’ve seen games on sale with worse.
Aside from that, I’ve been slowly working up my nerve to tackle the entity editor. This editor promises to be by far the most complex of the tools I’m developing for this project. It needs to be able to place and edit objects with arbitrary parameters using a consistent interface. I spent a bit of time sketching it out this morning, and here’s what I’m thinking it will look like:
Here’s a quick tour: The top bar, the yellow one, is segmented into four pieces, and each one contains a behavior and its editable parameters. So, for instance, in a lot of cases this first one will be Position, and its editable parameters will be its x and y coordinates. There can be an unlimited number of behaviors up here, so the arrows on the right and left, along with the scroll bar (green), let you look through them.
In order to create a new entity, you drag a prototype from the list of prototypes on the right (purple). Prototypes are pre-made entities with missing fields: So, for instance, if I have a monster called a Demon that can come in different sizes, strengths, and colors, I will drag the Demon prototype out onto the field and I will be asked to fill those parameters, at which point it will be created. The most common blank field will be, again, Position, which will get filled right away based on the position where I drop it on the field.
To modify an entity that’s on the field, you can either click its image on the field OR select it from the list of all entities on the left-hand side to make it the active selection. Once you do that, you can modify the behavior parameters, as mentioned before, or you can add new behaviors by dragging them from the list of behaviors (blue) onto the bar. There will probably also be a button for deleting behaviors, but since some behaviors require others in order to operate properly I’ll have to add in some extra checks to make sure that works.
So that’s the basic plan for the entity editor. I’m not quite sure yet when I’ll get started actually developing this, but it’s next on track after I get this damn collision right. Probably I’ll start at least laying the groundwork for it, making prototypes functional and figuring out how parameter editing will work and etc, later this week. Probably won’t have any screenshots for a little while yet, though.