Ultima Ratio Regum 0.10
Released!
This is a smaller release with a focus on polishing and optimizing many game systems, as well as implementing a handful of new features that will stand the game in good stead going forward. Specifically:
MAJOR FEATURES:
- Fast travel and bookmarks: you can now fast-travel to specific locations within any map grid – as long as you have found them – and as you move around new locations are added to your list when they are first seen. You can also place and name custom bookmarks which you can also warp back to at any time, allowing you to take note of potentially important or hidden things.
- Survival: being outside settlements and ships now consumes resources, making survival in wilderness areas a strategic concern. When entering and leaving cities you are now able to buy resources – food, water, and equipment – which are needed for various terrains and in various contexts. Without these your character can become seriously unwell.
- Flavour text: walking around inside settlements now generates flavour text sentences from several hundred different archetypes depending on your location and the culture of that local area. These give the player a sense of the area they’re in and are designed to increase the feeling of the “lived-in”-ness of the game world.
- Plant generation: the game now procedurally generates species of wild plant, and also generates each individual plant that you might look at in the game world. Plants now also once more appear physically in the game world, giving a lot more detail and variety to many districts and settled areas, as well as to the wilderness.
- New items: you can now find a number of new items such as binoculars, walking canes and pitons in the game world which will help with your navigation of the world’s trickier terrain and your use of supplies during exploration. These can be found in various shops in cities and elsewhere and command a high price, but have a lot of value.
- Death: the player can now die by starving to death, being felled by sunstroke, or being felled by hypothermia. These conditions are generated by running out of supplies and not being able to make it back to a settlement in time to recover, and result in permadeath and the removal of that game world. Upon death the player is given a detailed breakdown of their accomplishment. The implementation of death also readies the game for future combat.
- Massive optimisations and speed improvements: walking around the game world is now massively faster, and generating map grids is also now massively faster. The former should be at least 50% faster on a moment-to-moment basis and this difference is very noticeable with how fast the player can move around; in the latter case again at least 50% of the generation time should have been reduced, making the overall experience of the game far smoother and less stop-and-start. More improvements are planned for the future.
- Huge number of bug fixes: huge numbers of both crash bugs and lesser in-game bugs have been resolved and removed, which should hopefully make for a smoother experience. This is an ongoing process, but as ever, please report any bug – or anything you think might be a bug! – here on my blog, or by using the contact form.
PLAY IT:
As before, the game is made for Windows though I do plan on Mac / Linux versions one day, probably after / alongside 1.0 in a couple of years. For Linux I recommend Wine, and for Macs I’ve seen a range of different solutions though Wine also seems to work there. Adding the exe to a Steam library and setting Proton compatibility also works (though might take a minute to load).
Python executables are (unfortunately) known for generating false positive virus reports, and URR is no exception. I’ve worked hard to try to find a solution to this problem, but haven’t succeeded yet. There is, obviously, no nastiness in the executable, so you’ll just need to tell your antivirus not to worry about it.
If you find bugs (or, you know, have a positive comment to leave!), please do comment here or send me an email or a DM on Twitter or a carrier pigeon or some semaphore, or whatever.
THE FUTURE:
I am now working on 0.11 and continuing to enjoy this “one year” turnaround time for major releases. It’s large enough that I have the time to do something of meaningful scale, but also small enough that it keeps me to a schedule and to focusing on the core essentials. I therefore anticipate a 0.11 this time next year, and the first 0.11 updates will start to appear in the coming weeks.
In the meantime, I hope you all enjoy 0.10! Have fun exploring and trading your procedurally-generated items, everyone, try not to starve to death, and I hope you are all having a lovely new year!
So exciting! I’ve been playing around with the release for a little bit, and I really enjoy the mood and variety of the new flavor text, particularly the combination of more ‘generic’ policy-related text and more granular location-based ones.
“You overhear the sloshing of water against the moat surrounding the castle. You wonder what it would be like to try to attack such a great castle, and you do not relish the thought.” – These popped up while exploring a castle and inspired me to comment. Plus, having flowers and their images spices up the scenery well. Looking forward to generated books and statues/paintings!
One question and something of a bug report: For the local animals you can ask NPCs about, any plans (even far future) to integrate those into the game like with plants?
And while I really like the idea behind the bookmark and intra-city fast-travel system, it doesn’t always work for me.
“IndexError: string index out of range
[17088] Failed to execute script URR010” – CTD when trying to travel to currency exchange from within same district
“UnboundLocalError: local variable ‘derspot’ referenced before assignment
[16792] Failed to execute script URR010” – CTD when trying to travel to cult shrine from another district
These replicate in administrator mode. Let me know if you need any other info.
Thanks for all your hard work, I look forward to playing around more with this release!
Kevin, thank you so much for this feedback! I really do appreciate it :).
AND – thank you for the bug reports! I have now fixed both of those. I’ll release a 0.10.0b at the end of the week, say, once I’ve collated any other bug reports that I get. I’m not making as much fanfare of this one as usual due to its smaller size which inevitably means fewer reports, which is always a shame, but folks like you who DO send them in are *so* massively appreciated.
Re: animals, oh yes! Absolutely. Not 0.11 but at some point we’re going to have to have procedurally-generated wildlife, for sure!
UPDATE: both bugs fixed :).
I am always excited to get my hands on a new version of URR. I’m enjoying this so far and have a question and then a crash report.
I assume the main way to make money to get coin is to simply trade between towns and civilizations? Is there other ways to make currency?
I was shopping at my hometowns biographer and after selecting exchange the game crashes with the following in console:
Traceback (most recent call last):
File “URR010.py”, line 968267, in
File “URR010.py”, line 955899, in place_menu
File “URR010.py”, line 105244, in world_browser
File “URR010.py”, line 948849, in new_load_game
File “URR010.py”, line 953594, in new_play_game
File “URR010.py”, line 916275, in keypresses
File “URR010.py”, line 928597, in DFTarget
File “URR010.py”, line 933824, in speak
File “URR010.py”, line 33024, in trade_items
File “URR010.py”, line 644187, in print_item
File “URR010.py”, line 617673, in print_book
UnboundLocalError: local variable ‘cover’ referenced before assignment
[9684] Failed to execute script URR010
Thank you so much for the comment Brad! I really do appreciate it. At present, yes, the main way to make money is trade, but generated “quests” will be coming in soon for sure.
Thank you for spotting this biographer issue; it’s a huge help that you posted this. I will look into it and get it fixed! (I already have an inkling I might know the problem…)
UPDATE: biographer bug fixed :).
Hey, Mark! Congrats on the release, love the plants, can’t wait to find some hedges and fences in this one! And finally being able to die on an adventure!
Got one crash that got my first world unavailable – crashes every time I load it. The problem occured when I approached an embassy in my city center:
File “URR010.py”, line 968267, in
File “URR010.py”, line 955899, in place_menu
File “URR010.py”, line 105244, in world_browser
File “URR010.py”, line 948809, in new_load_game
File “URR010.py”, line 713910, in render_outside
File “URR010.py”, line 716106, in render_outdoors
NameError: name ’embciv’ is not defined
[7748] Failed to execute script URR010
Just wanted to make friends with the neighbouring culture.
Started another world and the same crash happened.
Another wierd thing I noticed in both worlds was the fact that both city centers did not have a city gate, at least according to the map of the city every exit from the city center was supposed to lead to another district, but not outside, and yet when I tried to leave the center I got prompted with a text that is supposed to apper when you are leaving the city (something about the city gates with travel options and buying supplies), although I was only trying to move to a different district. Either I got confused with the layout, or the cities had some Escher-like architecture with exits that lead to places they are not supposed to, which maybe is not a bad thing at all if you think about it ;/
Hope you’re doing great, it is an amazing achievement, with so many bugs fixed and so many improvements made!
Thanks so much for the comment Pavel! And thank you for spotting this bug, that’s a huge help for sure. I have had issues with this before – this is the area of code that handles assigning a nation to an embassy in a city centre – and it’s frustrating that the issue is still there. Thanks so much for letting me know, this is a big help.
Re: city centres and city exit gate – woah woah WOAH. What on earth?! That’s really bizarre and is DEFINITELY a major error. If you could possibly get a screenshot of the layout of that city, and anything else about that bug, that would be a huge help!!
UPDATE: embassy bug fixed :).
Unfortunately no, I can’t make a screenshot since the save file is “corrupted” – my character was standing in front of the embassy and the game crashes each time I load that save. I can only take a screenshot of the city layout from the image from the load menu, I can send it to you by email and explain where the city center was if that would help 😉
That would actually be a big help Pavel, thank you!
This is what I was waiting to hear. Excited to try out the new features when my internet comes back. 🙂
Thanks so much William – my fingers are crossed for your connection!
Ah, thanks for spotting that William! Will get that corrected.
The game’s main page still says “The latest major release, 0.9, introduces currencies, procedurally-generated items, trade, and ship-board travel. 1.0 is coming soon – watch this space!”:
https://www.markrjohnsongames.com/games/ultima-ratio-regum/
Having just stumbled upon this game I’m really impressed. I love how deeply I can learn about all the different religions and kingdoms and whatnot. And the procedural artwork is amazing for a text-based game! It looks like a ton of work. Do you have anywhere where you discuss some of the more interesting development challenges you’ve encountered so far?
Hi Andrew, thanks so much for the comment! I really appreciate it. There’s a lot on this blog and there was a lot on my previous site, although right now I don’t have access to all the archives from that (I hope to go back and get them one day though). I do talk about quite a bit on https://www.youtube.com/watch?v=giIIoIKntnw, but I think the best place is really just this blog which I’m really trying hard this year to keep properly updated 🙂
Hi friend
I’ve found a consistent crash at my hometown’s general store
I can’t find a log file for you sadly
Hi James, thank you for this! Not to worry, that is helpful by itself; I’ll look into it 🙂
Hi, Mark!
Got an error when trying to examine a person, just a brown “h” (looking at them with “l” and then pressing ENTER) in version 0.10.2:
Traceback (most recent call last):
File “URR0102.py”, line 988068, in
File “URR0102.py”, line 975700, in place_menu
File “URR0102.py”, line 105885, in world_browser
File “URR0102.py”, line 968578, in new_load_game
File “URR0102.py”, line 973210, in new_play_game
File “URR0102.py”, line 932528, in keypresses
File “URR0102.py”, line 949214, in DFTarget
File “URR0102.py”, line 943362, in right_side_print
File “URR0102.py”, line 662196, in print_item
File “URR0102.py”, line 658338, in print_necklace
File “URR0102.py”, line 659290, in vs_decider
UnboundLocalError: local variable ‘vs’ referenced before assignment
[236] Failed to execute script URR0102
I think it has to do with the necklace they’re wearing, since it is the first item in the list to be examined, though it may be something else.
Haven’t seen this one being mentioned, maybe it helps 😉
The progress with the 0.11 is amazing, loved your latest posts, can’t wait to check it out!
Hello Pavel, thank you for the comment! You’re totally right, it is something to do with the necklace, though it’s a weird one… I’ve just had a look at the code I’m not instantly clear what the issue is (which is often the case). Ah well. I will delve deeper, and thanks again so much for the post, and the kind words!
You’ll figure it out like you always do, the list of bugs is finite unlike the list of your ideas 😉
I’ve encountered another one, in the same world when trying to enter a town of a different nation both from world map travel and from local travel:
Traceback (most recent call last):
File “URR0102.py”, line 988068, in
File “URR0102.py”, line 975700, in place_menu
File “URR0102.py”, line 105885, in world_browser
File “URR0102.py”, line 968578, in new_load_game
File “URR0102.py”, line 973210, in new_play_game
File “URR0102.py”, line 936625, in keypresses
File “URR0102.py”, line 138251, in next_turn
File “URR0102.py”, line 178835, in do_turn
File “URR0102.py”, line 166073, in do_something
File “tcod\_internal.py”, line 28, in wrapper
File “tcod\libtcodpy.py”, line 2210, in path_compute
AttributeError: ‘NoneType’ object has no attribute ‘_path_c’
[236] Failed to execute script URR0102
Traceback (most recent call last):
File “URR0102.py”, line 988068, in
File “URR0102.py”, line 975700, in place_menu
File “URR0102.py”, line 105885, in world_browser
File “URR0102.py”, line 968578, in new_load_game
File “URR0102.py”, line 973210, in new_play_game
File “URR0102.py”, line 932622, in keypresses
File “URR0102.py”, line 742218, in player_action
File “URR0102.py”, line 138251, in next_turn
File “URR0102.py”, line 178835, in do_turn
AttributeError: ‘NPC’ object has no attribute ‘AI’
[232] Failed to execute script URR0102
There must be some secret hidden in this town, the game just doesn’t want to reveal it yet. Guess I’ll just go to the north pole now, my nation has got an enclave there with a mine
In case it matters for the debugging, my home nation policies are imperialist, vassalage, monarchy, slavery, literary, collective faith, pastoral, vigilantism
Thanks for this Pavel! Okay, so I think these bugs are both related to the previous crash, as you mention it was the same world. There’s a known issue with the after-crash world saving not working *perfectly* and sometimes then, later, producing weird crashes. I’ve never seen a crash like this in thousands of hours, except when after a previous crash, so I’m pretty sure that’s what’s going on here! Nevertheless though, I will double-check, in case it is something more malicious. Thank you again for the report, I *really* appreciate it!