Hello everyone! Welcome back. Last time I unveiled a huge amount of the key features that’ll be appearing in 0.11 and the releases to follow, and so now we’re coming back down to earth a little bit to refocus back on the more everyday stuff. I’ve decided to try to get 0.10.3 released before the end of 2024, since almost the entirety of that version is there, and it’s really just now in the polishing and refining stages. It’ll be a close-run thing, whether I manage it or not, but the most important work still to be done on that release is almost all in the bug-fixing line of work. As such, this week’s entry reflects all the bugs I’ve dealt with in the past three weeks – representing well over 50% of the bugs I have on record as needing resolution before I can release 0.10.3 – interspersed with some screenshots and, hopefully, occasionally amusing commentary on said bugs. The next update, on December 15th, should be another major bug-fixing update, as well as the release of 0.10.3, if all goes well. Then after that it’ll be the new year, and the push for 0.11’s release in 2025. Very exciting stuff :).
But for now, without further ado, here is a vast list of stuff I’ve fixed, sorted, adjusted, resolved, or otherwise dealt with, in the last three weeks. Hope you all enjoy!
Bug, tweaks, and changes:
- Ensured that “standard”-type religions almost never select a colour that really doesn’t make sense in light of their name, e.g. a forest religion that doesn’t have green or brown, an ice religion which has a bright red coloration, things of this sort. They’ll only select a slightly strange colour as a last resort if there are no logical colours left from the full available set, but by my count this should be 1/10 world generations, if not even lower (and even then, only one religion).
- Barrels (e.g. of ale, food, etc – these are just generic background building features) are now properly shaded, and select random wood colours instead of all using the same one.
- Fixed a non-crash error that happened when you tried to read a book.
- Area names can no longer spill over the edge of the world map viewer.
- You can also now use ‘P’ to look at whatever knowledge you have about the policies of the land you’re currently in while you are travelling (rather than just while you are on foot – this should be useful while on the move!).
- Stopped universities in theocracies generating with god-related names that didn’t actually have anything to do with the relevant domestic god (such blasphemy!).
- You can also access the Guidebook (‘?’) while travelling as well! You cannot yet use the Encyclopedia, though, as “E” here is a tricky dual character both for a numpad on the left of the keyboard (QWE, ASD, ZXC) and the encyclopedia. Not sure what the solution here is yet (change it to “N”, perhaps?).
- Loading a firearm with gunpowder and a ball, selecting the “fire” option, and then cancelling once you’re using the crosshair but before you actually fire, no longer leads to a crash bug if you’re indoors.
- A university spawning in a civilization with a cultist religious system no longer struggles to work out how many rooms there should be in the hall of worship, and crashes the game as a result.
- The chests for religions with the pantheon type (e.g. “The Masters of the Four Elements”) now look interesting and cool, rather than bland and rubbish.
- Sphinx-houses (what ARE these??) can no longer accidentally generate on, or in, a chasm within an ice field.
- Faces in wanted posters no longer sometimes generate with a hideous second pair of eyes in their foreheads.
- Loading one save, and then another, no longer leads to a very strange visual / graphic bug involving the field of view (still not clear on the cause, but it’s fixed, regardless).
- Although instruments are yet to be implemented, calling the “instrumenttype” trait on a placeholder instrument doesn’t lead to a crash (and thus won’t further down the line, either).
- All religious buildings will now spawn statues of their gods no matter what, removing rare circumstances in which the game selected a range of generation options where statues were not actually possible. I didn’t go to all that effort of creating generators for tens of millions of bizarre gods for the player not to see them!
- The symbols on religious chests are now actually the symbols for the religion in question, rather than a generic test symbol that I… left in… the game… and definitely, definitely, didn’t forget about for over a year… because that would be absurd.
- Stopped university generation sometimes crashing altogether if the game can’t figure out a location to place a nice relaxing bench (something so small, yet, so critical!).
- Benches can also no longer spawn in water.
- Scorpion-headed gods now always wear appropriate clothes in their statue / other depictions, i.e. clothes that could accommodate their tail.
- Heptagon-shaped beds no longer cause any issues.
- Fixed a visual bug with fountain image generation being, very rarely, asymmetrical.
- All beds are now – I think – generating correctly.
- Fixed a cryptic and long-running bug where the game incorrectly assigned the gender of gods for particular words in their names (e.g. “He” for “Queen” or “She” for “Master” or whatever).
- Religious relics now sit atop marble plinths, instead of atop ordinarily tables.
- All fortresses now generate with desert tombs beneath them – though right now, in name only. Although nomadic civilizations will soon become truly nomadic, the desert tombs will remain, except deeply hidden beneath the shifting sands, and uncoverable only through good detective work…
- The game no longer crashes if you try to sidestep off the edge of the world (as opposed to normal stepping, which hasn’t been a crash in a long time).
- Flagpoles no longer look terrible when you look at them (a very rare image, and one from the “old days” that had snuck through the polishing process, until now!).
- A small number of icons in the huge database I discussed last week no longer sometimes produce slight errors when being printed.
- The descriptions of tree branches / leaves are now always accurate for different kinds of trees (deciduous and evergreen) and in winter / other seasons.
- The holy books of animal-headed gods now have some interesting new names which can generate in their pool – as do those gods themselves, actually.
- The flaming staff has now been correctly added to the potential set of things gods can spawn holding.
- Fog and other weather conditions no longer cause mountains to look slightly strange when you’re climbing them (by failing to show the tile you’re holding onto as you climb). As an aside, climbing and swimming / diving are interesting things to work on full mechanics for at a later date, but for now, I’m just leaving the basics in.
- Plants can no longer spawn on terrain they shouldn’t be able to spawn on, e.g. bricks, abyss, lava, whatever. This was a rare bug, but it’s fixed now.
- Made sure you can’t advance from the policy selection screen without actually pressing “Enter” to confirm your selections.
- Made sure that cathedrals can always spawn statues and chests no matter their generative inputs.
- Stopped – for now – roads going over chasms, as the code for enabling you to walk on a bridge, and underneath that bridge, does not yet exist and will be actually quite a substantial task (bridges over water are not, technically, over water in the game’s code – they just replace it – but the same trick couldn’t be done for a chasm 100ft below which you can safely walk in).
- The religious information screens for multi-god religions, much like the chests, now look funky and district.
- Fixed a crash bug where showing certain kinds of books would lead to the game being unable to scan what sort of book it was.
- Fixed a bug where you sometimes couldn’t look at yourself, what you’re wearing, etc.
- Oceanic-headed gods (octopus, squid, etc) can now actually generate rather than being unintentionally impossible to get in the appropriate generator.
- All books now appear unopened by default (there is code so that the player might find an already opened book somewhere, but here we’re talking about shops) and have clasps of a number and a metal appropriate to their quality.
- Fixed a crash bug in world generation which couldn’t produce logical monastery names for snail-headed or worm-headed gods.
- Merchants now have sensible things to say when you try to trade with them at inopportune times, e.g. while they are out for a walk, while they’re at home, when they have nothing in stock, etc.
- Fixed a problem with some of the more unusual face types – brazen heads, statues, heads-on-pikes, wanted posters, and so on – sometimes not being able to generate themselves correctly (because they weren’t attached to an actual body, and thus couldn’t work out some important parts of how they were supposed to actually look).
- Added a set of “emergency books” for hunter-gatherer civilizations to prevent crashes when asked about books, which later will be totally replaced by many-part epics related on stone tablets.
- Straw mattresses no longer regenerate some of their finer details each time you look at them anew.
- Very similar animal-head gods now no longer generate (e.g. you can’t get an octopus-headed god and a squid-headed god in the same world) – this is important for making various others things unambiguous in each world, like masks and so on.
- Universities now correctly appear as white on the world map in the territory view, like all other settlements.
- Crates no longer share the same character as books and a few other things, and also have appropriately altered colours for whatever kind of wood they’re made from.
- Gods with spears can no longer hold spears at some strange angles that don’t look right when they have unusual bases at the bottom of their statues (mountains, water, and so on).
- Stopped the game from generating some slightly strange names for thrones, especially with words that could be interpreted in multiple ways.
- Drinking water from a canteen, and refilling the canteen at a river or a well or whatever, now all correctly update the water supply count on the sidebar.
- Dropping or throwing something you’re wearing now always correctly takes it off first.
- Chest images are now more sensibly positioned within the image window.
- Fixed a related bug where you could sometimes not enter a map tile that didn’t have something specific on it (i.e. entering a random forest tile, as opposed to a town or city or whatever).
- All masks now appear correctly when you’re looking at one of them on yourself.
- Names of nations in the lookup window no longer ever spill over the edge.
- Each mask now has a totally fixed shape and will not regenerate when you look at it multiple times, and this works correctly for all possible shapes, slight additions, removals, damage, chips, all these other minor variations. Masks actually have some of the most complex generators I’ve put into place, so there was a lot to do here.
- Religious masks now correctly spawn on priests for the chosen religion (and obscure their faces).
- Punishment masks now correctly spawn on prisoners, or those unfortunates stuck in torture chambers, in the appropriate civilization.
- Ice / mud / bone masks now correctly spawn on the people of the relevant chosen civilization(s), and battlemasks have been assigned to a relevant civilization too (i.e. a sedentary one with the “stratocracy” leadership type).
- Pressing “Esc” after considering entering a map tile on the world map, and then deciding against it, actually just cancels things and returns you to the world map, instead of (for some reason) counting as you deciding to enter that map grid after all.
- Crown names are now shortened to just “Crown” in the lookup window when worn, so that they don’t go outside the maximum size of the window.
- Fixed a bug with a rare generation of a university great hall creating an area that couldn’t actually be navigated fully.
- The item characters / colours for crowns are now a bit more logical.
- The game can no longer rarely freezes on world generation because it can’t find a good place to put a university in a small civilization (which themselves generate only rarely, but they can generate, so the system needs to be able to handle them – which it now can).
- One of the possible skin tones for you / NPCs is now rather less luminescent, and looks far more like a normal skin tone once again rather than something from the bloom lighting in Oblivion.
- Ensured that the crosshair (for looking, throwing, etc) is not slower when you’re using the numpad instead of the arrow keys to move it around.
- Towns can no longer generate on a single land tile with ocean on all four cardinal sides.
- Fixed a bug where stone tablets were invincible and cursed (in DCSS terms), i.e. you could not destroy them, and you were unable to drop them from your inventory, but trying to do so multiplied them until the entire map was filled with tablets. Oops.
- Fixed a crash bug with road characters on the world map being printed over the character for a graveyard or a slum (outside a city) and thus the game both not acknowledging what structure was there, and looking for a “hidden” road character which didn’t exist (but should have).
- Towns can no longer generate directly on rivers – this sometimes yielded cool generations, but more often yielded really weird generations, and so I’ve just done away with it.
- Removed the (rare) possibility for the “delegate hub” building to appear in a democratic nation and screw everything up – I’ll return to this when national politics are properly developed.
- Shards of demonic altars are now the right colour.
- All religious buildings now spawn locked religious chests on their ground floor, or their middle floor (if they have one), or their top floor, or some combination, and each of these will (soon) be connected to (a) key(s) somewhere in the world (much like all other locks!).
- Brooches (and, soon, medals) now appear at logical locations on every possible kind of upper-body item of clothing, no matter its width and height and visual style. This was an excruciating process.
- Universities on roads no longer crash when you move onto them.
- Names of gods should now be correctly using “the” (or not) before the rest of the name, as befits their name.
- Rain and snow characters can no longer appear on top of the player, or atop NPCs.
- Shards from shattered religious altars no longer regenerate their shading each time you look at them.
- Weather no longer screws up some of the functions that detect what a thrown object is hitting, for example, or what you’re looking at. This was a very unexpected interaction between various systems, but I think I found a very elegant solution.
- Trees can no longer spawn if there is brick wall or something similar either above and below, or to the left and to the right, thus potentially resulting in the tree’s core blocking the player’s ability to get to a location.
- Throwing something at yourself no longer results in a crash.
- Doors no longer behave bizarrely in various weather effects, such as rain appearing on them even though the player can’t see them, and various other shocking misbehaviours and moral transgressions.
- Hunter-gatherer clothes no longer sometimes look a bit strange (I’ll come back to this in more detail when these civilizations are really the focus, but for now, they just look a lot better…)
- This was a lot of effort, but multiple god religions now have a lot more detail in religious buildings – they get at least one statue of each of their gods, which spawn in logical places.
- Ensured that multi-god religion prayer mats can generate the right colours without a crash, no matter what permutation of deities they might include.
- Fixed a potentially cataclysmic bug where the game had somehow lost track of the most fundamental part of the player’s status – “inside”, “outside”, or “travel”, thus unleashing all manner of horrors – until I discovered it had a trivial fix to return things to how they were.
- The wait function needs a lot more detail – e.g. allowing you to wait until a particular weather condition, or a particular phase of the moon, and so on – and still has some residual bugs and issues, so I’ve just temporarily disabled it for 0.10.3, then it’ll get finished before 0.11 instead.
- Looking at a brooch (or medal) you are wearing no longer causes a crash, because now the game knows to check multiple inventories for worn items instead of just the “clothing” inventory (whoops).
- The instructions / controls for navigating the conversation window are reprinted after you exit the “trade items” menu with a merchant, rather than just vanishing altogether.
- You can no longer try to put on a brooch (or medal) a second time, which makes the game very very confused indeed, and results in a crash.
- After sailing somewhere the game appropriately updates the local weather, and prints a message letting you know about the local weather conditions. Before this, the system worked in such a way that sailing from a polar location to a desert would essentially take the weather with you, and yield some very peculiar results.
- The player character now once again renders correctly when walking underneath some kind of overhanging thing, such as a load of leaves and branches on a tree, or a gate, and so forth.
- So do NPCs!
- Firing a projectile at someone (an arrow from a bow, a bolt from a crossbow, a ball from a pistol or rifle) now always correctly registers when it hits someone (even if, at present, that’s the only effect).
- You can no longer sneak into districts that cost money to enter by trying to enter them on foot rather than via the world map; the game now detects this and again requires the appropriate fee for entry.
- Fixed (I think) a rare freeze bug where the game could halt during world generation because it couldn’t generate a viable name for a rare book type.
- Dropping a brooch does not crash the game.
- Like the wait function, banks are a) complex, b) almost finished, c) still have a bunch of unresolved bugs, and d) not utterly essential at this moment, so I’ve temporarily disabled banking (it’ll be finished for 0.11, but not for 0.10.3).
- Fixed a very obscure and tricky bug in world generation that could, very rarely, cause the world generation process to freeze due to its inability to find a unique name for a graveyard or a tomb, even though there should have been a huge number of valid name possibilities (many hundreds or even a thousand or so) that hadn’t yet been generated.
- Fixed – I think – a similarly unusual and ultra-rare freeze bug in world generation with the game being unable to generate an appropriate exclamatory statement for a demonic-god religion (e.g. “By the infernal fires!”, or whatever).
- Ensured – I think – that when you warp to a dock in a town, it always actually puts you outside the dock at an appropriate door, instead of some random place.
- Ensured that night time is always indeed sunless on the weather information on the sidebar.
- Emptying or combining canteens at a city’s gate correctly updates the water count on the sidebar.
- Offering to donate to a priest, and then changing your mind, no longer removes visible conversation instructions / key commands.
- Priests no longer accidentally use some of the merchant’s code when donating items to them, and thus sometimes wind up expressing their appreciation for you looking over their wares.
- Departing the religious donation screen no longer causes the screen to flicker.
- The player can no longer, in very rare circumstances, become duplicated, and lead to some really unfortunate and weird outcomes with having the player moving between areas, or into and out of buildings, and so forth.
- Using shift along with the numpad to move the looking (or throwing, speaking, etc) cursor more rapidly no longer results in a crash. This is a really old bug and honestly should have been solved, around… nine years ago. So really not that ridiculous.
- Weather effects (snow, rain, fog, etc) correctly change when there’s a weather transition and you’re on the in-person scale.
- Extra doors placed later in world generation into city walls – generally to lead out to slums and graveyards, and prevent them from being inaccessible during very rare generation permutations – now always show up and function correctly in all contexts (sometimes previously just a glitch, sometimes a crash).
- Being in a district where you know nothing, then entering the travel screen, but deciding to just return to that same district and remain on foot, no longer needs to crash. I’d say this one is only five years overdue.
- Massively improved the colour pairings for normal-type religious chests, removing a lot of clashing colour options and ensuring they all look pleasant on the eye.
- When you are selling a large number (more than one page) of items, changing from page to page now correctly updates the image of whatever item you’re looking at after changing the page.
What now?
Whew! That’s a lot – it’s over 75% of the bugs I need to fix for the 0.10.3 release (and therefore, by extension, for 0.11). The remaining 25% of the bugs are amongst the harder ones, but I’m in a good rhythm now, and I’m confident I should be able to get this sorted, and 0.10.3 released, three weeks from now. Given the degree of fanfare and advertising I intend to do for 0.11, I’m not planning a big thing for 0.10.3, but for all you blog readers, I would immensely value you giving it a quick look and seeing whether you can find any bugs or issues or problems that I’ve missed. I am only one playtester, after all, and this is quite a large game.
Anyway, as ever, thank you all for reading; any thoughts or comments would be gratefully received; and I’ll see you all in three weeks!
Regarding bridges over water – will you add rowboats or the like, or is that not planned?
Hello Bartimaeus, thank you for the comment! Yes, I am indeed planning small one-person boats as a future feature – especially for getting across to secret islands, and the like :).
Good job with the bug squashing, and thanks for the amusing update. The new color patterns for pantheon chests and the pantheon religious information screen look very nice. And the cursed tablet bug sounds like something out of a religion’s apocalypse myth (“If you drop the holy tablets, they shall multiply and smother the entire world!”). I’d like to see one of the messed up bounty posters with the extra set of eyes — do you have a screenshot? That sounds like it would be both horrifying and hilarious.
I second the intrigue for the weird 4 eyed bandits!
Alas! Though hey, perhaps if one day the player can consume some powerful hallucinogens, we’ll get the same effect another way…?
Thanks crowbar, I’m glad you enjoyed it :). Hahaha, alas, I do not have a screenshot, but next time a bug of that sort arrives I will certainly take a pic!
Hello, I am amazed at how systematically you have fixed so many bugs. May I ask you about the “methods” and “tools” you use for task management here? I break down long-term tasks into many short-term tasks that can be completed within a day using outlines in org-mode, which I find quite good. However, I’m not entirely sure if this is efficient enough. If you could share your “methods” and “tools” or the general “process” you use for task management, I would be very grateful.
Hello Stone, thank you so much for the comment! Great question. For bugs specifically, I basically just have a huge list in a Google Doc of stuff that needs doing, then – for 0.10.3, anyway – I categorise according to stuff that is essential (crash bugs or major errors) and stuff I can push into the long(er) grass for 0.11 (non-crash bugs, minor errors). More generally I just keep feature development in my head, but I try to fully complete a feature (or near to it) in one burst of activity, because I soon forget and lose track of the exact systems I used to develop it, and I’m very bad at code annotating – so I don’t want to return to something later on, if I can help it!
Wow, your dedication to this project is inspiring.
And this changelog is stunning,
It’s so massive that I struggle to read it nor I can imagine how much work was behind any of those entries.
Just wanted to send you kudos and good vibes, Keep up with this amazing work!!!
Thanks so much for the kind words, Eugenio! It was a lot of work, and I *really* have to be in the mood to do bug-fixing instead of new features – but I’m really happy with the progress and the polishing here. Thanks again! 🙂
>Fixed – I think – (…)
Idk why ts so funny to me. Like you accidentally fixed some things and went “ok then”. Happy to hear we’ll get – I think – an update before next year, don’t work yourself too hard during christmas Mr. Mark. Much love
Hahaha, thanks Saint – it’s also partly that some are really hard to test extensively so I just have to rely on the competence of my coding (always a bold decision). And, thanks, I really appreciate it :). Yep, I think we’re still just about on track for a 0.10.3 release in two weeks from now! Then I’ll be taking a bit off over the holidays and uploading my annual game reviews, and then we’ll be back to it straight after that.