A vast, immense, terrifying update this week. A huge amount has been done in this past fortnight: almost everything required for 0.7 is finished except for some remaining procedural graphics and the last two remaining building interior algorithms, which I’m currently putting together. My intention/hope/plan is to release 0.7 on April 4th. My thesis defence is coming up very soon and I’m preparing for that, so I don’t know if I’ll be able to perfectly hit this deadline or not. In the mean time, though, bask in the ridiculous amount of new building generation! Though first, I must draw everyone’s attention to this Rock Paper Shotgun piece on Dwarf Fortress, URR, and general procedural goodness, which I highly recommend checking out, and to this year’s European IRDC which I’m hosting at the National Videogame Arcade. Please sign up if you’re planning to attend! Now, onto the update.
Mansions, Part II
Firstly, I’ve finished the final set of mansions – the largest ones, found only in upper-class districts, and from which the player will begin their quest from 0.7 (or possibly 0.8) onwards (since the player is a lesser noble). Mansions of all sizes are among the more hand-made elements of the world; there are still many, many variations, but the algorithm which constructs them is more about piecing together and differentiating between a range of hand-made chunks, rather than the algorithmic placement of items, rooms, etc, but that’s just a necessity of the detail (and more importantly, logic/realism) I wanted from these: I tried several algorithms which just weren’t given me outcomes of the sort I wanted, so I’ve gone this way instead. There are ten shapes for the largest mansions; each shape has three different upper level layouts, three ground floor, and three basements, and each of these varies in turn according to colour scheme, table/chair placement, what room is used for what, and also another difference. If the mansion is the one the player starts in, the room in the middle of the ground floor below – containing the nine statues, in three sets of three – will contain nine things, be they paintings, statues, books, or something else, each of which will give you a single initial clue towards the nine items you need to uncover the locations of in the world. For this release, all nine are placeholder statues, but that room will be where you want to start.
Here’s an example of a ground floor and a top floor, with four bedrooms:
… and another (you simply must enlarge this one and look at it full-screen, just look at the flooring! The architecture! I am almost appalled by just how satisfied I am by how these mansions look):
… whilst the basements look much like they do for the smaller mansions, i.e. stone/wooden flooring (if servants’ quarters or slave quarters, respectively). On the upper floor, you will also be guaranteed to find one special item in all the upper bedrooms, which you may discover or be hinted towards by various means; however, although the player’s starting mansion will contain the nine initial clues (and other mansions won’t), it is other mansions which may contain special items in the chambers of the nobles in that family, whilst your “starting mansion” will not. Therefore, your starting mansion will get you going on the hunt, whilst other mansions – if you can find a way to gain access – may have things to aid you on your quest. You also see those empty rooms on the ground floor? A storage room, and an armoury, soon.
I’ve put in the generation algorithms for Officers’ Quarters, located in Military Districts in large cities. There will only ever be one per civilization, and will contain the highest-ranking military officials (and, next version, presumably a logically significant amount of protection); there’s always a decent number of 5×5 chambers, and then one larger chamber for the highest ranking military official in that army (whatever that may be). Here’s a reminder of how one of these buildings might look: flags and fountains for the nation in question will always be found outside, along with a reasonably ornate road pattern, and the OQ is generally either a “corner” shape, or a “trident” shape like the one below:
For the interiors I decided to use the ornate floor type again here, but once more in a visually distinct way; Officers’ Quarters will always have a “strip” of ornate flooring in the middle, and use ornate flooring in the bedrooms of the actual officers, but then will use stone flooring (the “second tier” floor type for interiors) for the rest of the building. The game places one from a large number of possible patterns of tables/chairs, and then places one from a long list of patterns of pillars/walls on top (deleting any tables/chairs that need to be deleted in the process!), and voila – you have the ground floor. So here we have three possible lower floors from another civilization to the one above, and three upper floors, in one shape:
The differences are small across a single “shape” of building, but across civilizations, building shapes, floor colours, we actually get a lot of variation, whilst (as ever) maintaining a clear visual style which denotes that these are Officers’ Quarters, and not anything else:
As above, in 0.8 you’ll be able to find the highest-ranking military officials here, but it will naturally be a location which is closely guarded. I’ve also worked on the generation of armouries in military districts, but since these are very “practical” buildings (i.e. not ornate in any way), and since weapons and armour and the like are not yet generating, they are not especially interesting! Likewise for warehouses in market districts; done, but currently empty. What is interesting, however, is arenas:
Arena interiors now generate for arenas in feudal nations. The arena consists of three components; an overall building shape, of which there are several varieties; a shape for the central “arena” section (the section within the grey symbols, which can be seen through) and the location of various candle stands which keep the entire arena constantly lit, regardless of where the player is located; and then a pattern of chairs (of which there are many) which is then placed in any remaining tiles. The initial “lobby” leads to open doors that lead to the chairs, and also a locked door (which in 0.8 will be guarded) towards an interior area where contestants will get ready, and where you will be admitted to if you intend to fight within the arena. I also made a very rare alteration here: all the chairs have a randomized wood colour (based on woods in that climate zone, of course!) rather than just picking a single wood colour for the entire building, which I do for every other interior. I like the effect it produces. I have also added the code (currently unused) to sometimes spawn arenas which might have certain… environmental hazards. Here’s an example of one I explored:
I thought this gif was especially neat: step through the arena, talk to those in charge, decide to throw yourself into the ring, step out, and suddenly the arena opens up, lit through day and night by candles, and surrounded by (in 0.8 onwards!) a host of NPCs keen to watch the combat…
Also: want more gifs in future blog updates? I think you do, but let me know.
Added gallery generation! These spawn in city centres and will always contain four procedurally-generated paintings (which will always contain tiny clues, cultural/historical information, etc). One issue was to distinguish this from the lower floors of Officers’ Quarters, so we can see four paintings (the white diamonds) and a pattern of chairs. I took the randomized chair colour idea from arenas and reapplied it here, and had the game place chairs in blocks or along diagonals at different distances from the walls. It’s very simple, but the main function of these buildings is simply to house paintings (and, in the future, relevant NPCs who can give you useful information) – they aren’t the most exciting, but they function. Painting generation coming soon.
I’ve now developed the interiors for embassies. I wanted to make these very close-knit and very dense, so the game generates a number of closely-linked offices, picks a layout for tables/chairs within them, then generates. The ambassador’s office (the room with the upward staircase) will always contain a few items of note from their home nation, and the ambassador’s quarters can be found up the stairs.
Mints and Banks
The interiors of Mints and Banks are now generating! I once again found another variation on ornate/stone flooring: in this case ornate flooring runs around the exterior of the bank. The code is in place to spawn guards on each vault and a teller on the chairs/table in the middle, and will be used in 0.8. Here’s a bank as you will normally see it, with the vaults un-explored, and then the same bank after the player has (in later versions) found a way inside:
Mints, however, are rather more exciting now, though obviously also still lacking in actual, y’know, coinage. Whereas anyone will be able to enter banks, mints will obviously be under heavy guard, and some serious firepower or political might will be needed to gain entry. Here’s an example of a mint (with the same ornate-flooring-outline idea to aesthetically link them to banks) where none of the vaults have been opened:
…and here’s another one in another nation where the vaults (which will soon contain that sweet, sweet money) have all been opened:
The staircase in the middle leads down to an underground vault which will contain un-minted bars of gold/silver/whatever, and also probably some coin presses too. These areas will be much more lively come 0.8/0.9 once NPCs and trade are up and running (but also much harder to access!). I’ve also, lastly, temporarily removed currency exchanges from generating; I need to think very carefully about how those are going to work, and where they should be placed, and how that will interact with the player’s actions around the world, and how to avoid it becoming deeply annoying/grindy to switch currencies. I’m now thinking about a system where there are no currency exchange buildings, but rather individuals stationed at every city gate who can perform the service for you? I think that would be better.
All the interiors for hunter-gatherer civilizations now generate, though there really isn’t much to see here yet. I won’t be really focusing on these for a release or two, most likely. All the flooring in these buildings is the same as that outside, e.g. taiga, tundra, tropical, etc. You can wander in and look at the lovely doors, though:
Reliquaries, Incense Stands, Khachkars
This fortnight I’ve also created the procedurally-generated graphics for reliquaries. These are found in cathedrals only (i.e. only in one location per religion), and there will always be more reliquaries in a cathedral attached to a theocratic nation than one attached to any other kind of civilization. These all have a distinct symbol on the front which one might find elsewhere in the world. They’re quite ornate, and their graphics draw primarily on christian reliquary iconography, but also some sources from India, Japan, and Islamic art. They will naturally be locked by default, and – one assumes – well guarded, but will also contain things of either great use, or simply great value. Here are some examples:
I also did the graphics for incense stands in cathedrals and religious buildings – these can spawn instead of things like vases, gongs, statues, fountains, etc, and are just another kind of variation. Happy with the algorithm that puts these together: it’s fairly basic, but I think it looks good, and they’re very distinctive.
I have also added some very, very rare graves to nomadic citadels where only the absolute elites are worthy of burial (the rest are presumably disposed of somewhere else in the desert). For now, all of these graves are Khachkars since I only have time to create one algorithm for those and not for other grave types, but in 0.8 each nomadic civilization will have a different form of burial (cairns, stele, various other ideas). Naturally, all the symbols on this Khachkar might be important…
Some General Screenshots
Here are some nice general screenshots, though they both happen to be in cathedrals. Enjoy!
There’s only really the remaining graphics left to do now. Things like reliquaries, finishing off all the tables/chairs/beds variations, and the like. There are also a few minor bugs that have arisen in 0.7’s development which I need to fix (primarily one involving external fixed sources of light), and I’m not really sure how long that one will take. I’m pushing for a release on the 4th – there are still a hefty number of small bugs and improvements I want to sort out, and I want a couple of days of playtesting beforehand to ensure I release the best possible version. My PhD defence is in the week starting the 6th, so depending on preparation, outcome, blah blah, the release might end a little after that. Hard to say. Either way, though, 0.7 is in its final stages! Which means the final worldbuilding release will be out in the next few weeks. Hype.