After a few days spent fixing some really sneaky and insidious bugs in the animation system, I’ve started in on creating an animation editor. Since the save file format of my animation files is .anx (animation xml), I’m calling this tool AnxEdit. This is the sort of thing that I hope will be really useful for a long time, and maybe even be useful to other people if I do it right, but which also might just be a big time investment in a way of doing things I only ever end up using for this one project and end up discarding. A lot of the programming work I do occupies that state, I suppose. I try not to worry about it: Either it will be useful for the future or it won’t, and most probably bits of it will and bits of it won’t. Even if none of it is, the act of learning why none of that stuff will be useful should be, itself, valuable and edifying.
I’m not sure how long it will take this to coalesce. I tend to code from the outside in, starting by creating all the member variables I need, then the classes I need for those member variables, then the member variables of those classes, and so forth until I have all the members and classes laid out – then I pick one, probably near the top of the hierarchy, and write out all its functions, test it out and get it running, then the next, and so forth until it’s done. Usually that means I waste relatively little work, since the role of each class is made clear when I start by how it’s used elsewhere. Anyway, a lot of it is just boilerplate and UI stuff, much of which I can hopefully copy from elsewhere in my code base. I don’t think any of this will be very hard, but it might take a while just to get everything working – not difficult code, just lots of easy code.
Anyway once I get that done I’ll tidy up the animations, add the registration points to make the secondary attacks, procedural hair animation effects, and sprite attachments work, and that should lead naturally into a few more tasks, as well as still finishing up the spear throwing issues that originally sent me down this path. Once I feel reasonably settled with all that stuff, I’ll start in on building out the first level to more-or-less release quality, albeit still missing a couple of enemy types and some narrative elements – indeed, figuring out what all is missing when I try to build a finished area is much of the point of exercise, since that will point me towards exactly where I’ll need to put in work next.
Feeling torn between lots of commitments at the moment, but still making progress, even if slow, even if tangential. Going somewhere slow is better than going nowhere fast, I suppose.