Furniture, Flooring, and Aesthetic Consistency

I’ve now started work on 0.7, beginning with some of the graphics and new objects. 0.7 is all about building interiors, so this means all the obvious stuff – tables, chairs, beds, etc – and the rather more obscure and intriguing stuff – altars, thrones, etc. To begin with this week I’ve focused on two components of this, primarily the “mundane” household/building items, and also the floor tiles for the more expensive and up-market buildings (upper class housing, cathedrals, parliaments, etc). I decided to start working on the aesthetics first before moving to too much coding, as I wanted to have a good image in my head of the world (and the variation in the world) that I want reflected throughout building interiors before I thought about their layout. As with everything else in the game, all civilizations should vary – now, admittedly there is only so much you can do to vary a chair, but I think I’ve done a pretty good job:


As well as these I’ve also done tables and beds, and various designs on those too, bearing in mind furniture items are not “to scale” (i.e. they are designed to take up the entire size of the lookup window regardless of their actual relative size). The more up-market the location the item spawns, the more elaborate the decoration, and the choice of wood colour is naturally based on the biome the furniture is found in:



I also want to take this entry to point out a certain… hidden aesthetic consistency within cities. I don’t know if anyone will have spotted this – and it is becoming more pronounced in the next version – but I rather like this. If you’ve ever looked at the gatehouses in cities, you might notice that there are several different shapes:


In total there are five – squares, octagons, diamonds, circles (as best as possible with a tiled square grid), and crosses. Each civilization picks one at random. It’s a minor additional detail, but then if you look at shop signs, you’ll notice that those also have different shapes:


The observant player would then perhaps also notice that the floor tiles in cathedrals, parliaments or castles have a range of different patterns based on various shapes (and also their colouring is dependent on the flag of the nation in question):


Therefore, in each civilization, the shapes throughout the civilization are consistent throughout! In this case, octagonal:


That’s just a minor thing, but I think helps with just a little extra distinguishing between civilizations. Now I’ve done a very good portion of the new graphics for this release already in just the first week of serious coding (perhaps a third of new graphics?), my next task is the challenging technical task of hacking down saving/loading times, and changing the game to saving the map in chunked sections within a folder on one’s computer, rather than in chunked sections within a single massive file. It’s a hefty change, and one of those which will either be weirdly trivial and only take me a day, or drag on for the week. We’ll see. Coupled with this is creating the new infrastructure for building interiors which is going to be handled in the same way, and from 0.7 onwards saving/loading times are going to be reduced to a fraction of what they are now, and  they will no longer rise the more of the world you’ve saved (which it currently does – a serious oversight). Either way, next week I’ll be talking about these technical changes in a (rare) semi-technical blog entry – see you then!

And… some strange altars have been popping up.


On Being a Workaholic

I’ve just turned 25. As that’s a) a pleasingly round number, b) my doctorate is finally going to be submitted in the next fortnight and c) I’m moving into a new phase of my life for the next year being between academic jobs and focusing on URR, I wanted to write a little blog post (completely without pictures, perhaps for the first time ever?) about my goals for the next few years (URR and otherwise), how I intend to reach them, and a little about how my mind works (something upon which many friends have commented in the past).

What’ve I done with my life since I became an adult? Well… I’ve studied and played poker to an effectively-professional level. I’m a week or so away from submitting a PhD within the youngest 1% of people at my university ever to do so (now let’s just hope the bloody thing passes). I’ve gone from having never written a line of code in my life to where URR is now, and I’ve taken this blog from nothing to (I think/hope) a really excellent community for both URR/roguelikes but also more general games discussion and critique. I’ve published a few papers, spoken at more conferences than I can count, and got into the global Top 5 in a whole bunch of bullet hell games (though that first record continues to elude me). And yet… I feel as if I’ve achieved nothing, or at least less than I could have. Every day I’m haunted by the minutes I waste on Youtube, or the hours I spend just thinking rather than doing (even though I intellectually acknowledge the importance of a good plan), or the time it takes me to come around in the morning before I can think of doing any intellectual work. I cannot help but think I could have done so much more with my time than I have, even though (and I do not say this pridefully) it is more than most have done by my age. It’s just how my head works, for better and/or for worse.

Today I set myself some goals for the next five years. They are big goals. Some are academic goals in terms of what rank of university I should be working at, number of papers/books published, and the like; some are creative, such as finishing URR by the time I’m 30; one is in terms of this blog, which I want to continue to grow as a place for general games criticism and discussion as well as a devlog; one is a fitness goal; and one is a kind of overall objective for the level of “impact” I want to have had on gaming – academia and game development – once I’m 30. As I say, taken as a whole these are colossal goals; I’ll have to continue working (and I include coding here as “working” even though I enjoy it – I mean “working towards my goals”) 12+ hours, every day (weekends and holidays are no excuse for not working!) to reach them. I suppose in part I’m posting this entry as part of forcing myself to keep them – if I’ve made public how “high” I’m aiming, I can’t really show my face in five years unless I’ve achieved them, now can I?

Anyway. In URR this coming year we’re going to have hopefully four releases – 0.7/8/9/10. These are building interiors, NPCs (!!), strategy layer/travel/coinage, and combat (!!!!). I’m also aiming to have at least three game studies papers accepted to academic journals, if not necessarily published yet (there is often a long delay), present papers at at least half a dozen conferences, and finally snag that damned shmup world record in my spare time. I’d also like to try and break the 10,000 downloads barrier for a new version – 0.5 was 2/3rds of the way there (but was out for around half a year before 0.6 came along), but I’d like to grow the game to the point where I can seriously expect those kinds of numbers for every release (any and all ideas for how best to do this are welcome). One example would be that this year I completed missed the IndieDB “Game of the Year” voting competition, and next year I’m going to be sure to mobilize a proper voting effort rather than being almost entirely absent from the internet over that period…

So there we go – hopefully I’ll be able to meet all these objectives, high though some of them are. Maybe I’ll write another entry like this a year from now and evaluate how it went and whether I have, indeed, achieved 1/5th of the above five-year plan? We’ll see. Either way, standard weekly URRpdates will resume next week with development starting on 0.7, I hope you all have a fantastic year, and thanks for everything.

Addendum: holy crap guys, thanks for the donations and support in the past week (especially JV, I don’t know if you want your name out there, but initials should suffice). They’ve been awesome.

2014 Retrospective

And thus, 2014 draws to an end. What did 2014 mean for URR, for my experience of making URR and everything that happened this year, and where does this mean this game and blog and all the rest of it will be going from here?

2014 began immediately after 0.4, my unwise attempt to introduce gameplay before the game was ready for it. Although I was reasonably happy with what you could do in Ziggurats, it lacked any real spark when the world was otherwise so empty, and I realized that it was time to finish off the worldbuilding before actually trying to add any more gameplay (only one release to go!). At this point I turned to fleshing out the detail of the world, and creating a space to interact with that should be every bit as dense, nuanced, and sometimes idiosyncratic, as the real world of a couple of hundred years ago.

From this work I released 0.5 in April, which gave us history generation, a vastly improved world map, religions, coats of arms and families, religion and civilization detail, and was the first release that took place after I finally figured out what the game was actually going to be about! I was very happy with this release, and a lot of people who had previously been sitting on the fence about whether or not I was ‘committed’ to finishing the game were persuaded at this point. Success!

This also pointed the way to the next release: making all these cities, towns, farms, settlements, fortresses and so on actually explorable, rather than just icons on the world map which told you “You can explore these in the next release!”. So, 0.6 began, and ended up being the longest release I’ve ever done, but also by far the largest. The amount of content in 0.6 is probably equal to, if not more than, all the other releases put before it (especially since 0.1/2/3, back in the day, were basically my attempts to figure out how to program a game whilst also programming a game, an approach which may have been a tad unwise). I committed to making every district unique, every fortress generate according to its own algorithm, and basically maximizing as best I could the length of time until players could/would become “used to” what they were seeing. This process isn’t finished yet, and 0.7 and 0.8 will both contribute heavily to this, but it’s a major development along the path of making URR as dense and varied a world as I want it to be.

Released a couple of weeks ago, 0.6 is the first release that I feel stands on its own, even as just a detailed ‘world simulator’ at this point. Although naturally the four planned releases for 2015 should be great and introduce some gameplay, I don’t feel the need right now to keep telling people “but just wait until the next version!” when they look at 0.6. It gives a good impression of the kind of world we’re dealing with, and something about the kind of game that’ll take place within it, and I’m very happy with that.

It was also during this year that I finally realized that Science and Technology Studies (STS), the field of my doctoral research of the last few years, was not where I wanted to be, and that game studies most definitely was. The first thing I ever did in this field was a presentation on the semiotics of roguelikes (which I am currently writing up into a full journal paper) which I gave at the Canadian Game Studies Association Conference, and the response to this (and my overall experience there) cemented for good my shift to game studies. As such, although right now I’m putting the final touches to my doctorate (submission mid-January, at long bloody last), all my other academic work is now on games. I’m incredibly happy that I’ve made this shift, that my early work has got such a positive response, and indeed that a number of people within game studies have shown an interest in URR themselves. I love the possibility of academic/creative crossover in my work, and we’ll have to see where this goes from here.

Lastly, you may notice a NEW BUTTON on the menu at the top of this page. This is the first step towards redoing/reworking this website over the course of 2015, and is a response to the very generous comments from lots of people who want a way to directly support the game. That contains a link to a donation button, but more importantly, I note on that page that I would actually much prefer that people support the game by ‘spreading the word’ than direct monetary support (though I certainly do appreciate that immensely). So, if you like what’s going on at the moment, and what I’ve got planned for my year (roughly) of full-time development over 2015, please give it a look and see if you’d like to give me a hand spreading the word of this glorious Scientific Revolution world to every corner of the internet.

In the mean time, I hope everyone has a great new year – I’ll be back next weekend with a post about my plans for the coming year and, indeed, the coming five years, and then regular URRpdates and the odd game analysis piece will return to normal the week after that. See you then!

Full-Time Development Begins!

Well, it took longer than expected and ran into a million delays (as these things also do), but I am very pleased to announce that from (roughly) now onwards, I will be working full-time on URR for approximately a year, during which I’ll be living off my own savings. This means my doctorate is no longer my #1 priority (it is effectively finished, and due to be bound and submitted on Jan 31st) and URR my #2, but they have been reversed – my academic work obviously remains important, but development on the game will take precedence for the coming year. I update this blog weekly, but you can often get a larger number of interim updates and discussion from other sources, particularly on Facebook and Twitter.


So, what does this mean in practical terms? Well, it should mean four releases this year. My plan is to release 0.7 (building interiors and major code optimization) in March, followed by 0.8 (NPCs!!) in July, 0.9 (strategy, coinage, travel) in September, and 0.10 (combat!) hopefully in December 2015, or just after the start of 2016 if not. It will mean the weekly blog updates will continue with the usual mix of URR updates (90%?) and general game design/history/criticism posts (10%?), and I’ll simply be able to spend significantly more time on coding the game and get through what I want to get through far, far faster than I have over the last three years.


However, there are some contingencies. There are currently several potential academic positions in the works for me, and if/when one of my applications is successful, and when that research project starts, will obviously influence the full length of this full-time development period. As much as I’d like to “guarantee” a full year, the academic jobs market – especially when one is trying to very suddenly change field! – is not to be trifled with, and I cannot with any degree of sanity consider extending to a full year and sacrificing a promising position I would otherwise had taken, if one comes up. As ever I’ll keep you all posted. The other contingency, of course, is that I cannot devote 100% of my time to URR – a significant portion of my time (roughly what I’ve spent on URR in the past few years) will obviously remain on my academic work, for there are a wealth of papers I intend to publish this year and close to a dozen conferences I hope to present at (including hopefully GDC Europe, if all goes well). Regardless, this is a major increase in the time I can commit, and the speed of development should reflect this!


So there we go. Coding development on 0.7 will begin in the next few days once I’ve finished planning out the technical improvements/optimizations, and March is the target for major coding optimization and the generation and storage of every single interior within the current game world (or at least the overwhelming majority, if some turn out to need other releases in place first before they can be designed). I have a few other end-of-year updates lined up for this blog, then regular updates will resume in a couple of weeks.


Last but not least, I just wanted to put up a brief summary of the last week’s 0.6 release. The download rate has been pleasingly rapid, and thus far I’ve had two very, very rare bugs identified, each only by a single person. Given that we hit 1000 downloads within just a little over the first two days (thank you all!) and they haven’t been reported more than once, I feel confident saying these are highly unusual rare bugs. One is in world generation and appears to take place when the game attempts to give a feudal civilization a hunter-gatherer religion (which should be impossible); and the second was a crash at a particular point of worldgen, but with no more information, so that one is sadly just too vague to pursue unless I can get an error log for it. If the person who reported the crash after the “C” and “F” of the worldgen screen is reading this, I need more information! There are a million different functions going on there and an error log is pretty much essential to hunt that crash down. As such, I’ve decided it’s not worth the effort to release a 0.6.1 (unless some major game-breaking bug appears or many more people report these same issues) and to simply push onto 0.7.0 and fix these bugs in the process.

Next week I’ll be posting an end-of-2014 summary of URR’s development (and a couple of other things), and then the entry afterwards I’ll be posting about where we go from here and the plans for 0.7! See you all then.

URR 0.6 released!

After seven months of development, I am extremely proud to announce the release of Ultima Ratio Regum 0.6! This release allows you to explore every single settlement you see on the map: every feudal city, hunter-gatherer encampment and nomadic fortress, in addition to the towns and farms dotted through the feudal lands, are free to explore. You can download it here, and read more detail about the release notes below.

This is the sixth of seven planned worldbuilding releases, which will conclude in March with 0.7’s creation of the interiors of every single building you see in this release, after which core gameplay will begin with 0.8’s NPC generation. Until then, look around the vast world, be sure to ‘l’ook at everything, consult the ‘E’ncyclopedia for information on the planet you’re exploring, and generally get an idea of the scale and complexity of the generated civilizations the game features.

– Explore massive and varied feudal cities (each able to support a population of ~300,000+), each with its own range of districts, architectural styles, and buildings influenced by the political and religious choices of its civilization.

– Discover nomadic fortresses in the desert, enclosed by walls and with an emphasis on strong defence and open-air markets.

– Farms and towns now also generate within the countryside, which in the future will be important stops on your travels, and sources of occasional markets and information.

– Hunter-gatherer civilizations now have settlements, laid out in complex geometric patterns, built from a range of materials, and containing cryptic shrines…

– A huge range of new ‘l’ook graphics for almost everything new in the game, and for a range of items/features/terrains which did not possess graphics in the past.

– Improved world map generation – now includes rare marshland areas, and a significantly overhauled polar biome, now featuring ice as well as snow.

– Introduction of strategic-layer movement around cities, a note on the pricing of city districts, and the unique coinage of each civilization, which will be activated in version 0.9.

– Significant expansion of variety of religion and civilization generation.

– A range of bug-fixes and optimizations on roads, settlement generation, coats of arms, line of sight, generating certain aspects of rivers, and more.

From this point onwards, developing URR will be my full-time occupation for approximately the next twelve months, and I will post in more detail about this next week. Until then, I hope you enjoy exploring this huge world, please report any bugs you might encounter and the crash log (either on this blog post or emailed to mark @ this domain) and here are some screenshots of the kind of variation you’ll find in an average generation:

06_1 06_3 06_4 06_2 06_5 06_6