Hello everyone, welcome back! This week we have another major bug purge, getting the bug list down to something actually surprisingly small now. Thank you, again, to all those posting here with bugs, sending me DMs on Twitter, and emails with bug reports – given how long-running a project this is and how long it has taken to build the foundations for what I’m hopefully going to be releasing fairly soon now, I really cannot express my appreciation enough. It means a ton to me to have such lovely and loyal followers, and I promise you your faith and patience are going to be rewarded soon :). But aside from that, there’s not much else to say in this intro, and a lot of fixed bugs to report (some from fans, some also of course from my own playtesting), so let’s get into it:

0.10.4b / 0.10.4c Bug-Fixes:

  • Picking up coinage you already have in your inventory combines the two items instead of yielding two separate stacks.
  • Pressing “5” when looking at objects that can’t be translated (i.e. everything except tablets) no longer causes a crash.
  • Fixed one potential religious building generator permutation that yielded such a tiny number of chairs and prayer mats that there was a genuinely reasonable chance NPCs would struggle to find somewhere to sit, sometimes, and thus freeze the game.
  • Fixed a minor graphical mistake (but one which has bothered me for over a year now) with the doors that can appear in the third world generation screen.
  • If you categorise your journal you no longer call it “the ornate edition of ‘Your Journal'”, which is a framing that makes sense for all books except this one, and it instead says “this very journal”, which is much more organic and logical.
  • Weather effects (snow, rain, etc) now can never appear over a tile which contains a feature or some kind of structure (door, grave, anything) so as to never obscure the player’s vision unnecessarily.
  • Marble relics no longer have the faintest reflective glimmer in their images in some circumstances due to generator overlap (i.e. it was accidentally activating the wrong part of that generator when printing a marble) with pearls, which will (soon) appear as one possible variation of ancient currency.
  • Fixed an “Error: no door type found, please report!” bug appearing in the game when you look at the doors within a library, or within a hall of worship on a university campus.
  • Fixed a few places that explained the keys used to navigate in a menu in a slightly unclear manner.
  • Resolved a major and honestly almost unbelieve error with halls of worship involving them generating wildly incorrectly under certain circumstances, up to the point of letting you walk out of the interior of the building and into a strange abyssal void?? Astounding – but now resolved.
  • The things which should appear at the bottom of rare religious statues, e.g. waves if “waves” is somewhere in the god’s name, do now all appear correctly.
  • Resolved some written confusion between the terms “Great Hall” and “Main Hall” for the main building in universities (which also opened up the possibility of bugs in the future).

  • Fixed a bunch of god permutations that didn’t correctly trigger a “the” in front of their name in appropriate grammatical contexts, e.g. the difference between “This is a pagoda of Lion of Summer” vs “This is a pagoda of the Lion of Summer”, and so on.
  • “Normal”-type religions now prioritize nicer-looking colour combinations, and only resort to less attractive ones if there aren’t any options left.
  • The strap on an eye patch can no longer, amusingly but unhelpfully for the individual in question, cover the other eye as well as the one covered by the patch the strap holds.
  • Fixed an issue where adding new words to a dictionary you already have words in could, very rarely, lead to a crash.
  • Fixed an issue where under very rare circumstances words on a tablet wouldn’t be added to the dictionary at all, which also led to a crash.
  • Fixed a very interesting and tricky bug where the journal was very rarely adding a letter to the start of a word, and thus when you selected that word to estimate a translation, it couldn’t find it in the dictionary, and crashed the game.
  • Prevented a crash that emerged as a result of a single one-letter typo in world generation, where “foreign” (as in civ.foreign, so the foreign preferences of a civ) was “foregin” in one place.
  • Roads now always spawn correctly going through graveyards, rather than sometimes just appearing in the wrong places or vanishing without a trace.
  • All doors now absolutely, definitely, show on the walls of cities if you’re looking at them in the city / districts window (sometimes a few of them wouldn’t appear).
  • You can no longer enter a city by some gates but then those gates glitch when you’re trying to go the other way, and don’t let you out!
  • Leaving the menu where you code an item with a letter or character now always correctly reprints the rest of the screen around it.
  • Fixed a crash bug when looking at the door to a hall of worship on a campus.
  • Also made sure that roads which fizzle out beyond the slum do organically fizzle out, instead of just suddenly stopping at the edge of the map grid and not continuing in the next grid over.
  • Roads that go through graveyards and slums also look correct on the city view screen, too.

  • The “X’s Y” variant for naming crossroads, e.g. “Bard’s Crossing” or “Jester’s Dilemma”, now takes account of the civilization that crossroads is in, e.g. enabling / disabling the possibility of “Gladiator’s” or “Monarch’s” or whatever it might be (i.e. only categories of people logical to that nation).
  • Updated the controls screen to note that you can press “m” to scroll through the log of recent messages, and to note that “<“/”>”, a.k.a. “,” and “.”, are used to advance or go backwards in pages in a book.
  • Fixed a crash bug where looking at evergreen trees during the winter would sometimes lead to the game being unable to figure out what kind of sentence should be written about them, and thus imploding.
  • Fixed a problem where under certain circumstances the “Loading” that appears after “Offloading” when crossing on foot between map tiles would be bizarrely offset and not in the right place on the screen.
  • The journal no longer always starts in 1651 (whoops – that was a holdover from my own playtesting) and now correctly notes the year of the game’s start as the journal’s starting year.
  • Fixed a problem where a certain face tattoo type just didn’t look right because of how close the design went to the character’s eyes and eyebrows.
  • The arrows on the edges of the city district view no longer behave strangely when you’re looking at a part of a city that is either < your x or < your y on the world map.
  • The game will no longer crash when you’re out in the wilds – i.e. not in a settlement – and you press “t” to start travelling, but cancel the travel screen by just reconfirming the tile you’re already on. 
  • Dealt with a significant crash bug in cathedrals with crypts where the guards, after exchanging who was on duty, couldn’t work out what to do – this actually will have also been playing out in other areas too due to a single typo (“Stair” rather than “Stairs” in one elusive string), so this was a multi-fix!
  • Extremely snazzy and extremely rare gold-plated firearms now have their item character appearing gold, rather than a shade of grey as is the norm for that item type.
  • Fixed a visual bug with the non-journal book tutorial overlapping some of the options for the book in question.
  • You now always face the right direction when starting the game in the museum.
  • The altar image for wolf-headed gods has been completely updated, as the previous one was both very old and very poor in quality, and was another of those few remaining images that just haven’t come up to the modern standard.
  • The factions pages in the journal no longer finish one line too soon – i.e. leaving two lines at the bottom of the page instead of one – and no longer sometimes chop off the first letter of the next page (no idea about the cause, but have prevented it). 

  • Fixed a bug where very rarely chasms would generate that couldn’t figure out what character to print, and would instead in desperation just put a huge white “X” on the map in their place, both looking weird, and causing a crash when you tried to generate that map tile.
  • Fixed a (strangely enough unrelated) bug where chasms that extended off the map would generate their visuals very strangely; all chasms now fit perfectly onto the map, and generate correctly.
  • Fixed an also unrelated bug involving the ends of chasms sometimes appearing mysteriously brown rather than the ice/snow colour they should be on the world map.
  • Fixed a long-ish-running and quite frustrating bug involving adjacent bioregions on the world map very rarely sharing the same colour, despite all the meticulous code to prevent this. I think I have now found the issue and resolved it, and so adjoining regions should now never – touch wood – be the same colour.
  • Fixed another issue with displaying roads correctly when you’re in the city districts view.
  • You can no longer have tundra at the very bottom or the very top of the map, which looks rather odd – there must be at least some degree of polar region at the extreme upper and lower y coordinate of every x coordinate (where there is land), whether it’s a huge polar region or a small one.
  • Heads on pikes no longer have their closed eyes sometimes appearing in weird places (i.e. not where their eyes should be).
  • The doors on great halls in universities no longer sometimes lead to different and presumably quantum-entangled variations of the same great hall.
  • I am now reasonably certain that entering arenas no longer leads to a crash as a result of guards being duplicated and then forced to stand uncomfortably close to their clone (i.e. on the same tile).
  • Added a large set of overlap exclusions for generating the names of demonic gods and ensuring they’re all very different within a given world (e.g. if the game generates one with “Anger” in its name, then remove a large volume of similar words like “Rage” or “Fury” from the pool for generating the remainders) – this has some slight value for worldbuilding, but is actually important for gameplay, as I need to make sure clues pointing towards them are cryptic, but never ambiguous.
  • Relatedly adjusted the four possible green colours bioregions can use, in order to make they are very clearly different from each other, even when they abut each other.

  • Fixed a serious crash bug where a substantial number of items could not be sold in shops without eliciting a crash from the game, including some pretty common ones.
  • You can no longer get messages about things going on within the other floors of the building unless you, yourself, are on that floor.
  • You now correctly get ambient messages for crypts when you are in crypts underneath cathedrals, as well as when you are in crypts underneath graveyards.
  • Gold coins actually now look (somewhat) golden rather than looking a bit miserable.
  • The options menu now has a (requested by several playtesters) “reset” option for the tutorials, and is overall slightly more logical and sensible to navigate! 
  • Fixed a related bug where making some changes in the options menu while on the main menu, rather than in-game, could lead to a crash.
  • Resolved a visual bug involving some challenging combinations of facial tattoos, beards, and certain hairstyles – I’m confident these now all look correct. 
  • Fixed a couple of bugs in speech generation, including some typos and some words being squished together incorrectly.
  • I have stopped roads incorrectly generating on slums if the road fizzles out beyond the slum.
  • Archivists now do their work on suitably ornate tables rather than more common fare.
  • Pressing “r” no longer (for now!) brings up the religions page, since joining religions and rising up religious ranks isn’t fully implemented yet.
  • Fixed the code that actively prevented anyone from actually spawning with hand tattoos / scarification, and/or damaged hands and missing fingers – full implementation isn’t yet done (although all the visuals are there), but closer than we were before.
  • Fixed a very cheeky freeze bug where fast-travelling to the door of a crypt in a graveyard would, sometimes, be unable to find where to put you outside the door – it found the door itself fine, just couldn’t work out what to do after that. 
  • Archivists no longer spawn with the relevant religious staff of their nation, since they need both of their hands free for all their archiving (presumably).

  • The player can no longer start in a university that sits within a colony of that nation (unless there are literally no other options), rather than in its “main” territory, because this would put the player at a big disadvantage re: potentially not having immediate access to the capital city (and when this just happened to me, it felt rather weird and like a less exciting start, somehow, and I just didn’t like it).
  • You can now fast-travel to known buildings in universities just like you can in towns, city districts, graveyards, monasteries, and so on.
  • Only your starting university now spawns with a museum – I think this’ll give a better sense of the player’s starting location and quest being unusual and distinct, i.e. the only place on earth that has gathered together a whole bunch of initial information, and it also reduces the extent for the player to rapidly see a ton of stuff from around the world without having to explore (I think the amount in the starting museum is great, especially to quickly show a new player some of the image generators, but don’t want to make the game just about visiting other museums at other universities).
  • NPCs no longer inaccurately assert they are wearing no necklace / no ring if they are indeed wearing one or the other (this one is a quick fix since I intend to totally redo speech and conversations in the near future).
  • Improved elements of exception handling so that, in the future, it’s much easier to me to enable / disable debugging when it’s time to release a new version.
  • Adding new words to your journal in a language you already have words in now correctly adds the words according to length, instead of just chucking them all in at the end.
  • Fixed a crash bug when trying to sell something to a carpenter, because the game was looking for an inventory category that no longer existed.
  • Fixed an issue with a certain subset of demonic god names very occasionally causing a crash during world generation.
  • Fixed a bug with both interior doors in libraries (the one leaving, and the one for ordering books) having the same description.
  • You now always face the right direction when fast travelling to gardens rather than this being a little unpredictable.
  • Made sure that doors where you can order books in libraries now always appear regardless of the shape or generation of the library (roughly 1/5 times that door wasn’t spawning, and although not active yet, it’s going to be rather important in the future).

What next?

So there we are! A massive bug-fixing effort has been undertaken, and all these changes are in 0.10.4c which is now available on the downloads page. If you have a moment, please do think about giving it a spin!

More generally, I’ve been doing a whole bunch of playtesting myself of this before I released 0.10.4b in the previous update and 0.10.4c in this one, and although I know of some remaining bugs the game overall seems just so much more stable than it was honestly ever been, which is pretty fantastic. I’ve spent a lot of time doing everything I could think of, including stuff I wouldn’t normally do, or exploring features that I haven’t really thought about in quite some time, and I’m very confident now that the current build is both far more stable (in terms of avoiding crashes and freezes) and also far more polished, with dozens upon dozens of minor issues or mistakes or glitches or incorrect things having also been resolved. There’s still a ton more on the list to do, but the list is genuinely short now compared to what it once was, and as I’ve written before: when one is in the right mood for it (and it is a very specific mood), bug-fixing is a genuinely hugely satisfying thing to put some time into. Adding new features and new mechanics is always incredibly exciting, because how could it not be, but this is also satisfying and gratifying in its own way, and just as important as the cool new stuff – because nobody gets to experience cool new stuff if the game is crashing or freezing on them! Anyway, I hope you enjoying exploring 0.10.4c and playing with the journal – which I do think is incredibly cool – and as ever, if you find other bugs, please do let me know! Emailing me at the part of this website address between “www.” and “.com” via gmail.com will reach me, or you can post it here in the comments, or DM me on Reddit, or on Twitter. I really want the bug list to be either at zero, or incredibly close to it, by the time 0.11 releases, and your very generous contributions have been and continue to be – and this is totally honest, I’m not just saying this – an essential part of pushing towards that objective. Thanks as ever for reading everyone, please do leave any thoughts you have in the comments, and I’ll see you again in two weeks for the unveiling of the big secret I’ve been hinting at for the last couple of months! I’ll see you then :).

8 Comments

  • Great work! I hadn’t played since the big journal update, and I’m loving the new features. So far I haven’t seen any bugs, but I’ll certainly be putting more time in throughout the week.

    Somewhat off topic, I immediately ran across an “intricate burnished copper object” and I’m fascinated by the procgen involved. Are these objects cobbled together from a fixed set of maze-like sections, or do they actually entail a maze generation algorithm of some kind? Either way, the result is beautiful.

    • Hello Alex, and thank you for the comment! Really appreciate the kind words, and thank you – please do send along any issues you find, of course, and I’ll get those fixed for an even more bug-free 0.10.4d that I have, in fact, already begun work on.

      As for the other question, thanks for asking! Right now that object is actually unusually simple in its generation and more of a proof-of-concept for the visual look, but I will be changing it to a true maze generator at some later point! I’m so glad you like how it looks though. I know what that item is going to be *for*, even though that thing is not quite in the game just yet…

  • Stepping out of a hall of worship into an abyssal void sounds appropriate for a Lovecraftian religion! And yes, us librarians and archivists demand only the *very* finest of tables for working on. Seriously though, great work as always with squashing the bugs, and also for the improvements (such as the ability to reset tutorials, which will be helpful).

    I’m intrigued to see how URR balances the “cryptic vs. ambiguous” clues that you mention. A friend and I were exchanging riddles recently, and he pointed out that some riddles can have multiple answers. In my opinion, a really clever riddle leads to only one specific answer (that yields the wonderful “aha!” moment when you solve it or read the answer), while a more ambiguous riddle with multiple possible answers is not as interesting (although my friend notably disagreed with me about this). With so much generated stuff in the worlds of URR, I can see how it’s a challenge to program it such that it generates clues that ultimately lead to only *one* specific answer rather than several.

    Therefore it makes sense that restricting the names of certain things (e.g. preventing multiple demonic gods from having anger-related names) is important not only to keep things from sounding too redundant or silly, but also for the clue system to actually function in the way it’s intended. I’m curious what other strategies you’ve used to prevent clue ambiguity, or other issues that you’ve encountered with this.

    • Hahah, thank you crowbar! I appreciate the appreciation :). As for the cryptic / ambiguous, I am fully on your side, a good riddle (however defined – this is actually something I’ve been doing a lot of thinking about) should have only one riddle, and as you say, it should always yield that “aha! Yes, right, that makes total sense, I see how every part of this answer forms the question, that’s very clever” moment. Super interesting to hear your friend’s point of view though, I’d be very keen to hear more about the rationale if they’re willing to share.

      So, yeah, this is going to need playtesting of course, but I’m genuinely pretty confident about not having ambiguous clues if I’m careful enough. This needs a lot of specialist code, so e.g. if something is pointing to a place on the world map, it needs to be the *only* place on the world map that looks exactly like that. Similarly for the verbal riddles, I need to make sure that places can only be described in a certain way and that way cannot be repeated for similar names (easier for some generators with huge permutations, tricky for things like volcanoes as they are all, inevitably something like “Fire Mountain” or “Volcano of Death” or whatever. So yeah, I think it’s all about treating each generator as its own thing, and really thinking hard about the outputs it produces and the linguistic / visual / other accuracy of it. That’s going to be very complex for one of the next clue generators, and I’ve in fact already realised that… but we’ll get to that later!

      • Regarding his preference for ambiguity in riddles, here’s what my friend wrote:

        “That’s the problem with riddles. One size fits many, and yet people will argue for a definitive answer. Isn’t it much more interesting seeing what answers people can come up with, as opposed to a ‘correct’ solution?”

        • Very interesting! This reminds me of the distinction sometimes drawn in games research between how we think of “games” and how we think of “play”. Games in this sense being more rigid, rule-bound things, with solutions and strategies and outcomes and the like; play, in this sense, being more organic, anarchic, unpredictable, unbounded, and so forth. It sounds to me, then, that your friend is talking about riddles as *play*, rather than riddles as a *game*. The latter demands a correct solution, whereas he’s totally right, the former doesn’t demand a single solution. Though I don’t know whether by default one size *does* fit many, especially if it’s within a bounded system… anyway, this is all interesting stuff, and I appreciate you checking back in with them! I have been doing more abstract thinking about riddles and especially riddles in the context of a PCG / permadeath game, and at some point a blog post on that will probably appear – I suspect I’ll refer back to this when it does!

  • Brilliant work as always Mark,

    Looking forward to trying out the changes, I’ve actually been inspired to try my hand at Python + Libtcod coding. Currently following the Roguebasin tutorial. I’ve always wanted to delve deeper into coding and Python has repeatedly stood out as a good entry point. Not quite at the URR levels of game creation yet so I’ll have to settle with the satisfaction printing “Hello World” in my terminal multiple times!

    Excited as always for future updates!

    – Kyle

    • Thank you Kyle! That’s also really awesome and it always pleases me to hear when others are exploring their own roguelike creation adventures. I really do think it’s such a good tutorial – although I’d coded a bit in BASIC, HTML and C++ before that, I’d never done so in any structured way and I’d been primarily a modder until I began URR just figuring stuff out as I went along, so the foundations and fundamentals that tutorial set in motion were just so valuable.

      And – I, too, am excited for future updates on your own game dev exploration! If you ever want a playtester, you know where to find me :).

Leave a Reply to Mark R Johnson Cancel reply

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