I always hate doing these updates where there’s not a lot of progress to report. The last couple of weeks in particular have been devoid of any progress on the project, or even any work on it – at first because of a shoulder injury, which was making it particularly difficult to focus on any of the complex problems I needed to solve to work on the code part of the project, and then on a short family vacation. Before that, I was working regularly on the project – well, except for the week or so where the new meds I was trying out were making me too groggy to think straight – but, still, not making a lot of progress.
Part of the problem with working on a project the size of a game is that sometimes even the components of the project, the discrete chunks you’ve written down as tasks on a task list, come to substantial undertakings in their own right. Especially when one’s focus is split between several of these, it can be entirely possible to spend a lot of time working on them, not running into any particular roadblocks and making what feels like good progress in the moment, and look back and not see anything new actually finished. This is basically how things have been for the last month – In particular, the storytelling system has taken much much longer than I’d expected it to, leading me to do a bunch of rewriting of the music system. The reason why the music system had to be rewritten was so that I could readily sync the storytelling lines with the music when I wanted to, in a way which I didn’t have to custom code for every story and every music track. I now have a system where any music track playback can intelligently jump around – that is, once I put in a number of valid points it can jump to in a track, say if a certain section can end in three different ways, I can give it a destination range in the music and it will find the shortest path to get there. I didn’t expect to have to read up on pathfinding algorithms for my music code, but here we are.
Now that I’ve got that component of the storytelling system figured out, there’s still one major roadblock to finishing it: Text rendering. This is something that should be easy in Flash/AIR, but just due to how I have entity rendering set up is a bit tricky. At this point, I have two options: Either I modify the entity rendering system, which would be a nuisance but not too difficult, or I find a way to convert the text into graphics rendering commands that I can send to the entity draw command queue. I’ve found a library that does this, but it hasn’t been updated for 8 years, so it might not be an ideal choice. If it doesn’t work out and I don’t find an alternative, though, then I’ll just have to rewrite the entity draw command system, because writing a whole text renderer to handle this problem would be an obscene waste of time, albeit presumably an educational one. At some point, as well, I’ll have to create a typeface for the game to use, possibly several. I think that will be fun.
The other two major things I was working on last time were the health bar and the awakening animation. The awakening animation has turned out to be a bit of a quagmire as well – I had the motion of standing and grabbing the weapon looking pretty good when I realized that I hadn’t really planned out how it was actually going to fit into the level where it was supposed to happen. This was something I can only describe as an extremely foolish oversight on my part. I’ve begun reworking the animation and I think I figured out a way to do so without completely starting over (again), but it required me to redraw the tree which was the main prop in that area. Honestly, I’m glad I was forced to do so, because the previous tree looked pixelated in a way which I had thought looked okay – but, I can see now, really did not. It looks much better now.
Of course, now I have to be concerned that making this tree look better will make the rest of the game look worse in comparison, and lead to an endless cycle of revisions. For now I’ll just have to enjoy the journey I guess, because I can’t say when things will start looking ‘good enough’ to me.
As for the health bar, progress is being made on it, but the storytelling code took priority and I didn’t want to split my attention between two programming tasks. I’ve also been working here and there on music for the next area, but though I have a number of promising ideas down, most of which will probably find their way into the finished version somewhere, none of them really feel like the right place for the song to start. For now, there, too, I keep experimenting, waiting to be visited by the spirit of satisfaction.
So, for this next month, I intend to finish the storytelling system, finish the awakening animation, finish the health bar. From there I’ll probably start in on other necessary animations – though I also think it quite likely that I’ll look at the tilesets I have to bring their level of quality up to this tree asset. It’s gotta be about the pleasure of the journey, because at this point I have frankly no idea when this project is going to go anywhere. I wish I knew how to work on it faster, but at this point it seems like it’s work slowly or not at all, and hope one day to accidentally, habitually, fall into a more rapid pace.