Onwards to 0.8!

- I’ve just released version 0.7.0b: it contains several crash fixes, fixes for some smaller bugs, and then a bunch of truly minor stuff for typos, rare edge cases in a few generation algorithms, etc. If you’re exploring 0.7.0, I’d upgrade to the new version: rest assured, everything should be totally save-compatible since I don’t think a single new variable anywhere has been added – things have just been fixed, and as far as I know, it should be crash-stable now, but let me know if you upgrade to the new version and something goes wrong.

- This week I found myself giving two presentations, one at the AISB AI & Games Conference down in Kent, and then an invited guest lecture at the Psychology Department of the University of Bedfordshire kindly set up by an old friend; the slides for both, and a Youtube video of the latter, should be online soon! Also heading to this conference for another games talk this week, though I don’t know if this one will be recorded, but I’ll naturally add the slides for this one to the other bunch too once I’ve given the talk. Hoping to get some more “public” talks going this year (there could be a really exciting one in the works!) and I’ll post here whenever there’s another opportunity to meet some of you folks in person.

- Another reminder: I’m hosting IRDC UK 2015! We’ve got some big names talking: DarkGod (creator of TOME), the Curious Expedition guys, Darren Grey (of Roguelike Radio), me (if I may place myself in that illustrious company), Ido Yehieli (Cardinal Quest), Tommy Thompson (AI and PCG researcher) and many others, with also the potential for David Ploog (DCSS), Thomas Biskup (ADOM) and Kornel Kisielewicz (DoomRL)! You should click here to find out more, and come along!

- Work has begun on 0.8. I’ve actually been secretly working on the NPC face generation algorithm for some time and it is almost completed – I suspect I will unveil it either next week, or the week after, depending on how things go. It’s looking pretty glorious. I’m currently in the early stages of planning everything else and what order I should do everything; I think it’s actually pretty likely I’ll work on improving the rendering system for walking around outside first, and thereby extend the player’s line of sight, since a few people have rightly commented on that, and it really needs an upgrade now that I actually know how to code. Either way: I’m working on faces and improving the vision algorithm, and then I’ll probably be working on crowd/population mechanics, before storing specific NPCs. 0.8 is such a huge upgrade it’s hard to know where to begin!

- And that, I’m afraid, is all. See you next week for either some general games commentary or the first proper 0.8 update!

URR 0.7 Released!

After a mere four months of development, I am proud to announce the release of Ultima Ratio Regum 0.7! This release procedurally generates the interiors of every single building in the world – from cathedrals and mansions to slum housing and shops, and everything in-between – and the graphics for a vast range of items and features within those, ranging from ordinary chairs and tables to rare altars and underground sarcophagi. You can download it here, and read more detail about the release notes below.

This is the last worldbuilding release! From this point onwards I’ll be pushing onto gameplay, starting with NPCs in 0.8. This release now establishes URR as one of the most detailed procedural worlds ever rendered – and one unparalleled in procedural cultural, aesthetic and religious detail – and marks the end of generating the immense world over which the player’s “quest” will play out.

Highlights:

- All buildings now have procedurally-generated interiors, where every single building has its own algorithms, archetypes, and items on the inside. This means everything, from cathedrals to slums, can now be fully explored, and in many cases span over many floors.

- All features within these buildings are also procedurally generated, from the most lowly of chairs, tables and candlestands to the rarest of altars, reliquaries and sarcophagi. All of each are dependent on the cultural norms for each nation.

Full Changelog:

- Procedural generation of cathedrals and religious buildings, distinct for each religion but consist across iterations.
- Generation of religious altars, religious reliquaries, and incense holders.
- Crypts now generate beneath graveyards in monarchies, and underneath cathedrals in theocracies.
- City centers how have all interiors generated for embassies, courts, galleries,  mercenary guilds and mints.
- Generation of large family mansions in upper-class housing districts, for both dominant and “ascending” noble houses.
- Generation of middle-class housing and lower-class housing, as well as slum housing outside city walls.
- Taverns, arenas, jails and slave quarters spawn in lower-class districts in nations with the appropriate policies (taverns, however, are universal).
- Military hospitals, Officers’ Quarters, Stables, Barracks and Armouries can be explored in feudal military districts.
- Shops and warehouses can be explored in market districts, although they do of course currently lack any items!
- Banks spawn in middle-class districts.
- Parliamentary buildings spawn in city centers of democratic nations.
- Farmhouses can be explored in the farms outside cities and towns.
- All buildings in hunter-gatherer nations now generate – longhouses, chieftain huts, and general houses – although they remain currently sparse.
- In fortresses, the player can now explore barracks, housing, and most importantly the oasis-like citadels at their centers.
- Altars for all religions now generate, aesthetically varied according to the archetypes and beliefs of each religion.
- Cathedrals and lesser religious buildings contain procedurally-generated reliquaries, incense holders, ornate vases, and much more, each distinct to a given religion.
- Everyday items like chairs, tables and beds also generate, with shapes and wood types distinct to each nation.
- Several buildings now contain candle stands which offer external sources of lighting that can be seen, even if the tiles between you and them cannot.
- Crypts are filled with sarcophagi, each with a unique generated image, within which is buried a figure from the world’s history.
- Save files are no longer in a single monolithic file, but now spread out so that no matter how many map grids may have been generated in a given playthrough, saving/loading speed never slows down.
- Various bug fixes, improvements, optimizations, etc, and a whole host of under-the-hood things implemented in preparation for 0.8.
.

I’m now working on 0.8 – the introduction of NPCs, conversations, face generation, clothing, the works – with an approximate target of four/five months from now, give or take. To finish off, here are some nice illustrative screenshots of 0.7 as it currently stands. Enjoy!

Tomb2Parl1Cryptorrr massive low 2 GerngDesert Crypt KingofspireCathedral

Courts, Tombs, Bug Hunting

0.7 Release

As mentioned on URR’s Facebook page, 0.7 will be released on Saturday, April 18th. This is (for once!) a 100% confirmed/guaranteed/absolutely certain release date, unless I die before then, in which case I will empower someone to release it for me. To remind everyone: this is the last worldbuilding release. As you’ll find when you wander around it, the world is now madly detailed, and contains every imaginable building ranging from crypts to cathedrals, townhouses to mansions, and banks to parliaments and slums to shops, with procedural graphics for everything within those buildings, ranging from walls, floors, tables and chairs to altars, reliquaries, tombs and vases.

Norwich and IRDC

Another quick reminder: if you’re in the UK or Europe, you should come to the Roguelike Development Conference I’m hosting at the awesome National Videogame Arcade. If you’re in the UK, you should swing by Norwich on Saturday 11th to listen to my talk at Norwich Gaming Festival. Now, onto this week’s update:

Courts

Our last building algorithm is complete: for courts! These will only spawn in nations which follow the “Penitentiary” or “Ordeal” justice policies, and appear in city centers. Again, I wanted to make them aesthetically distinct from all other buildings, which remains tricky when one’s not using a tileset, but I think I’ve managed to find another clear visual style here. They use lots of chairs in the various hearing rooms/courts/chambers, but they are set out in coloured “stripes” according to the wood of the chairs and the shape of the room. There are also rooms with just tables in, which will later contain court records of criminals, important trials, etc. The overall shape was inspired by the “Star Chamber” in English history – although it is generally agreed that the name of the court was based on its decor, I realized that I hadn’t created any building shape which was based on either a star (or a cross), so I utilized both of these for the external court shapes. Here are some examples!

Courts

Tombs (and Stairs)

I’ve finally done the last major graphical block in this release: the tombs. These are generated using a vaguely similar modular system to the nomadic khachkar graves discussed two weeks ago, and they vary in a number of ways. I debated at length whether or not they should ever have names on – given the extent to which that would give away the game! – and I decided that the answer was no. No matter how noteworthy the person who is buried there, the tombs will never have names, and will (as with much else) be understood/decoded according to their symbols and graphics, rather than text. As you can see, there’s also minor colour variation; tombs in flooded crypts will have a slight blue tint, those in desert crypts might have a fractional red tint, etc etc. There’s a huge range of pattern layouts – the ones below show three of the layouts (two lines, six squares, three columns) and a small portion of the possible designs that might be etched onto a sarcophagus; there’s also a whole bunch of different shapes/designs for the top of the sarcophagus, and a lot of pattern variation within that too, meaning that each sarcophagus consists of between 3 and 10 components each of which generally has between a dozen and several dozen variations. Each sarcophagus will, of course, be unique. So if you hear that Person X was buried “where the stars rise between the vines and the torch”, then…

Tomb2

Tomb1Tomb2

Other Stuff

I also threw together stair graphics, and ensured that the downside stair graphics can integrate correctly with graphics for wooden, stone, and ornate flooring (yes, I am aware the perspectives on these two staircases is different; that’s fine, you’ll never see them “together” in-game, and they proved easier to draw in the two different perspectives anyway).

Stair2 Stairs1

I’ve also worked on crypts, finishing them, and emphasizing the difference between under-cathedral crypts (in Theocratic nations) and under-graveyard crypts (in Monarchic nations). They each have a distinct set of rooms, though some of the rooms for the under-graveyard crypts won’t be fully “activated” until we have NPCs moving in 0.8. Also just done a host of other optimizations, slight changes, making sure the correct “quality” of tables/chairs/beds spawn in each building, blah blah blah.

Bug Hunting

I’m now onto the final bug-hunting phase of 0.7’s development. There are as ever a wide range of minor ones – things generating in slightly odd places, text that isn’t completely logical, incorrect grammar/typos, etc, but only a couple of major ones. As far as I can tell there are not any crash bugs, though, which is obviously a good point to proceed from. One of the major ones is an extremely rare but very annoying bug with external sources of light allowing the player to see “through” walls, but only at a distance; in all my playtesting it has only occurred twice, and whilst I would like to fix it this release, I’m not going to let the release drag on an extra week, say, if the only remaining issue is this bug.

Some Screenshots

Lastly, here are some nice screenshots: a nomadic citadel in the fortress of Khan’s Rest; an altar to Ahorim, The Grey Worm of the Nightmare in a crypt below a cathedral in the desert; wandering around in the Red Senate which rules over the Nation of Ghanari; and exploring the manor of House Pinnom, in the upper-class district of the city of Mourning Sun.

Blue lovelinessCryptorrrParl1

Parl1

Next Week

Who knows?! But hopefully a celebration of a successfully-passed thesis defense…

Mercenaries and Housing…

Just a short update this week, partly since it is only one week’s worth of development rather than two, and partly because I’m preparing for my PhD defence. But, nevertheless, things have been done. Before that, though, two things – firstly, your weekly reminder about the EU IRDC taking place at the UK National Videogame Arcade in Nottingham, which I am hosting. Come along! Secondly, I’m giving a talk on generating cultures and aesthetics at the Norwich Gaming Festival on Saturday 11th. Come along! Both are totally free to attend. I don’t have any other public talks planned in the near future (though nearly a dozen academic lectures at conferences in the next five months), but I’ll obviously let you all know when I do. It is possible I’ll be at this year’s GDC Europe, too. Anyway:

Mercenary Guilds

One of the last few buildings left to generate were mercenary guilds, which have now been implemented. These spawn in (most) city centers. Again, it is hard to make every building distinct, but for mercenary guilds I wanted the idea that one might be “browsing” for mercenaries – each room will be the home of a single person from the guild, who should differ significantly in abilities and equipment but still be roughly similar (I’m going to have guilds designed around a “theme”). Each room has its own randomly-chosen layout. The flooring is a square-tiled mix of wood (the brown) and stone (the grey) – it’s a small thing, but it’s hard to distinguish between all kinds of buildings when you’re only using ANSI! Which is to say: obviously you’re unlikely to go into a building with a sign outside without knowing what the building is, but I’m still trying to keep the interiors very distinct (or as distinct as possible). The woods for tables/chairs/beds are also cycled randomly for each chamber. The locked-door room will be the archives of that mercenary guild – lists of past contracts, etc, which will obviously be useful to your investigations – and may also contain a staircase down to a vault below, containing… well, who knows?

Guild1

Middle-Class Districts

I’ve redone middle-class district generation. Here’s an old example – this is, admittedly, a full release out of date (0.6’s middle class districts had a few smaller gardens, more trees/plants, etc), but you get the idea; much like an “upgraded” lower-class district, random housing patterns, and sometimes roads which end in nothing (or start and end in nothing). I had a few critical comments about middle-class districts after 0.6 and how hard they were to navigate and make sense of, so I decided to do something about them, and to just integrate them slightly more firmly into the rest of the city rather than feeling like a random add-on. So, here’s an old version:

Mid2

…and here are two new versions, for a “square”-aesthetic nation (with a religious building, a bank and a park), and a “circle”-aesthetic nation (with just a park)…

NewS

NewS

… and how it looks to explore and walk around:

NewS

Interrrr

Some things to point out. Firstly, there are now three types of houses (although all are treated alike in terms of what one might find inside and how the house itself generates): houses will walls and gates, houses with gardens, and houses with neither. I felt these needed a lot more variation, so they’ve got it. Secondly, you’ll notice the thickest roads are of different shapes, and these layouts – like so much else – relate to the aesthetic preferences of that nation. A nation with octagonal floor tiles and octagonal furniture will also have an octagonal layout in their middle-class districts (and so on for the other shapes). Thirdly, you’ll also note that all the plants (in this particular biome) are currently green; in some later version I’m going to add more variety to climate plants, add in a large range of unusual plants, and also add that to the ever-growing “clue” database (such that maybe certain plants only grow in certain nations, or are only cultivated by a few monasteries, etc?). I’m also going to have the colours of plants tethered loosely to climate, so that as you move around the world, you’ll see different “palettes” of plants, which will be a lot more interesting. Fourthly, the buildings are positioned at the intersections of the major roads – I wanted the middle-class district to look more like a true middle-ground between the rigidity and order of the upper-class districts and the randomness of the lower-class districts, and I think that by placing the special buildings more specifically, and updating the road system, but still having the district fairly tight and crowded, I’ve made it into a much better balance than it was before (since I think it used to look like a “slightly nicer lower class district” rather than something really in the center). Theaters have also been temporarily removed due to my uncertainty over, frankly, how the hell they are going to work, and that needs to be left until I have NPCs wandering around the place.

Unlike the mansions of last week, these are the exact opposite of handmade – almost nothing about the district, nor the buildings themselves, is handmade, and is almost entirely algorithmic. The games tries to place an appropriate number of rooms, and then path between them, and it allows situations where multiple rooms can lead onto one another rather than back into a central “hallway”. Here are some examples of some two-floor interiors for middle-class housing:

Midclass1

Midclass2

Midclass2

… and for some more unusual shapes:

M3

M4

Very happy with how these look now, and they’re the last housing type that needed finishing off. Everything from slums to the greater mansions can now be explored, and generate differently. Here’s a last shot, just because I really do like these doors:

Interrrr

All Houses

So, we can now take a shot at all dwellings, from the slums to the grandest of mansions. Here’s a large picture you should take a look at the full size of by clicking on it:

Spectrum

0.7 Release?

I accidentally reneged on my promise to never again promise release dates last week, and now I must pay for it. I am going to rescind all previous predictions and say: it’ll be out when it’s done. All my time not spent preparing for my PhD defence is spent on URR and there isn’t that much left to do, but it’s still going to be a very busy fortnight. I shall now once again swear to never make predictions of release dates again. Let us see how long that lasts…