This week has seen the implementation of name generation into the main game file, to rather fantastic results, alongside a substantial amount of bug-fixing. For name generation, the names now consider all the relevant religious/cultural/geographical background of the nation they hail from, and generate appropriately. The game also tracks the various different structures of the names – some name types have just one name, some have two, some have several with a mini-title in the middle, and so forth – and can always produce a “casual” version (i.e. “Mark” to “Mark Johnson” or whatever) as well as accurately reproducing a name when needed, without looking for name-segments where they don’t exist, or failing to look for a name segment relevant to a certain name archetype.
I have to say, I am *so* happy with how these look! They’re all very different, some speak to particular locations or cultural ideas, whilst others don’t, but they are all distinguishable. I’m still doing a little bit more work on these, but only a couple of hours’ work remains, and then in 0.8 everyone who you speak to will have their name highlighted. So, here is a rather splendid set of examples from a whole bunch of cultures in some playtesting world generations! Hope you like black-and-white images…
In the process I also had to develop the very start of the system for generating sets of animals and plants within particular climate zones. Plants were already present but were distributed across all biomes of a certain type (so northern tundra and southern tundra areas would have the same plants, somehow), and also tended to be colour-matched to their biome, which made a degree of sense but definitely reduced the kind of background/aesthetic interest they could potentially generate. Plants were therefore redone, and their naming conventions were also altered somewhat to reflect these changes (all of which come before visual generation at some later date when I have a spare couple of days). Animal generation has now appeared for the first time, and just like plants, they are tethered to a certain area of a certain biome – so the game finds a tile of desert, looks to see how far contiguous desert extends, and then all that desert has the same group of species. The species elsewhere, by contrast, will be completely different, even if they are also desert. Like plants, I’ll generate the images for these at some far-later date (since this isn’t exactly gameplay-essential stuff, just general background worldbuilding), but the names will be used in this release, as they serve to inform the name generation for individuals in certain nations, and they’ll also show up in artworks and literature and metaphors and the like later on. I also thought quite a bit about which animals I can realistically vary in appearance and name, so a few common animals aren’t in here because I couldn’t think of how to vary them well enough, whilst a couple of more obscure animals are present precisely because they vary a lot. Here are some animal/plant printouts, with their biome attached:
And then two massive printouts of all the plants/animals generated across a world, so you can get a full idea of the generation systems for these:
As for the bugs, I’ve reached the point where only two things remain for 0.8: sentence generation, and bugfixes. Sentence generation is such an intellectually complex task – although once I have a suitably complicated but usable and modifiable programming framework in place, I’m confident it will actually move quite quickly – that I need to spend a lot of time simply planning it out before I actually start coding it in. In this vein I’ve been scribbling ideas all over paper for the last week, and although it is taking a while, I am zeroing in on a workable method. Much like most things in URR, it will wind up being a balance between some structures and templates, entirely procedural elements, and then a range of variation within these aspcets based on the speaker producing the sentence – a soon-to-be-gigantic function called make_sentence has now been constructed, and so the only remaining task is to actually write the thing (ha!). As a result of this week’s focus on planning, however, on the actual coding front I’ve been working instead on bug fixing, in order to ensure that 0.8 is actually stable once I release it (hopefully at the end of July/start of August). Some of these were found from my own playtesting adventures, but a large number were submitted by the playtesting team I recruited a few months ago (thanks again, all of you!) and with these all fixed, I do actually feel fairly confident that every part of 0.8 (aside from speech/dialects/etc) is finished, bug-free, and ready to release. I can’t rule out the possibility that there are NPC-related problems I simply haven’t anticipated yet, but I haven’t run into any in quite some time, and everyone basically seems to behave correctly (though I’m going to have to revisit NPCs in 0.9, of course, to implement the NPC classes that aren’t being included in the upcoming 0.8). Here’s a run-down:
Fortress guards no longer sometimes fail to move when they should exchange schedules with another guard.
Fortress merchants always appear correctly even if the player enters the grid part-way through their move from their home to their stall.
Fortress merchants are always assigned to the correct open-air stalls.
There cannot be two open-air stalls of the same sort within a single fortress, nor too many merchants for them to all be assigned a stall.
Slaves and servants in upper-class districts absolutely, definitely, without a doubt, always sleep in the correct places on the correct floors no matter how and when the player spawns the mansion and what other movements the player takes.
Drawbridge chains do, actually, appear, when the player looks at them.
Looking at certain doors in torture chambers or dungeons no longer causes the game to crash.
Looking at a small number of bars in torture chambers or dungeons no longer results in a black screen instead of the appropriate generated image.
NPCs are always the correct inverted colour when they pass under trees or a gate.
Handled some weirdness with players stepping through gates and sometimes winding up on the tile next to the gate, and sometimes winding up one gate further away.
Fixed an issue where you could read sections of the encyclopedia that should have been disabled.
Fixed an entirely aesthetic issue with some potential colour patterns on couches.
Resolved strange issue with a small subset of square-based castle generation outcomes that would position guard towers in the wrong orientation.
See you all next week for what might be quite a technical post about sentence generation!