Development progress report, week 14

And we’re back after a gap of a couple of weeks. Melbourne International Games Week was a bust for me, thanks to some badly-timed medical problems, and a life-threatening illness in the family, which is no longer life-threatening, but still remains unidentified.

After a two-week gap, it  has been a bit tricky to try to get back into things, but actually enough got accomplished to be well-satisfying.

First, I took the time to make sure the code could produce a 32-bit build. The basic target is 64-bit, and I’m not even sure if a 32-bit build is worthwhile, but that’s done.

Second, there’s a new expression evaluator which allows me to define much more complex and intricate tests and preconditions. This is awesome, and helps the Narrator module do a much better job of scheduling scenes. I had a good idea about how to build a recursive expression evaluator with a simple state-machine and two simple containers. It’s fast, and works well, but isn’t so keen on unary operators (though to be fair, the expressions I use only really needed one).

Third, the telemetry is really paying off. If you haven’t added anonymised telemetry to your alpha-builds, you totally should! It takes about a half an hour to whip up the code and a CGI-script to receive the data. What it was telling me was that game-load times were … troublesome on some systems.

This led to an overhaul of the game save/load system, which now uses the same binary blob file format that the base story file uses. While there’s a lot of extra prep-work marshalling the data, the fact that it can be spat out in a single write operation actually means that the total time to save the game is reduced by ~90%!

On the game-loading side, I decided to burn a little memory on keeping an in-memory backup copy of a few key data-stores, as they exist at the time of a fresh load. A little extra memory burned, and an extra tenth of a second when the application loads the first time, and that reduces the time for restoring a save-game by ~95%!

Those are excellent results!

Lastly, the narrative itself. It gained 6,305 words of weight, and there are approximately 18 more narratives to complete to hit that elusive next milestone that I’ve been chasing. 208,653 words, thus far. It’s less progress than I had hoped to make, but things have been difficult and not very conducive to getting work on SNAFU done.

Still, as development weeks go, this hasn’t been a bad one for getting back into the swing of things.

I’ve got some exciting ideas about new conversational models that I’m chewing over, as well. I’ll probably talk some about that separately.

Also, Visual Novel development superstars, Cyanide-Tea have a Facebook page, now. Swoon over their many delicious arts and words.