Big gameplay progress this week and a whole ton of worldbuilding stuff too alongside the usual suite of bugs and minor issues resolved, so let’s get right into it.
Firstly here’s the current status of 0.11’s development, where BLUE denotes something finished and GREEN denotes something currently being worked on:
- You can drop items
- You can pick items up
- You can use items (whatever that means for the item in question)
- You can destroy items (very rarely an item might have something hidden inside it…!)
- You can show items (e.g. to someone else)
- Generate the images for all 25+ archetypes of religious relics, and place them in religious buildings
- Update and transform things like religious beliefs, things religions dislike, information about religious histories, holy books, etc
- Enable the player to join and leave a religion
- Far more complex interactions with priests etc
- Develop proper model for “membership” in religions, nations, cults, etc
- Treasure maps spawn in shops just like non-treasure maps do
- Zoomed-out treasure maps correctly show relevant locations
- Zoomed-in treasure maps correctly show relevant locations (far more complex)
- High-value items are, indeed, under the ground where a map points!
- These will become, for now, the game’s primary objective (rather than, as they will be later, one aspect of many)
MORE OPTMIZATIONS / BUG FIXING / POLISHING
- I currently count 48 known bugs / issues – I want this down to 0
- Further speed up map generation
- Further speed up turn-by-turn rendering
- Try to speed up world generation as well?
And now, on to the specifics of this month’s work:
New face variation
We added faces back in 0.8 but I increasingly feel that there’s just not quite enough variation here, especially when you’re talking to lots of people within a given culture and seeing lots of faces which do end up looking a little bit similar. The core issue here is that many of the super-rare facial variations – slave collars, slave brands, facial tattoos, scarification, and so on – are very rare and although those yield a tremendous amount of variation, most of the cultures within the game world don’t have any of these. I therefore wanted to add in a range of new variations that would be appropriate to a broader set of NPCs that the player might be talking to / looking at. The first step has been to bring back something that I previously programmed but then temporarily disabled – eye patches! These can now appear on a range of different NPCs but are mostly likely to appear on soldiers and anyone else associated with combat, but have a very very small chance of appearing on others, as well as on sailors (once they actually appear in-game). They can appear over either eye and I have to say, I like how these look:
Following on from this, however, I’ve also incorporated the possibility for missing eyes without wearing an eye patch. We can all agree that eye patches are the essential fashion accessory for the monocular adventurer, but maybe others just want to wear the missing eye with pride and confidence, rather than using the eyepatch as part of their Euron Greyjoy cosplay. As such, missing eyes are now a possibility, and again, will appear more often for soldiers and sailors and the like than others, but anyone can potentially have one, with the odds being generally higher in the more militaristic or violent nations, and less likely in the more peaceful ones:
The final part of this injury set is to add scars. This was something I thought about implementing back in 0.8 but evidently / presumably never got around to. These are again most common for the same above demographics but also appear for anyone, and I’ve added quite a large range of possible scars and scar locations on the face, the sides of the head, and the neck. I’m really happy with how these look, although they did take a bit of effort to make sure they didn’t clash with other potential facial features – people with extensive scarification cannot have these sorts of scars, for instance, and likewise people with extensive facial tattooing, because the visual style just wound up looking very dodgy when you tried to combine them. Nevertheless those are only small demographics of characters and so most characters will, indeed, be fully able to sport a rather handsome facial scar (or a couple of them) on their procedurally generated mug:
Next I decided we needed to get some more injuries going, so NPCs can now be without a nose…
…or without an ear…
…or if they’re very unfortunate (maybe a surviving soldier after a battle, or someone who has been in a castle’s dungeons for an awfully long time at the mercy of its torturers), a whole range of injuries:
I really like how these look! The nose is going to be extremely rare – far more so than the other injuries – but more likely again on soldiers and sailors and so forth, even if it’ll be extremely rare to come across one of these at all. Nevertheless it’s that very rarity that will of course make them interesting and unusual when the player does come across them, and long-time readers will know how highly I value extremely rare permutations in PCG games for that feeling of noteworthiness on the rare time you stumble across one – things like that are so good for making a particular run or playthrough or world feel distinctive and interesting.
We also now have a new unique permutation – one of those that only one civ in a world will use – for hair instead. I did a bit of experimenting and discovering that varying some of the hair colouration for NPCs actually looks kind of cool, and I really like this distinctive aspect of some rare culture in each game world:
And I also added freckles!
Finally, I implemented earrings. I had tried these before and really hated how they looked, but upon going back a second time I discovered that I was able to make something I actually really liked the look of. For one civilization per generation – and a civ which doesn’t already have something like scarification or facial tattoos attached to it – the earring option will be selected, and they’ll have things like these, which I actually think look really neat and again really help these particular NPCs stand out from the rest:
As is often the case, I was also slightly inspired here by some of the Game of Thrones / ASOIAF universe. As readers of that series will know, the world depicted in the books is rather more “vibrant” than that of the show – we have plenty of characters whose cultures encourages dyed hair, or unusual piercings, or all these sorts of things, and while I largely understand why they removed that from the show (far more interesting as an alien culture to read about than the potentially-silly version it might have created on television), I think it really works here by developing some of these more unusual ways that people in my game world can look. Equally, as I’ve mentioned before one of the key goals of 0.11 is filling in the gaps – giving generated images to everything that doesn’t currently have them, addressing a number of obvious but missing features, things like this – as well as the core gameplay being developed, and faces have long been on my list as something to come back to and improve. Anyway, I’m really happy with how these now look, and it’s nice to see so much more variation in the faces one sees in the world!
Next, a lot of work this week has gone in to the “body status” or “health status” screen and making sure it can display the full range of relevant information. Readers will remember that last time I unveiled the first draft of screen, which looked like this:
This screen has now been converted from a nice-looking demonstration to something which is actually and properly interactive – which is to say, each part is now properly tracked. All this is the prelude to adding in combat later on but also many other systems as we go forward! Here’s the updated version for starters:
One thing you’ll note is that the game now generates the names for diseases! What each one is, how you get it, what it does, and what the cure might be, will all be procedurally generated, but for now it just generates the names. You will not have the status showing up in your status list until you’ve discovered that the disease in question exists, but you can see above what the window might look like once you’ve discovered all the diseases in a given world.
Next up, here are some examples of potential statuses, injuries, and so forth. So here you might have just left a serious battle…
…while here you might be in a pretty messed-up state for, ah, other reasons:
(The colours used for the illnesses are of course generated along with the illness, but will always be logical and sensible for the description of the illness, at least where possible)
I’m very happy with how all of this is looking! I’m not aiming for something as detailed as Dwarf Fortress, but because combat is going to be extremely rare but consequential – a single 1v1 dual should be able to kill the player or at least leave them with serious or permanent injuries – we still need something more detailed than just a health bar. The injury options here do also of course interact with the face generation, which is a nice addition that I confess to being really fond of, and overall I think here there’s a lot of potential for interesting outcomes from fights, from punishments and torture (if you fall foul of those in the game world!), and so on. The various “effects” will likely have some combat effects or other consequence – I have a few obvious thoughts, but these will become clearer with time – while the diseases will as above have generated effects, ways of catching them, and ways of curing them. I think there’s quite a lot of interesting potential stuff to be done here to really flesh out the world and give the player’s decisions and the narrative of the player’s character a lot of weight to it. Again, I’m very inspired here by things like Crusader Kings II, where (even non-player) characters take on such a weight as their histories unfold and the various things they achieve, or the injuries they receive, or the places they go, all build up and up as a life goes on.
I have also in this fortnight done a ton more work on adding item interactions and dynamics work properly in the game. Almost all items now have their proper sets of interactions. This means that you can dig with pickaxes and shovels as before, but you can also do a whole bunch of other stuff (please forgive any minor omissions in these screenshots, as they were still a work in progress while the screenshots were being taken!), to wit:
Pickaxe / Shovel – can be used for digging into any terrain whether inside or outside buildings.
Melee weapons, bows, crossbows, shields, firearms – these can now be equipped, unequipped, and correctly show in the lookup of either the player or an NPC as being on their left side or their right side, but “stowed” or “sheathed” when not active. Walking around with weapons stowed / sheathed will generally be considered acceptable (except, maybe, in pacifist nations?) but it’ll be only a few rare nations (maybe nations with the vigilantism policy, and a couple of others?) that will consider it acceptable to simply be walking through the streets with a weapon out and ready to use.
One last remaining question here is how to handle handedness, and how to display clearly whether the player or any other NPC is right or left handed… any thoughts you have on this, chuck them in the comments!
Armour / clothes – can now be taken off, put on, switched around, and so forth. There’s a certain amount of complexity here which proved slightly tricky because certain sorts of clothing spread over several slots and can make things a little more confusing, as a robe for instance counts as torso and legs, and a greave counts as leg and foot, which means putting a robe on if you have a greave on means putting the robe on your torso and legs, but also taking the greave off your foot as well as off your legs… but I’m pretty sure I’ve ironed out most of these clothing “combo” issues and you can now comfortably put anything on or take anything off. I had been working on the assumption that without clothes the player is entirely unclothed, but I think I’ll find someway to imply one always has something basic on underneath – though in the future it will be a nice detail to fully implement NPCs talking to the player differently based on what they’re wearing, the culture or nature of their clothes, and so forth…
Necklaces – can be put on, taken off, and switched around.
Gunpowder Bags – can now be used to load your wielded firearm with gunpowder.
Arrows / Bolts / Large Bolts / Balls – can be loaded into bows, crossbows, and firearms as appropriate (one at a time), at which point the bow / crossbow / firearm registers as being loaded, and its description also changes to reflect this:
(Later I might add a slight alteration to the image when you have an arrow or bolt nocked, as it would be cool to actually see that!)
Rings – can now be equipped on other hand, correctly un-equip themselves regardless of how you put them on and in what sequence, and the menu shows you whether or not there’s already a ring there which would be replaced.
Crowns – can now be worn just any normal kind of headgear, can be looked at and they correctly appear on the right side of the screen instead of the left.
Booze – can now be drunk! And it will, indeed, make you drunk. There is now a little system in place for determining how much different drinks will, indeed, get one drunk, and for tracking the level at which the player or another NPC is drunk. At the moment being drunk means that you will sometimes walk in the direction 45 degrees off from the one you mean to walk in – so trying to walk west will normally take you one tile west, but sometimes one tile north-west or one tile south-west – and also in the future will affect other things as well (e.g. the ability to fight, or perhaps to read books, and so on).
The amount of alcohol in the bottle also goes down with each use! So here I am doing a lot of drinking…
…and consequently getting some of the initial alcoholic effects (trying to walk directly left to right):
(Also you might notice it doesn’t add another message each time you drink, as currently the message system doesn’t repeat old messages even if you’re doing the same thing twice. The message window is something I’m very keen to improve in this release in several ways, so we’ll be coming back to this later)
As for what the use of drinking might be (keeping in mind that alcohol like many other items are primarily trading goods), I can see that some characters would be only inclined to speak with you if you get drunk with them, for instance, or perhaps there might sometimes generate a religion that believes being drunk / high is akin to holiness, or it could be a way to perhaps be less noticed by some NPCs… we’ll see! I will also in the future enable a way for drunkenness to slur speech, too.
Lastly, two item types (aside from trade goods whose only use is as trade goods, such as spices or ambergris or pottery goods and the like) cannot yet be fully used, but will be soon. Those are:
Book – cannot yet be read, but book content – which is all going to be meaningful, clue-containing content, rather than only Markov chain weirdness! – is coming soon.
Chest – the code for opening a chest with the right key is already there, but there are not currently any keys to be found in the game world. We’ll be coming back to this one before the 0.11 release, though!
The observant reader will also note that I have changed the text for when you don’t have something in a slot to dark red instead of grey so that it can properly stand out from when you have an item that would use grey text – i.e. something made from steel or iron, and so forth – in a given slot. This is much clearer (and enables you to work out the order in which I took the above screenshots!) and gives a far better sense of valid and invalid slots for something to be worn, wielded, equipped, and so on. Overall it’s great seeing this degree of item interaction coming into being per se, while it also (as above) sets the foundations for all kinds of stuff coming in the near future as well!
Reworked pantheon altars
Next I’ve done some more religion work. One of the possible types of religion is known in-game as the “pantheon”. It selects a set of things it might be a pantheon of gods “around” – such as metals, or elements, for example – and then generates between four and seven gods, each of whom represents one things from that set (so you might have a god of copper, a god of silver, a god of mercury, and so forth). This is a pretty rare type and generally only shows up no more than once in a given world, but I recently came across one of their religious buildings when I was testing something else and found myself, let us say, less them impressed by the graphical quality of their altar:
These are, unfortunately, ultimately just of very low and rough graphical quality compared to examples from the various altar archetypes the player might find (clockwise from top left, “animal”, “lovecraftian”, “demonic”, “normal”)…
…and as such, needed improving. I decided on a model that still keeps the various colours representing the various gods in one of these pantheons, but moving away from this weird sort of metal (?) frame and instead towards something a lot more organic, and something which gives the game some proper potential to seriously vary what we’re actually seeing in these altars. I decided that each would have a set of pillars and that they would have patterns, designs, and holes which are randomly selected, and the sequence of the pillars would be likewise randomly chosen. Here, therefore, are two examples of the new sorts of pantheon altars the player can now find in the game:
I’m very happy with how these now look. They meet the higher image quality I’m now going for in the game, and I think they really get the point of the pantheon god across quite a bit more fully than the previous type. These were fun are now fully integrated into the game’s code and can be found in the appropriate religious buildings, and these god types thus no longer fall, er, rather embarrassingly short of the aesthetic standards of their fellow deities.
Indoor bookmarking and fast travel
Following on from all the bookmark work in the 0.10 release, you can now bookmark and fast travel to and from locations inside buildings. This took a fair bit of extra brain work, but not a ridiculous amount, and actually once I got on with implementing it the whole thing didn’t prove to be anything like as complicated or demanding as I had first anticipated. The game now simply distinguishes between outdoor and indoor bookmarks, and transports the player to the appropriate indoor location when they address a bookmark. It also notes on the bookmarks list which are indoors and outdoors to help the player remember what they’ve placed, especially as I suspect in the longer term that players will wind up placing quite a number of bookmarks across a game world. It’s also just another way to make things smoother and slicker, which is very important both in a game with a huge world, and a game where you’re going to be travelling around a lot to hunt things down. So, here’s the player placing an indoor bookmark, and then the player warping straight to that indoor bookmark after some travel elsewhere:
There isn’t much to say here beyond the above, but this is a really huge development actually! Again, fast travel will be sped up, the player’s general navigation of the game world will be a lot faster and a lot smoother once again, and more and more of the tools the player will need to keep track of everything are being implemented. I’m really pleased to see this working so smoothly and I think this, now along with outdoor fast travel, will be a really nice addition to the forthcoming release.
New generated religious relics
Lastly we have three more types of procedurally generated religious relic! As longer-term readers will know, each religion selects a relic archetype and then each relic for that religion is procedurally generated with a name, a history, all that kind of stuff. Again I’m really happy with each of these archetypes.
The skulls have names like “The Graven Skull of [Name]” or “The Bleached Head of [Name]” – where name of course might vary massively based on the name archetype of the civilization to which the skull belongs, which is a totally independent variable – and has a cool one 1.8 billion possible permutations. The three I’ve shown here might look very similar, but a lot of the differences are quite subtle changes in skull shape. Cycling through them in-game makes the distinctions far more clear, but aside from the obvious patterns on the foreheads you would want to look to the teeth, the nose, the eyes and so forth to see the variations. The middle section, which I’m calling the holy rocks, have names like “The Mottled Stone of [Name]” or “The Marbled Rock of [Name]” – with the same name detail as the previous point – and these have around twenty thousand permutations. Far fewer variants than the skulls but I’m still very happy with how these look, and these will generally apply to pantheon-based gods (the skulls are for demonic-type gods) where the colour of the pattern will be the representative colour of one of the gods within that pantheon. Lastly, the crystals – “The Purple Crystal of [Name]” or “The Orange Quartz of [Name]” and so forth – have around a million possible variations.
Very soon it will, finally, be time to actually integrate the relics into the game world! This will mean that each religion will be selecting a relic archetype it uses – some archetypes can be in any type of religion, and some are more specific – and then taking stock of all the possible places a relic might appear, e.g. in a standard religious building, in a cathedral (the seat of that religion’s power), in a monastery, and once or twice perhaps in private hands or buried in treasure or lost in some distant part of the world, and then placing as many relics as it can in those various locations. Some relic archetypes will have stricter limits on how many can be created than others just due to the varieties possible within the generator, while others will have looser limits and one might certainly see as many as a couple dozen generating for that religion, if the religion has “enough” places to actually house those relics (i.e. I think we won’t be going for more than one relic per religious building, for instance, although maybe a cathedral can have two or more?). We’ll be getting there very soon, and after all this work, I’m mightily excited about actually seeing them in the game. This probably won’t be the next update, but could well be the one after that!
Bugs and the like
- Waiting for a significant period of in-game time now correctly renders the entire local map on completion of the waiting, so that the visuals don’t go all strange if the time has changed from day to dusk, dusk to night, etc.
- Trying to travel from inside a castle’s courtyard no longer produces some rather exotic errors under particular circumstances, i.e. if the castle is next to a city gate and you attempt to leave the city gate while in the middle of the castle’s courtyard which doesn’t have access to that city gate…
- Fixed a very rare crash bug where a religious building supposed to spawn with a middle floor between its ground floor (where the faithful hang out) and its upper floor (where the priest lives, where storage rooms are, etc) couldn’t create a correct middle floor to spawn.
- Prayer mats are no longer aesthetically repugnant (yet another hangover Python 2 -> Python 3 conversion issue) and now once more look, actually, pretty gorgeous.
- The positioning of equipment item graphics in the item lookup are now more correctly centered in the middle of the window, rather than sometimes hanging out right at the bottom.
- Fixed a rare crash bug looking at a particular religion in the encyclopedia which couldn’t correctly generate its relevant information to present to the player.
- Entering a mint no longer sometimes causes a crash.
- When the game is trying to place the player on a new map grid they’ve just entered, and the edge(s) of a map grid are water and thus the game needs to find somewhere else to put the player, it can no longer decide to place you on top of a roof.
- Empty canteens no longer sometimes show as having water, but 0 units of water, inside them (they instead now just show as empty, as they should).
- Looking at the world map no longer hides information about how you’re viewing the map (e.g. the terrain view, the territory view, etc) when your cursor drifts onto an unexplored section of the map. It also no longer hides the information about how yo control the map when, again, you are looking at unexplored areas.
- Vaults in mints all now correctly have ingots in them, which are flagged correctly as not belonging to the player.
- Using the wait function no longer unnecessarily spawns, moves, and despawns generic NPCs when used in a city or a town or a fortress – this was a ton of unnecessary computational load, and it has sped up the wait function by around 60-70% when used in settlements!
- Fixed a crash bug where walking manually from one grid over to the next grid, and then going instantly back onto the previous map grid in a small subset of particular ways, would cause the game to implode.
- Corrected a minor graphical mistake when you look at flags (as in, actual physical flags on flagpoles, not looking at the flag in the encyclopedia for instance).
- Fixed an extremely rare crash bug where a rare selection of civilizations using animal names in their person naming conventions were, in extremely uncommon scenarios, unable to figure out an appropriate animal to use.
- Corrected a potential error in generating one of the visuals for the world generation screen images!
- Embassies are no longer sometimes mysteriously empty.
Join me in a couple of weeks for another update! 🙂