Hello everyone, and welcome back :). These last few weeks have been very productive on the coding front, and I’m pretty much ready now to show off major developments in quest generation and clue generation things of this sort. However, since this is a major development I really want to get it some proper attention when it comes out, and so I do need a another week or two to really polish it and make sure the blog post (as well as, you know, the feature!) is as strong as I can get it. This need has also been intensified by the fact I’m working on a major academic task at the moment (a 30,000 word report on a research project) with a deadline a weekend from now, and that just has been inevitably demanding more of my attention than usual. So, this week we will be exploring everything else I’ve been working on during these last few weeks, and then the next post in three weeks’ time will be a big unveiling of a huge amount of core gameplay stuff. I’m nevertheless really happy with this week’s additions, which improve a large number of graphics, add some cool new items which both look funky and will have important gameplay use, add expansion and variety to a number of generators, and a couple other things as well. These have been a lot of fun to work on, serve to fill in a lot of gaps and add a lot of new detail, and have also done me a favour by giving my brain regular breaks from the wildly intellectually-demanding task of actually coding clue and quest generation. That stuff is coming along wonderfully, but let’s just say this – there’s a reason it has taken 13 years of game development and learning to code to actually get it to it.
But yes, time to get onto this week’s features now. I really hope you will like this update, and so without further do, let’s get started:
Brooches
First off, we have a rather lovely new jewellery item. For the longest while the two jewellery items in the game have been necklaces and rings. Necklaces would display things like social rank in a very hierarchic civilization, or just be artistic and pleasant and interesting in their own right. Rings could display a range of things, such as religious symbols, national flags, military ranks, and so on. Both of these are looking good right now, especially the necklaces, and while the rings are pretty decent at the moment I would – see below for more on this discussion – probably include them in the group of things which need just a little bit more polish at some point to bring them in line with the rest of the graphics. I have been working on medals, too, as a rather cool new addition, which will of course be procedurally generated and each connected to an actual historical military campaign, or a particular act in service to the army, etc… but whilst working on those I also had the idea for more decorative things which could be pinned on clothing as well.
Hence – the brooch! These now generate in many shapes, have colours appropriate to the nation that created them, and three different categories of patterns, with sedentary, nomadic, and ancient civilizations (the soon-to-be-redone tribal civs) having very different aesthetics for their broaches. The first are based on large blocks of colour, the second are based on thin lines of colour – which is the general nomadic aesthetic in the game – and the third are based on labyrinth or maze-like patterns. These are unique items in terms of how they are used, as they don’t go directly on the character, but rather get attached to a torso or upper-body item of clothing, and stay on that item of clothing. When that clothing is removed or moved around, they are also taken off in turn. Here’s one example from each of the three civilization categories of what approach might look like, along with some symbols in the middle of the brooch (in these cases they represent “finch”, “throne”, “eleven”, and “sarcophagus”), which are part of the massive database of visual symbols (hundreds) I’ll actually be unveiling in more detail in the next update…
I must say I think these are rather lovely! I think these give a good sense of some of the different aesthetics and visuals we can get on brooches now. Some brooches will not have a special symbol in the middle, and one might find those on middle-class NPCs or those who are poorer but of a rather more aspirational bent, but the elite brooches will always have one design – and sometimes two, either vertically or horizontally – in the middle. When the player purchases a “normal” brooch there will also be an option to have something specific engraved in the middle to make it a more “elite” brooch (at a higher cost), so you’ll be able to create a specific pattern that you think you might need to, for example, show someone, to get through some kind of checkpoint, demonstrate your allegiance to some group or other, and so on. I can’t quite work out right now how many different potential brooches there are, but the number would certainly spin into the high hundreds of millions when we take account of different colours, different shapes, each which has almost a dozen outside or exterior patterns, then the massive database – again, more on this soon – of symbols which could go in the middle. NPCs in the near future (working on conversations again at the moment) will comment on brooches just like any other item you might have showing which they particularly like or dislike. I think these – and medals once those are finished – will be another good addition both to the richness of the game world, but also to things which can offer clues, can signal particular allegiances or factions, and things of this sort. As above, perhaps the only way to open a locked door would be to wear a brooch with a particular symbol on, and someone inside looks out their window, sees that symbol, and lets you in…
As for putting them on, you would use them like any other item, and then when you look at the item of torso where you’ve pinned them on, you will see a very small character in the appropriate colour showing that they’re there! Here are some examples:
So yes – very happy with how these have come together!
New gods
Next this week, I also went back and added – yes, yet more – detail to the god generation. To begin with, god statues with particular words in them will sometimes have a slightly different looking base, such as a god whose name might contain certain oceanic words having a bunch of waves as the foundation of their statue. There are a bunch of variations here, and although I’m showing one example – the ocean one -here, there are other rare permutations which can also appear. Similarly, I also added a rare permutation for a statue to hold a burning stuff in one hand, with a coloured fire. Only one religion in any given generatd world will select the fire staff for their god to be holding in their “classic” depiction, but I liked the unexpected introduction of colour into the white and grey aesthetic that the statues in the game have, and I think this is a cool little variation to very, very, rarely appear.
Alongside these I have also added several new permutations of heads for animal-based gods, including snails and worms. These look absolutely fantastic, and I confess to laughing out loud at with delight at how amusing they were once I finished them, so I’m actually not going to show them off here, and will instead leave them to be found in the game world :). As we might expect though, things like altars, prayers, religious details, and indeed religious masks, have also all been updated to attempt to accommodate these lovely new potential animal gods. There’s still one more substantial edition I want to add to the god generator in the future, but I would genuinely call this at least 95% finished now. The level of variety is really huge now, and has a lot of those things I always like to see in a good procedural generator – extremely unlikely permutations, but enough of those that the player is likely to see at least one or two on each playthrough. Those things then really leap out at you, helping to prevent everything just becoming a kind of generic mush of generated pieces.
Anyway – that’s enough on that for now.
Furniture
Next this week, I’ve been continuing polishing and upgrading the few remaining in game graphics which are not really up to the standard and the calibre of the rest of the game. Readers will remember a whole bunch of these over the last year or so, but in anticipation of the 0.11 release – having, for the first time, a (basic) win condition (!!!) – I find it very important that there are no gaps, and that there should be nothing which doesn’t present the strongest possible “pitch”, as it were, either to the new player or to the returning player. Even if even 0.11 will be just the first step on a grander journey, it’s very important to me that this release comes with a lot of polish – and part of this means dealing with some of the old and outdated graphics which simply aren’t good enough anymore. A really good example of this can be found in beds. Tables and chairs, although they aren’t the absolutely finest artwork the game has, are perfectly okay for the time being, even if I probably will return to them at some point and upgrade them with new image generators that are more in line with the quality of the rest of the game world. Beds, however, have been pretty hideous for a while. Here’s an example:
I think we can agree that even your average post-medieval peasant would feel pretty offended if forced to sleep on that thing – made even worse by the fact that it barely appears to be three-dimensional, the pillows are very bizarre, and the whole thing is just an incredibly shocking piece of artwork. This is now by far the earliest image generator left in the game which hasn’t been replaced or superseded, and I have to say, it really shows. This just had to be fixed, so one of the things I’ve done in the last few weeks has created an entirely new generator for the in-game beds, as well as having that generator vary significantly across feudal, nomadic, and what will soon be called ancient nations (currently “tribal”).
So, for feudal nations, here’s two examples of what a lower-class or basic bed might look like:
These are both, of course, for a civilization with the octagon shape or aesthetic preference. Even though these are the most basic type, I think these are already just a universe ahead of the old beds in terms of how they look, which is to say they look like actual real objects that an actual real person would sleep in, rather than some kind of torture contraption or piece of strange modern art. Naturally though, these also come in different quality levels depending on where the bed is found, so a middle-class bed will then gain a bit of decoration on its bottom board, as well as colours appropriate to the nation it’s found in for the duvet and pillows. Here, then, is a very snazzy example from a nation with the square static preference:
I like how these look! The pattern on the duvet of course also varies based on the aesthetic preference of that state. Then, an upper-class or high-quality bed will also have some designs or patterns on the mattress, as well as more detailed an intricate carvings on the head on the footboard or headboard. Here’s an example of that, in this case for a nation which really likes its diamonds, which again is reflected in the shape of the bed an the overall pattern on the duvet:
And there we have the new beds! At the time of writing I’ve therefore now updated and upgraded all of the appropriate contexts throughout the game world to ensure that these new beds are always the things which are spawning. They are generally double beds, but sometimes a single bed will spawn as well. As with everything else, it’s even possible that there might be something of consequence in the patterns or designs shown on the duvet! If someone “rests below the three suns”, for example, then it should be pretty clear what bed you are looking for. I anticipate that being a fairly rare clue type – maybe one which only generates in a noble house vs noble house feud within a particular nation – but it’s always good to just have another source of information which can be potentially integrated into the game’s riddle generation (which continues apace, and I’ll have a massive amount more to say on in the next update!). Oh, and the wood colour of the bed is also selected at random based on appropriate woods from the geographical or climate area in which the bed is found.
Next, I wanted to make nomadic beds quite different. One thing I plan to do – not for 0.11 – is to actually do away completely with nomadic fortresses and instead make nomadic settlements genuinely nomadic, which is to say they will have no fixed location and will roam around a nomadic territory, setting up large agglomerations of tents, camps, yurts, and things of this sort for some period, before then changing location again. As part of this, large wooden beds are not going to be suitable of course, and I therefore did some research on nomadic styles of sleeping, and settled on the idea of a sleeping mat. Here then, again, is a lower quality example, where the stripes will be an example of the colours from that nomadic nation’s flag…
…and then he is a medium-quality sleeping mat, in this case for two people, which has the same stripes in the civilization-appropriate colour, but also a couple of patterns, which would normally be the aesthetic shape preference of that nation – so in this case triangles – but as with the high-quality beds for feudal nations, these could also have particular things for particular sleeping mats whose owners are of particular importance in some way:
This then brings us onto high quality mats, where the entire thing is dyed in the colours of that civilization, and these will have three symbols rather than just two – in the below case for a nomadic civilization who really like hexagons a very large amount. This isn’t the most complex image generator in the game, but I actually really like how they’ve come out. They are very distinct from feudal – and as we’ll see below, also ancient – beds, I think thematically they fit very well, and even if for now these are indeed spawning in nomadic buildings, once we shift nomad civilizations to that other form I just described, these should fit in much more nicely there.
This then brings us to ancient civilizations. Right now these are what the game calls tribal civilizations, who have a single encampment, and don’t speak the common tongue of the game world (i.e., er, English). In the not-too-distant future, however, I intend to rename these two ancient civilizations, give them much more of a complete state, and imagine them as something more like a city state which continues unabated whilst the rest of the world has developed without its direct presence. They will therefore not have the level of technology of the sedentary post-mediaeval sedentary nations, but they will be much beyond the hunter-gatherer or tribal social and economic arrangements which these civilizations currently have. A defining factor of these both in gameplay and thematic terms will be that they don’t speak the default language, and thus each procedurally generated language that each of these states speaks will need to be learned in order to make sense of their writings, what their people have to say, and so on.
As such, I wanted their beds to be quite distinct, but I couldn’t think of a third overall bed type which would really make them stand out. Instead then, I decided to iterate on the sedentary or feudal beds, but instead to change a number of factors. The first of these is in the shape of the headboard and footboard – where the feudal states have a headboard on legs where the shape aesthetic aspect is shown through addition, as it were, here the shape aspects are shown by subtraction, and the bed is not on legs – it’s solely on the ground. The particular aesthetic preference for the ancient nation in question will then be reflected in these shapes. In turn, I also decided to change the beds material to being made out of stone rather made out of wood. I think these look nicely distinct! Here then is an example of a lower-class or basic ancient bed:
And here’s a mid quality one, this time for what I’m calling the “chevron” aesthetic style for an ancient civilization, well you’ll notice the pattern is much bigger than it would be on the other sorts of beds we took a look at, and that again the footboard gains some etchings and carvings:
For the high quality one, I couldn’t find a way to get the specific symbols or signals to appear on this one and look good how I wanted (like the three suns example above, so instead we have a pattern, as well as more detailed engravings on the footboard:
Finally though, it was clear that even the lowest quality beds (whether feudal or ancient) were a bit too snazzy for, for instance, someone living in a slum, or a slave in a slave quarters, so I’ve also added a generator for a straw mattress, which is for people living in these nastier circumstances get instead. Here’s an example of how this looks:
It’s pretty basic, but on the other hand there are around 5,120,000,000 possible straw mattresses, so hopefully the degree of aesthetic variation makes these folks feel slightly better about their lot.
So there we go, beds are now improved and polished! This means pretty much every graphic in the game has been updated and polished compared to its earlier versions, and it’s now only really chairs and tables which still stand out as having old graphics rather new graphics – and as above, these still look perfectly OK, even if they aren’t quite as sharp and rich as I’d like.
I think I will be coming back to them in the future to make them a bit more interesting and more vivid, and also add more variation across cultures, and add the possibilities for clues and information to be hidden in the craftsmanship of chairs or tables, but for now, I think this might be the last old graphic being updated to new graphic task which I have for the 0.11 release!
Don’t some of these beds look comfy though?
Mansions and signs
Finally for this week, the “great naming of everything in the game world I can possibly name” continues, and now all mansions / manors in upper class districts have their own names, and these names show up on signs by their doors. These names were a lot of fun to generate and draw on a number of things such the policies of the nation and various other things as well. Here are a bunch of examples from a wide range of different civs…
…and here are some examples in-game:
Again, as with all other names, NPCs will be able to refer to these, books will refer to these, and so on – the usual. It’ll be fun to see these in conversation and elsewhere! At some point I’ll also go a step further, giving each room inside a mansion its own name (and maybe in other more elite buildings too), but we aren’t quite there yet. As regular readers will know I’ve been focusing a great deal on religions rather than nations – the two big factions / actors interacting in this game world – but I will be coming back to nations in the future. For now, though, this is just a tiny bit of little added detail, which’ll become one part of the much larger picture later on.
What next?
Phew! I’m very pleased with these additions, but the reader might be wondering – what about clues and quests? Well, friends, I’ve been working hard on those for months, and finally I have enough to show off – so that’ll be coming next time! As part of this I’ve realised recently that some of the updates in the coming months (and indeed year or two) are likely going to be updates where I can’t report having completely finished some new features or new aspect in that blog post, because some of these are so damned complex. This is going to represent a bit of a shift here, as I’ll be increasingly describing changes and developments, or maybe getting a third of a major feature done in a three-week period, rather than having finished features to report. This week’s blog post will be the last set of finish features for 0.10.3, but it might be the last for at least a couple of entries. So yes: in the next post I will be taking a look at the massive expansion of clue generation I’ve been doing in these last few weeks – it’s wildly exciting stuff, I think you’re going to love it. After that we’re probably going to have a another major bug-fixing post, as there’s a lot still on that list which I’d like to get dealt with. After those, will probably be alternating between posts focused on finishing off or polishing existing features – such as making sure every bed spawns correctly, or making sure that the “wait” function always works, or making sure that all of the new religions can correctly generate their requests and rewards, etc. There’s a lot of things of this sort, somewhere between “finishing a feature” and “play testing”, which need doing, as well as continuing development of the questline generator. It’s scary, but exciting -we’re actually getting there! I’ll also be saying more soon about the huge updating I’m doing on the conversation system, though I’m still not quite sure whether that will make it into 0.11 or not.
Regardless though – next time, it’s notes and clues, and these are looking pretty extraordinary so far. Thank you all so much for reading, and I’ll see you all In three week’s time! As ever, please do share this around places where you think it might be enjoyed by people who aren’t familiar with this devlog, and I always want to hear all comments and thoughts and feedback in the comments section below, if you are so amenable :). It’s also worth noting that URR has both a Facebook page and a subreddit, which are the best ways to be immediately told when an update has gone live.
Anyway, that’s enough from me – thank you all so much as ever for reading, and I’ll see you all in three weeks (weekend of 2nd/3rd of November) for the procedural generation of cryptic mysteries…
Amazing work yet again! I love the bed designs, they really are miles ahead of the old ones.
Also, despite working daily with python for the last 6 or so years, i’m consistently surprised by the amount of things you’re doing with it. Does it take a lot of time to optimize things to make them run smooth? Have you had any features that just tanked performance for whaterver reason? Or are the most important runtime things handled mostly in the tcod layer.
In any case, fantastic work! I read you’re touching up the conversations with the NPCs. Might I ask how do you keep track of which NPCs know what? Is it based on chance and the NPCs position in the hierarchy or something similar? Or do they generate with some knowledge embedded in their minds. You may have talkd about that at some point back in time but I can’t recall.
Anyway, can’t wait to read bout the clues! I’ve been waiting to dig my teeth into them for a while.
Keep up the great work!
Thanks so much, Nick! Whew, that’s a big question. For graphics, I’m very good now at writing each generator in a highly optimised way. Many of them could be made a fraction faster, and I will actually do that before a Steam release in the future, but we’re talking 1/20th of a second faster, things of this sort – I’ll fix it, but later.
The big performance killers are world generation, printing the player’s vision each turn, and handling large numbers of NPCs. The 2nd and 3rd I’ve improved a lot over the years (but have more ideas on how to improve further in the future), while the 1st is something I have on the list for the 0.11 release, probably. Generating each individual map grid can also be sped up a ton – so much of this code is so old, and creaking. That’s on the list as well. I have to be in a very specific mood to tackle things like that, though, and it’s a mood that only rarely comes…
Re: NPC knowledge, right now they generate with all relevant knowledge based on rank, culture, religion, etc. But I’m overhauling so much of the NPC stuff, this may well change!
And thanks again, I really do appreciate the feedback 🙂
Great new generators as always, both in terms of objects and names. The brooches (which definitely need to come back into fashion IRL) will be especially useful as sort of “badges” (along with medals) for signifying a character’s allegiance or status to NPCs. And some of those beds look quite comfy (the straw mattresses not so much, but I mean that in a good way).
I will look forward to some amusing new animal-headed god statues in the game, and also to hearing more about the clue system and how to win the game. And you mentioned in the above comment a possible Steam release? That would be a great way to garner some more visibility for URR in early access.
Thanks so much crowbar! I am glad you approve :). Yeah, re: Steam, my thinking is that I basically get 3 big “moments” – a 1.0 release, appearing on Steam (to wishlist), and launching on Steam. 0.11 will, I hope, be the biggest moment so far, but it’s still a little way off, and I don’t think I want to combine it with any of these other moments. I think 1.0 will be the first of the bunch to come, but we’ll see – but for now, I’m not interested in going the early access route on Steam. Game dev time is finite, and I need to (primarily) spend it on the game, especially as I’ve increasingly realised a lot of the code is not Steam-friendly. That’s a thing to sort out for another day, though, but it’ll have to come into play at some point…
love everything shown here but am kind of worried about the replacement of tribal societies to ancient civilizations, in that i think it kind of exacerbates an issue the game’s generated worlds have suffered from for a bit in that they feel a little incongruent. to a certain extent (and in my opinion an extent which u can really just suspend your disbelief for) the countries in the game can feel like they were plopped out of thin air and no matter how geographically close they may be to one another developed in their own vacuums rather than being apart of an intertwining whole, one connected world which has been interacting with itself for an untold amount of time. there’s a certain throughline you can see in our world’s cultures and societies, between say, england and greece and russia and iran there’s a continuity of language, lineage, customs, religion, etc, bc theyve all inhabited the same continuous landmass and have exchanged with and influenced one another as a result. it is obviously impossible to simulate that spiraling history here, and i feel like the current simulation as is is complicated, interesting and multifaceted enough to where you can suspend your disbelief and imagine that continuous history, but i feel like little enclaves of ancient history, completely disconnected from the world around them, would make that feeling a little harder to ignore. i still think the idea of ancients is really cool, and im in love with the project, but i think the way its presented needs to be reframed maybe a little bit
Nila, thanks so much for this comment and feedback. I always appreciate every comment, but I really do appreciate the critiques, as well – this kind of feedback is so useful, and it’s great to get me thinking about potential issues or framings that I hadn’t considered. Firstly, you’re right about the nations feeling like they plopped out of nowhere. The game doesn’t currently generate history – that’s coming soon, and that should help a great deal, and it’ll also be adding things like battlefields from past conflicts, long-running feuds between nations, NPCs discussing states they like or hate, and so on – but that’s all to come. I also hear what you say about commonalities between cultures, though in that regard, I’ve made an active choice to avoid things like that; I agree it’s not 100% realistic, but I think it’s more interesting to emphasise stark cultural differences and push towards the most interesting and unusual nations possible.
As for tribal / ancient civilizations… yeah, that’s an interesting point. Let me think on it some more. I still don’t feel “ancient” quite gets what I’m looking for, but “tribal” isn’t quite right for what I have planned, “uncontacted” is a bit banal… yeah, let me ponder!