Half past 7

That’s what the time is over here. And I don’t mean PM. Nor do I ever wake up this early (yes, I’m one of those people who rarely see morning). Don’t you just hate it when “Okay, I’ll just implement this trivial feature, for which my mighty libraries are fully prepared for, by adding this line over here” turns into a mad multiple-hour bug hunting spree? Not to mention the joy I then experienced when I realised I haven’t yet blogged this week.

There. I feel much better now. ?

And now for something completely different… I’ve implemented a number of features this week but it still felt a bit under productive all through until now. I’ve just added support for detecting the objects under the cursor and immediately afterwards a tentative mechanism for running the look and use scripts for the object. To my pleasant surprise, things happily started twisting and turning when I clicked on them and that really added to my enthusiasm. It also went a long way toward making the game feel alive (or at least having a faint pulse).

Other than that, I’ve implemented a number of GPL commands. Some of them (Release and Mark) needed yet another addition to the Animation library (I think it’s determined to haunt me forever). Others, like the objStat* family, unlocked some more dormant functionality. I’ve also finished handling the room perspective and all other scaling in the game, so the animations now support all kinds of size trickery. This means the NoSense logo at the beginning now works. Some of the “minor” things include lots of bug fixes and handling of multi-line text.

There is also one other feature I have hacked a prototype for in Python but that hasn’t yet made it to my branch; yes, you guessed it—pathfinding! The original engine seems to use some kind of a modified version of A* but there’s a lot of global-variable callbacky fun to be had there so I’m still trying to decipher some of the finer details (which I’ll discuss with Robert when I catch him online). My Python A*-ish simulation of the algorithm seems to be working fine but it’s undoubtedly going to be a pain integrating it.

As for other future plans, tomorrow is the day I’ll add support for the NewRoom GPL command so I can walk between rooms and start work on dialogues/talking. There are also some other commands that are crying for implementation and many bugs I’ve uncovered by enabling using and looking at objects, so I’ll have my way with those.

Until next time!