Hello everyone!

Welcome to the first update for Ultima Ratio Regum 0.11.

Whereas 0.10 was a small release focused primarily on fixing a lot of bugs, optimising a huge amount of code, and adding in a few new features such as plant generation, survival, death, some new items, and bookmarks and fast travel, 0.11 is focused on finally (after 11 years!) introducing a core objective. In the longer term this core objective – solving a treasure map – will be only one of many paths to victory, but for now it’s going to be the core objective set to a new player. I’ve got to get something going that will really give new players a focus in what they should be doing, and begin to give some sense of what the game’s core gameplay is going to be. Alongside this 0.11 is also going to be massively developing the world’s religions and a faction system, and also adding lots of interactive options for the game’s many different types of item. These three goals are pretty focused and I think achievable across a good year. For the next year my challenge to myself is to roughly hit an update each fortnight or three weeks, so let’s get started. As ever, if you enjoy these posts, please do think about sharing them around the internet or to friends who might be interested – I really do appreciate it a ton.

Now, onto our first block of updates for 0.11:

0.11 Plans

So let’s take stock. What remains to be done in the path to a 1.0 release? I would say the following are the major components needed:

BOOK GENERATION / RELIGIONS / COMBAT / LAW & PUNISHMENT & CRIME & POLICING / IMPROVED DIALOGUE / TREASURE MAPS / ITEM INTERACTIONS / UNIVERSITIES / MAIN QUEST 

So, the MAIN QUEST release will be 1.0, which we are getting closer to with each passing year – but what comes next?

I’m excited about book generation. This is going to be a core source of clues and information for the player – however, given that I am writing an actual book during 2023, I don’t think it’s the best idea to work on book generation. It’s best for my brain (and my eyes) to do a variety of things when I’m doing screen work and doing heavy text-writing for my job, as well as heavy text-writing in game dev, would be a mistake. It makes a lot more sense to save book generation for a year when I don’t have a single huge academic writing project. The same can also be said of improving the in-game dialogue; it’s very text heavy and I don’t need more of that next year in my game dev work. As such, I think it makes far more sense for book generation to be the focus probably of the next release and for 0.11 instead to tackle a number of these other exciting areas.

My goals for 0.11 are therefore:

ITEM INTERACTIONS

  • 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)

RELIGIONS

  • 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

  • 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?

I think this is a realistic and sound set of goals for the coming months. My health remains variable but is overall a little stronger at the moment than in recent years (touch wood) and these four objectives are concrete and substantial enough to make for a good major release – as well as one finally with a core objective! – but also finite enough that they won’t spiral ridiculously out of control. This is especially the case since I’ve already made some progress on both the ITEM INTERACTIONS category and the RELIGIONS category (see below!), and a lot of the 48 known bugs are relatively small in their scope and shouldn’t really take a great deal of time to address.

So, without further ado:

Procedural Relic Generation

One of the core goals in 0.11 is to massively enhance the in-game religions and their detail, develop a proper system for belonging to (or seeming to belong to factions), and deepening the unique and interesting items the game has to find, and later on, to trade or use in the solving of puzzles. One of the major steps here is removing the reliquaries from the game world and instead adding actual relics that the player can see and – later – will be able to acquire (maybe even steal!). For starters it’s important to me that each religion is given a randomly-selected archetype for their relics so that what matters to one religion and what they treasure deeply (sacred candles, say) is wildly different from another (sacred stones with ancient markings on them) or another (sacred fans!) or another (sacred mysterious cubes) or another (sacred wooden sculptures). This will really help to develop that sense of depth and variety in the game world that matters so much to me, and will help the player over time recognize what relic might belong to which religion.

As such, I have started work on procedurally generating some of the relic archetypes, and I’m incredibly happy with how these are coming along. I think they look absolutely beautiful, and I can’t wait for the player to be able to see these in the game world. To begin with, let’s remember that there are currently five high-level categories of religion which can generate in the game – demonic / hellish religions (worshipping some kind of demon-type god), Lovecraftian religions (worshipping an eldritch / unknowable-type god), animal-based religions (worshipping something like “The Deer-Headed Saint” or “The Wolf-Footed God” or things like that), pantheon religions (with between 4 and 8 different deities), and “generic” religions (i.e. everything else!). Each game world generates mostly with the “generic” religion type – though these of course vary massively 🙂 – and a handful of the others. To begin with I’ve therefore created around thirty different religious relic ideas, with around eighteen being for the “generic” religions and three each for the other types of religion. I then created new relic generator whereby the names of relics varied for each relic type. For instance, here are some outputs for the “Hellraiser Cube” archetype (for demonic religions!), the “Body Part” archetype (generic religions) and the “Horn” archetype (for generic religions):

Some of these also of course interact with other things, such as the name generation type for the culture that has produced and curated the artefacts! So the latter two are both using the specific name type from the dominant culture in that religion, further adding to the variation possible with this system. I then went into my image-generation file (which I keep separate from the main file in order to hugely speed up the testing on the image generation systems) and drafted out a few early ASCII grids of what some of the artefacts might look like, coming up with this for the “fan”, “candle”, “impossible shape” (for Lovecraftian religions of course) and “cogwheel” archetypes. Although only text and black-and-white, I could immediately see the potential these images had to be really gorgeous:

I’ve now set to work building the systems for both translating these grids of ASCII into the normal graphics for the game (i.e. ANSI with different characters deployed with different colours to construct the image), and of course making sure that each relic archetype has a huge amount of variation built into it. While each relic archetype should be wildly different from each other one in order to ensure the player can rapidly recognize where a relic is from when they discover it – or to know that maybe it’s from a currently unknown religion that they might want to go and seek out – we also need a lot of variation within a given relic archetype for a given religion. This as ever is one of the things I enjoy most about game development and the procedural graphics generation is one of the most unusual / distinct things about this strange Dwarf-Fortress-meets-The-Outer-Wilds game that I’m making, and so I’ve been having so much fun these past few weeks starting to develop the full visuals and variations for the relics.

As such, I’m pleased to now be able to show off the first three! I started on the “Hellraiser Cube” archeptye for demonic-archetype religions, the “Pendant” archetype for pantheon-archetype religions (where each colour represents one of the gods in that pantheon, and that same colour is associated with that pantheon god elsewhere e.g. on altars), and the “Candle” archetype also for demonic-archetype religions. I have to say I’m unbelievably happy with how these are coming out! This is going to be a big part of this release and will be coming through gradually over the coming year – I’m interspersing this with other aspects so that I don’t just lose myself in this one – so more relics will be turning up soon, but I think these are looking really gorgeous. These are going to be important treasures, potential quest and puzzle items, and key worldbuilding aspects, so it’s important they look striking and interesting – and at present I think they’re hitting both metrics very well indeed. The cubes have the smallest number of permutations of these – only a few hundred (varying the design and the colour pairing) – but the candles have close to a million, and the pendants around two million.

In terms of inspiration the left relics are of course based on the puzzle boxes from the Hellraiser films, while the candles were inspired primarily by the mysterious glass candles in the ASOIAF universe, and the middle pendants didn’t have any specific inspiration. As for their names, the left-hand side relics might have names like “[Name]’s Cube of Decay” or “[Name]’s Casket of Fear”; the middle might have names like “The Treasured Emblem of [God]” or the “The Holy Pendant of [God]”; the right-hand side relics might have names like “[Name]’s Seething Black Candle” or “[Name]’s Cruel Green Candle”. It’s always fun making these sorts of generators!

Item Use Options

0.9 introduced a huge number of different procedurally-generated items into the game, and 0.10 also added a few others. You start off with a few already in your inventory (more in 0.11!) and can find others around the world, mostly in shops:

All these items now need to be usable. I’ve been thinking hard about the various functions that items should have in the game, and after a lot of consideration I think the following actions are required:

USE: The most obvious will be some kind of generic “use” function. This will obviously differ significantly across different kinds of items depending on both the item and the context. For example, if you select your shovel and hit “use”, then you’ll attempt to dig into whatever you’re standing on, and doing so will slightly degrade the shovel (leading eventually to it being unusable and you’ll need to find another). This will of course also function for equipping weapons including melee weapons, archery weapons, and firearms as well. This will equip the weapon to your player character and allow you (later!) to swing it at people, as one does, or to fire it and so forth. This will also work for clothes, where “wear” options used to exist in the game and are actually pretty easy to bring back, and should be reimplemented for clothing as well as for armour, and for taking an appropriate amount of time to put something on (i.e. it will take far longer to put on a large suit of metal armour than it will to don a jaunty hat). This will also work for things like quivering arrows, loading gunpowder or bullets, etc. Other items will simply not have use functions, such as whale oil, or spices, or in other items what might be the “use” function will be deployed with a different meaning, so “wield” would appear for a weapon instead of “use” and then later there will be some kind of “attack” function instead of use. Nevertheless, this will be appropriate for many items, and needs to be in. The input for use will, of course, be ‘u’.

THROW: I definitely want you to be able to throw items. This is partly just because I think it’s a fairly obvious generic action that will boost the sense of interactivity in the game world; partly because I’m sure throwing weapons are going to appear at some point soon and they need to be used in this way; and partly because it could make for a last-ditch effort in combat if all else appears lost. I’ll therefore be implementing a function where you can select an item, take aim, give it a good throw (at a distance that depends on the weight and size of the item), and have some effect happen when it hits something (often involving the item smashing, though that of course depends on what it is). The input for throw will be ‘t’.

DROP: Naturally one needs to be able to drop (and pick up) items – this is a roguelike after all – and this will not be a “hurl to the ground” kind of drop, just simply a “place on the floor” kind of drop (as it is in most roguelikes). This will be useful for inventory management, and perhaps for storing things in places if the player is later able to, for instance, hire a location to store items (though all civilizations do currently allow you to store items in a kind of abstract warehouse free of charge). Drop will also allow you put things into certain places, such as dropping something into a chest that might require a certain kind of item in order to open up. The input for drop will be ‘d’.

DESTROY: All items – except maybe quest-essential items, but I’ll be thinking about that – are going to be destructible. This is one that I’ve actually already almost finished coding in, since it is relatively simple in programming terms, needing simply to present the player with an appropriate sentence about how they destroy the item, iterate an appropriate number of turns for the destruction to take place (so more for a large suit of armour, fewer for a piece of paper!, delete the item from the game, and add to the player’s inventory anything they might find inside it, e.g. a note describing some important secret). The input for destroy will be ‘D’ and will have an extra prompt before continuing to make sure you actually want to do that!

PRESENT: This is a more unusual function but one that will be well in-keeping with the objectives of URR – the ability to present an item. This might be, for instance, presenting an item to an NPC and hoping to get a response from them, such as presenting your sword to an NPC as a threat, or presenting your ring to someone to demonstrate that you are (supposedly) a member of the religion or cult whose icon is on that ring. Alternatively maybe presenting will have other effects, such as showing an item to some kind of hidden ancient mechanism to yield some kind of benefit (a secret door opening, things of this sort) or presenting an item to someone who might be interested in it as a gift. I think this is a really novel “verb” for a game, and I really like the opportunities for many different interactions that this one should offer. The input for present will be ‘p’ (whereas looking at policies for your home / local civ is ‘P’).

REMOVE: This function will work for both wield and wear items and will simply remove it from being used / worn / wielded by your character and return it passively into your inventory. The input for remove will be ‘r’.

I think that’s all of them, at least for now. Others might come in later but this is a good selection to implement in 0.11. I’ve begun work on building these into each item and will have more to report on this soon!

City centre improvements

At the moment each city centre is essentially split into 16 areas in a 4×4 grid, each of which is around 40×40 tiles while leaving room for roads and walls and such in-between. Lots of buildings take up only one part of that grid, while a small number (e.g. a parliament or a mint) take up two, but there is only one that takes up four (in a 2×2 grid) – a cathedral. Cathedrals, however, do not appear in all nations, only appearing in the capital cities of theocracies, or non-theocracies which were the originating nation of a major religion. This means that around a third of the city centres don’t have a large cathedral in them, and so instead at the moment they essentially just have a large set of walls taking up space where the cathedral would otherwise be.

This gets the job done, but it’s rather bland and doesn’t really amount to anything, and I’ve been wanting for a while to upgrade this into something a little bit more interesting. As such, each city centre without a cathedral – but still needing something to take up that extra space – now spawns a massive garden with a large number of possible permutations in terms of trees, plants, walls, water, paths and layout in the middle of the map. It’s not a gigantic change but it does make city centres without cathedrals feel far more “full” of stuff – even if it’s just a big park! – and it’s far more aesthetically pleasing, while also making far more sense than just a massive wall being there instead of anything else. Here are some examples of these charming new parks in civilizations (though in this case all tested in one civ) with aesthetic preferences for various (circle, square, diamond) shapes:

Survival items actually help survival

So, er, it turns out that the new survival items don’t, er, actually, er, help you with survival in 0.10. Let’s not talk about that any more, but I’m pleased to announce that the survival items do now actually assist you in your survival in the ways they describe.

Whoops.

And lastly:

Given all these changes…

Version 0.10.1 is released!

You can find it, as ever, on the Download page :).

Bugs and minor fixes

  • Approaching an embassy in a city centre no longer leads to a crash because the game can’t figure out what to add to your list of fast-travel bookmarks.
  • The game now tells you whether the entrance to a monastery or castle is on the north, south, east or west or a grid when you enter (this should be a significant time-saver as these are large structures that can take a bit of time to walk around).
  • Fixed a large and tricky issue with the high-level categories of books (e.g. “biography”, “novel”, “history”, etc) not necessarily matching up with their subtype (e.g. “military biography” or “leader biography” or “religious biography”, etc) and causing some strange items to occasionally spawn in shops, and crashes when you tried to look at these items.
  • The colour of snow in night time is no longer essentially identical to the colour of ice at night time, and these look far more distinct now when the player looks at them.
  • Longer names of structures and objects and so forth now correctly appear on the minimap over several lines, rather than spilling out of the window into the adjacent menu.
  • Having added the keypad enter and the keypad “5” to menus last time around, you can now use the numpad directions (2,4,6,8) to navigate on loads more menus as well.
  • Resolved an issue with trees overhanging water sometimes taking on the changing turn-by-turn colours of the water underneath, instead of retaining their tree colours.
  • Fixed an issue where trying to warp to a currency exchange would sometimes lead to a crash, and trying to warp to a local cult shrine (which shouldn’t have even been an option!) also led to a crash.
  • Fixed an issue with the game still sometimes crashing when you enter a court in a city centre.
  • Heads on pikes outside castles have now been removed (they never got around to having generated images) and may well stay removed indefinitely, essentially because I couldn’t find way to make them look at all interesting.
  • Clearer instructions have been added to the bookmarking system to make it more apparent how you use it, bringing it more in line with other menus and functions.
  • The visuals on drawbridges in castles have been upgraded to join the sort of quality I expect from the other graphics in the game (similar to the fountains upgrade from a few updates ago).
  • The same is also true of ceremonial gongs in religious buildings which have them, and vases as well, and also incense stands. All three of these are now properly shaded and consequently look far more like the other modern graphics in the game.
  • Beards are now appropriately shaded on faces, and hence no longer look kind of bizarre when put against certain skin tones.
  • Holy books now spawn on tables in monasteries as well as on tables in ordinary religious buildings  in cities and towns and so on (churches, pagodas, whatever the specific term is that a given religion uses).
  • Dealt with a few issues in book title generation with things like “the The” being possible as part of a book’s full title.

What’s next?

More relics, more doing stuff with items, and more :). See you in a couple of weeks!

6 Comments

Leave a Reply to Mark R Johnson Cancel reply

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