Hello friends! Just a very short update this fortnight – it’s the start of semester and that’s always absolute chaos, and I’ve had a lot of crappy life stuff to deal with at the same time, so I haven’t got a great deal done this fortnight, unfortunately. As such, I’m just going to write up a quick summary of what has been done, and then we’ll come back next fortnight for a much larger update, which should include some / maybe even all (!) of the riddle integration into the game itself, which is another gigantic milestone. A lot of what I’ve been doing this fortnight has essentially been laying the groundwork for that stuff, which means there isn’t a great deal to show off, but it all needed doing. Anyway – the main thing done this fortnight has been getting started on integrating the riddles from the test file into the main game. Readers will remember that we have four “ranks” of riddle poem stanza generation at the moment, i.e. one describing a civilization, one describing a place within that civilization (e.g. a town, a mine, a district of a city, and so forth), one describing a place within that place (e.g. a single building, or a garden, or whatever it might be), and then one describing what you should do there to solve the riddle (e.g. drop a biography on the floor, wear a crown, look on a wall three tiles in from the left-most wall, play a certain tune on a certain instrument, or any other possible in-game action). In my testing I foolishly built these into the same generator, so the first step was to separate this out into four generators that are not dependent on each other, which I’ve now done. This will allow me to more easily adjust and add to them, but will also allow a single stanza to appear by itself, e.g. in a book or a note that only gives you a sliver of what you need, instead of all of it.

With that done, I’ve set about working on enhancing the civilization stanza generator, which is the one significant job that I have fully begun and finished within this two week period. While I had already put in a tremendous amount of effort to get this to the point of being able to create truly, truly vast numbers of potential stanzas to point you towards a civilization – i.e. by giving two bits of information, and ensuring in the process that only one civilization within that game world had that combination, otherwise it would try again – there was a bunch of stuff to do with civilizations that wasn’t fully included in the original generator. One of these involved the symbols on coinage in sedentary nations, e.g. a raven, or a portcullis, or a temple, or whatever it might be. There were some line variants which would include some mention of it in a general sense, but the rhyming word wasn’t unique to the specific coin appearance. So, for example, a sentence might be “Where coinage bears [three word description] as its symbol”, and that might then rhyme with words like “cull” or “lull” in the second half of the stanza. A three-word description would then be chosen for each coin design, so “a black-winged bird” or “a growing flower” or whatever, and slotted in. This worked well, but I also wanted to add variations where it’s the specific coin design that leads to the rhyming word. As such, we now have an absolute ton of these – hundreds of permutations – just to handle specific coin designs, so for instance one might have a sentence that generates something like “Where the sign of wealth is that of a place of worship” (for a temple design on coinage), or “Where merchants trade that which flies on black wings” (for a raven design on coinage), and then we’re rhyming “worship” or “wings” or whatever it might be with the other word in the other line. Having done some testing, this adds some really cool extra variation into the generator, and really stresses again the importance of paying attention to the world you’re exploring.

Similarly, I wanted to add in some of the other weapons that will soon be appearing into the mix. For instance, this would be throwable greandes – currently in the smoke, flash, incendiary, and fragmentation variety (which are also seriously in need of a graphical update as right now they look far too much like winter holiday baubles one might hang upon a tree) – and also throwable weapons, which is to say needles, chakrams, mambeles, and shuriken. Whereas in all cases in the previous cycle I’d included a few general variants of the sort described above, i.e. taking a very short description of what these things are and then including them in sentences that could generate but have a reliable end-point, here I hadn’t even done that yet, and certainly hadn’t added in any unique one-off stanza permutations for specific subtypes within these categories. So, I set to it, covering twenty thousand lines of rhyme-poem generation code and raw material in order to add in what turned into many dozens of variants, with all kinds of end-words, for these throwable weapons. With this done, I was incredibly happy with these new stuff the generator was sometimes producing, and pleased to have yielded even more variety in what could possibly be used to point the player, a clear but cryptic and obscured manner, towards a particular civilization. In this process I also realised two things. The first of these was that some of these civilizational traits are going to be much harder to spot than others, i.e. it probably won’t be hard to see what the religious state of a nation is or any of the policies or traits that relate to what shops show up in marketplaces, but by contrast, something like “what kind of thrown weapon do they favour?” is quite obscure. As such, I’ll need to implement a system that ranks the difficulty level of stanza information, and generates stanzas appropriate to how difficult the riddle is meant to be. The second is that I really need a stanza generator for bioregions as well as civilizations to function as an alternative “this is the area of the world map you should be looking in” stanza – but we’ll do that later.

So, with that all done, I’m now shifting all the riddle poem generators into the core game, and testing them, and it’s already coming together with extraordinary speed. To my amazement, it genuinely won’t be long now until I’ll be able to generate a full riddle, and have the game generate the thing at the end of that riddle when you correctly get to the place and do the thing the riddle demands, even if the place in question didn’t actually exist – in the sense of having been generated – when the riddle was created! And to do this across millions, billions of possible scenarios and permutations… and, of course, this is only the beginning, in terms of expanding to other forms of clues (it’ll be map clues next), other forms of solutions, and a more fully interactive world of secrets, within secrets, within secrets. As I write this – and I say this not to reassure you, the reader, about gameplay progress, but if anything, to actually “pinch myself” and catch myself at this moment – I cannot quite believe how close things are to being playable, after fifteen years of work. It’s so exciting – now, if I can just find some time in these next two weeks to get back to work! Once again, I’m sorry there’s just not more to say this week, friends – just been quite overwhelmed these last ten days or so. Hopefully more next fortnight once, I hope, things are a bit more stable again. Thanks as ever for reading though, I do hope this brief look into the riddle generation has been interesting – and I’ll see you all in two weeks!

Leave a Reply

Your email address will not be published. Required fields are marked *