Contiguous World Maps

Currently, all grids are contiguous on the human level. Which is to say the map continues scrolling as you walk to one side or another, and when you get close enough to a new map grid that grid is loaded. The @ stays centered in the screen at all times unless you reach the absolute edge of the map, in which case I believe it currently crashes, so please don’t test that and just take my word for it. Good. As of version 0.3 (due to be released in August!), this is changing. You will no longer be able to move contiguously between grids on on the human level, which is to say that when you choose a grid to load from the Travel screen, that grid and that grid only loads. When you reach the edge of a grid, it will cease to scroll and you will bump up against the edge of the map. If you try to move over it asks you if you want to go over, and if you say yes, it loads the next grid along, moves you to it and unspawns the one you’re on. You will therefore still be able to move across the entire world on foot rather than travelling, but it will be through distinct map grids. This is a significant change, but one with three causes. I hope to explain my reasoning as clearly as possible here, as I think this is a big positive move for the game.

1) Loading and memory. Loading times suck. People kept saying this about 0.2, and they were correct. Now that there are things to do in map grids loading zones are far rarer, but they’re still a pain and everyone hates them. This would hugely reduce the regularity and size of load times. Secondly, it would mean the same would take up a lot less RAM when running, as no more than a single map grid would be loaded. These aren’t the main factors (reason #3 is the major one), but I think they’re important nonetheless.

2) Contained player experiences. At the moment, if you encounter something that requires fighting (when there are things to fight), you’ll be able to keep fleeing and running across maps. And that’s ok… if you’re making a truly open-world game, and whilst URR is within an open world, it’s no longer so much an open-world game. I think there’s a definition issue here that could merit another blog entry where I ramble about what exactly these terms all mean, but back to the point – if you cannot leave the map grid that easily, then you are forced to deal with challenges within the map grid rather than simply fleeing from it. There is a place for fleeing, and I’ll  have to think about implementations, but I don’t want fleeing to be the automatic response. I also think there’s something to be said for making each area feel like a distinct area – you enter that area and explore that area. Open-world games have a very particular kind of exploration, but that’s not quite the kind I’m now after.

3) Doubling (!) the space of play. Weirdly, this change would actually give you over 50% more play on each grid without loading zones. ALLOW ME TO EXPLAIN. Currently each grid (by which I mean one icon on the Travel map) is 200×200 tiles. When you enter that grid, you enter at a point appropriate for the direction from which you can in from. If you enter from the north, you appear at 100/50 – so in the middle of the northern edge (i.e. 100 squares in from the left, 50 squares in from the top). The south-east spawns you at 150/150, and so on. The trigger for loading neighbouring grids is the player being < 30 or > 170 on either axis, as the picture below shows:

Exp1

In this image a ziggurat has spawned within the non-loading boundaries. If the player attempts to enter, for example, the pale green area on the right, it will load the grid on the right. Entering any of the light green corners would result in three full grids being loaded (which takes maybe 30 seconds). Believe it or not, this system actually means that less than 50% of a map grid can be explored without straying into a load zone! The grid is 40,000 squares, and a quick calculation shows that only 19600 of those squares are outside a loadzone. Whilst not perfectly accurate, the picture below demonstrates this to some extent. All four of the bars fit in, but if you were to fit in the corners, it would exceed the space in the central area:

Exp2

When grids do not load and sew themselves together, all 40,000 tiles in a grid can be used for gameplay. Until now I haven’t wanted to spawn any buildings within the loading zones because it would be even more annoying if things starting loading whilst you were exploring! This way you will never get any loading zones once you first enter a map grid – which will itself be quick – and buildings can be placed in all kinds of areas, allowing for rather more interesting map grids:

Exp3

…such as those which have multiple buildings that could brush up against the corners and the edges, and thereby doubling the amount of play per map grid by removing areas where I “cannot spawn buildings”. It also allows for a rather more interesting piece of gameplay for the player, from an experiential perspective – if you enter from the north, you now spawn at  the coordinates 100/0 – i.e. right at the top of the middle – and therefore can explore the entire grid and see what it contains, rather than the small size of the non-loading-zone forcing me to spawn the player basically right next to the ziggurat. From the playtesting I’ve done it’s lot more interesting to play when you don’t immediately see the grid’s contents. This will be taking effect this release, though I don’t yet know if multiple ziggurats will appear per grid or not, as that requires a rework of some code I implemented whilst assuming nothing like this would be the case. Either way, I think this is definitely the right move forward, but as ever let me know your thoughts in the comments. Next week: the final update before release?!

Plots, Permadeath, and World Gen

Firstly, many thanks to everyone who responded to my consultation thoughts about permadeath.  Between here, the Twitter, Facebook and a bunch of forums I had about fifty responses about the three-lives idea. Most people were against it, whilst a small number lamented the fact the game is gradually becoming less open world (more on this in a moment) and a few said the three-lives thing could work with some kind of story reasoning behind it. Quite a few also thought that a minute or two of rolling a new world – given that early-game death will be rare in URR, and that length of time is certainly nothing on DF – wasn’t too bad. I’ve tried to put as many of these comments as well as my own thoughts together, and I think I’ve found a good solution.

So, firstly, something about “open-world”. As I’ve been thinking about this, I’ve come to realize that there are perhaps two different things encapsulated in that term. On the one hand you have a world with a great degree of freedom – one you can move around in any direction you like (though with perhaps limits on certain buildings/dungeons early on) – and on the other hand you have a game that is “open world” in the sense of Dwarf Fortress. DF is open world in that first sense, but also in another sense – there’s no plot, no story, no objectives, etc. Maybe there are two distinct terms and I simply don’t know what they are, but I think it’s worth distinguishing between games where the world is open, and where the gameplay is… “undirected”? This puts me in mind of Mafia II – that had a wonderfully realized Goodfellas-esque “open world”, but because there was nothing to do except the main story missions, the gameplay was very linear (and the world was, I think, somewhat wasted).

Anyway, URR is most certainly staying an open world in the first sense of a planet with few restrictions on movement and exploration, and partly so in the second sense. I am keen to involve a story, but I do not want to fall into the Mafia II trap of having an impressive world with little do outside linear story missions. There’s a bunch of ways I’m navigating this – firstly, by simply making the plot a lot “wider” and requiring quite a lot of the world to be explored to complete. Secondly, obviously, the procedurally generated aspects mean more exploration of the world is required and there’s no way to know up front (except in quite broad parameters) what parts of the world will be involved. Thirdly, it’s not at all a linear story/plot, and will be playable in a large number of different orders and sequences (think Dark Souls if you have the Master Key). Fourthly, I plan for each area/challenge to be conquerable in a number of different ways depending on your character’s skill set, and the player’s preferences. There will also be a lot of optional activity which might make later activities easier – for example, if you need to move through a war zone, you don’t have to try and intercept some intelligence beforehand, but it’s probably going to help.

I am firmly fixed on the story idea. I have some ideas for that (I think!) are interesting, original, and can provide a lot of challenging gameplay. I therefore put out a consultation about lives and reloading. As above, most people didn’t like the three-lives idea, and I agree with most of the criticisms leveled at it. Thus, the model we’re going for is that of one life, permadeath, and you need to roll a new world upon death.

I was concerned about this system for one major reason – that it takes a minute or two to roll a new world. From talking to friends who don’t play RLs I have increasingly realized that my concern over three-second load times in-game and the like are maybe a little misplaced; however, a few minutes is still a chunk of time. However, I think this will be an acceptable solution for two reasons. Firstly, world generation does show you its progress, and once history generation is fully implemented, I intend to include counters and rapid updates showing you its progress. Based on my early experimentation of this, it looks pretty neat. But the second (and rather less trivial) reason is simply that although there is permadeath, and I intend to ensure there’s a lot out there that can kill you, there probably won’t be that many particularly early in the game. Unlike a lot of RLs which struggle from the problem of that early game being the hardest segment, I’ve been planning seriously to make sure this isn’t the case. A new player is unlikely to encounter rapid death both because they won’t necessarily be aware of where to travel and what to do, but also because the early game will be relatively (relatively) friendly. Having to reroll a world will be reasonably rare as a new player.

So that’s the model. I don’t think rolling a new world upon death will be too annoying as it should be relatively rare when you’re a new player, and as a more experienced player you should get much longer games before you do expire (if you do, that is). Also, due to the procedural generation, dying once after uncovering a small part of the plot will likely mean the next character in a new world might come across a different aspect of the story first. It will be interesting to see how players try to put components together, especially if they’re new to the game and only seeing small fragments of the plot with each character as they learn the game. I’m very much looking forward to this shift for the game – I think it’s a good way to meld the open-world I want to make, but also the narrative I want to write and maybe more importantly that sense of real progression you get from playing something like Crawl.

Lastly, a more general note. I’ve been very ill the last few weeks, and whilst I thought it had largely cleared up, it has un-cleared in the last week (hence why this update was so badly delayed). Once I feel better I think I’ll be able to get back on track, but I don’t know when that will be. Still aiming for an August release, but it’s probably going to be towards the end of August. Thanks everyone for keeping with me during this unusually long release – I do still aim for six month releases a maximum, and after this one and normality is restored in my non-URR existence, hopefully I’ll be able to stick to that.

Permadeath and World Generation

First, 0.3 update, second, general URR discussion. This week I’ve been focusing on finishing off everything except bugs and small features, and that’s going well. All the secrets and the basic inventory are fully implemented, ziggurats work perfectly, and I’ve done a lot of work on generating some rather nice door graphics. For example:

What lurks

(I am aware there should be vines trailing inwards – working on it). This coming fortnight I’m rushing around the country like a mad person gathering data for my PhD thesis and giving a talk about roguelikes at an academic conference (which I will try and either record of convert to some form viewable here), but by the end of this fortnight I’d like all graphics finished off, one slight movement issue with blocks, walls and the player character fixed, then I can move onto bug fixing. The requirements for the next release are really coalescing in my mind now as well, so I’ll probably post about those in the near future. Whilst this is all going on, the body of today’s entry is about longer-term plans, specifically about permadeath.

Permadeath provides many of the things I love in roguelikes and roguelike-likes (I’ll just call them all “RLs” for this discussion, so that’s everything from Nethack to FTL). A high level of challenge; a huge amount of tension at risky moments that few non-permadeath games can emulate; and a genuine feeling of progress and accomplishment when you reach new areas you’ve never reached before (particularly when they actually look aesthetically different – I am looking at you disapprovingly, Nethack, and you approvingly, Crawl). An additional factor I think shouldn’t be overlooked is game balance. Which is to say, game balance in something like Dungeon Crawl is very carefully designed around permadeath. If you remove permadeath from Crawl the game becomes almost trivial. If you could reload and thereby reroll every floor, you’d never have to deal with any nasty unique; you could reload before consuming mutagenic corpses to farm every positive mutation in the game; you could reload floors with treasure rooms or shops until they sell what you want; and so on and so on. Game balance in any good roguelike is not just broken but utterly destroyed if you don’t have a single life you can’t reload, because it hinges on the game distributing good items, bad items, easy foes and nasty foes towards you according to whatever algorithms govern them, not according to someone endlessly rerolling until they get a great outcome.

However. I got to thinking about permadeath in URR, and realized an issue. Generating a world currently takes around a minute – once history generation is implemented, probably in the next version, it’ll take maybe 2-3 minutes to generate a world. That isn’t much by DF standards, and there will be a lot of gameplay in that world, but it’s still a decent block of time. I originally thought the solution to this was to simply let you have new characters in the same world, as many as you want, but that won’t work. A lot more will be said on this later, but here’s the big reveal: URR is developing a plot (lots more on this in the future, but it’s going to be very interesting, and nothing like normal medieval-story fare). A weird and obtuse one, but still a plot (which the secret items in 0.3 are a part of). Having infinite characters in one world means you, like save-scumming in Crawl, cannot fail to complete the game, if only by just trying character after character until one them gets through each challenge.

That does not appeal.

However, nor does having to generate a brand new world every time you die. Admittedly combat and death are going to be comparatively rare in URR compared to most RLs, but combat is going to be brutal and bloody, so you will lose characters, or to traps or starvation on long excursions if not to direct combat. I don’t want to discourge new players by forcing them to sit through a new world-gen every time they die rather than being able to jump back into the action, but I don’t want the game to be made too easy by having infinite characters all contributing to succeeding in a single “campaign”. I’ve been trying to think of a solution, and I think I’ve developed one which is original, sensible, and could produce some interesting emergent risk/reward strategies.

The current idea is this. You have three “lives” in each world – when you die you can create another character twice. When your third character dies, that world is finished. Each life starts with 25% of the XP of the previous character which you can assign into any skill tree from the start, but none of the items – they are left upon the original corpse, vaguely likes a Bones file in another RL. This means when you die the first time, you don’t have to reroll a world, and can learn from your mistakes whilst keeping whatever progress you made. Also, and possibly more importantly, it could lead to interesting tactics. Once you know the game you could make one character to do one particular area, then kill them off and start a new one for the rest of the game – you might have got a specialist to solve one region, but you’ve used up a full character, and you don’t have many to spare, so that’s a risk/reward decision. Equally, losing a character not by choice could let you reassess what killed you and either create a new build to deal with the same, or explore another region with another build.

So that’s the current plan. There is no way to die in 0.3, so this isn’t implemented yet, but this is my plan. I’m firmly set on the “plot” idea as I have a lot of ideas for it (go read some Jorge Borges for some clues), and that necessitates true permadeath, but without the annoyance of endless re-rolling. I think it’s a good compromise, but I want to know what everyone else thinks. Let me know your thoughts! I should stress I have in no way settled on the three lives idea – maybe I will stick to normal one-life permadeath – but I’d like some feedback on the concept.

June Progress II

The last week  has seen more coding than much of the last month – having lacked the internet for the past week, very little else has been done aside from it. As ever, the release is a mix of things I’m making public before-hand and a few secrets I want people to find, but here the updates I can share. I’m aiming for release probably around late July at the moment, but it might get pushed into early August. The first half of July is almost entirely full with academic work, so we’ll just have to see how it goes. I’ll be doing a lot of playtesting towards the end of June once I have a pretty stable build, but ziggurats are looking all but finished.

Puzzles are 100% finished. There are five “levels”, finishing off with “boss” level puzzles. Even when I know how to solve the puzzles, they still take me some thought. Playtesting it with people who don’t know how they are generated under the hood have found them so far genuinely challenging and really interesting to solve, so I have high hopes. They include a vast quantity of procedural art (something like 200+ images?) and over 300 possible puzzle permutations, and that’s not even counting the clues. You’ll have to play A Lot if you want to see even a small percentage of these things.

Ziggurats are 99% finished. They generate the entire buildings, all puzzles generate (as above), the structures inside and outside match up, dungeons are three-dimensional, which is to say staircases lead directly up and down, not to random points on the floor above, and some areas can only be accessed from floors above or below. It makes for a really interesting structure to explore, and it’ll be all the better in the future once a greater variety of rooms exist. Special ziggurats also have secrets atop them, whilst by the end of tomorrow other ziggurats will have clues pointing you towards the special ziggurats if you’ve taken the wrong one. In the future these will be treasure rooms etc. Lastly, as well as “Look-up” graphics for blocks, I’m adding ones for doors, iron gates, and a few other things. They look pretty cool.

A basic inventory system is now in place. This is not what it will look like in the future, but suffices for the time being to deal with the few items now in the game. It won’t be redone for the release after this (probably), but certainly will once a decent number of items actually enter the game.

Next update will be next Monday, and since I now have internet at my new place, they should be regular until release (I know I keep saying this, and failing to keep to it, but I’ll try). By this time next week, ziggurats should be totally finished and I should be onto bug fixing and optimizations. I’ve had a very crazy idea for hugely reducing save/load times I need to try out, amongst other things.

As a final note, I’ve taken to streaming games on Twitch. At the moment I’m doing a Dungeon Crawl Stone Soup extended endgame run, but I might stream coding and playtesting or similar in the future if people are interested, and it could be a cool way to just chat with you guys! Let me know what you think, and see you next week (or on a stream). My account is http://www.twitch.tv/maasbiolabs, and I’ll probably be streaming some DCSS half an hour after this blog entry goes up…

Iain Banks Tribute

This post has nothing to do with URR. It is instead a tribute to Iain (M) Banks, one of my very favourite authors and inspirations, and someone who I was lucky enough to exchange correspondence with over a decent period of time, who died a week ago. If you have no interest in reading this, feel free to head off, and updates will be resumed next week (spoilers – lots of progress!), though not until Tuesday or Wednesday as I’m moving house and waiting for internet to be connected. Otherwise, read on, especially if you want to learn a bit more about an author who wrote more “books about games” than perhaps any other…

Banks-Old-NH-Cover1

I first encountered one of Iain Banks’ novels when I was still at school. I’d just read Dan Simmons’ Hyperion and Fall of Hyperion (and been suitably disappointed by their two dreadful sequels), and happened upon a book called “Consider Phlebas“. I loved it immediately – a list of varied and interesting characters, a well thought-through fictional universe (though it did get retconned just a little bit in later Culture books), and the birth of the fascinating fictional sociopolitical experiment known as The Culture. Since then, I’ve read almost all of Iain Banks’ books and he is undoubtedly one of my favourite authors per se, and certainly my favourite SF author (I’d place Wiliam Gibson in close second place). However, before we go any further, a clarification. This is not the place to complain about the concept of “literary fiction” and what a ludicrous inward-looking construct it is, but for the sake of this piece I will class his work as “mainstream fiction” – meaning everything under Iain Banks – and “science fiction”, meaning everything under Iain M Banks. Whilst I adore all the political and ethical explorations in his books, it’s all of his writing about games that has always gripped me the most.

Games were always a key theme in his books, both the mainstream and science fiction outputs. Walking on Glass centres around a pair of individuals appearently condemned to keep playing a selection of “impossible games”, including one-dimensional chess, Chinese scrabble, open-plan Go, spotless dominoes, and others, until they are able to fathom out the rules to these bizarre and obtuse challenges. It also involves a lot of discussion about the nature of the kinds of games they play, the importance of rules in games, and what can be learned from games (a common theme). Complicity‘s lead character plays a variety of video games, including one based on Civilization and another that could be based on several other sources (I am not sure which one, if any, is the definitive inspiration). Consider Phlebas features a gambling game called “Damage”, which appears to be a combination of poker, gladiatorial combat, and some kind of mind-game. Inversions is, on some level, entirely a game played between two siblings to see who could more successfully influence the outcome of a civilization, going into that civilization from a point of such power and knowledge that those in the society in question seem like little more than game-pieces. Surface Detail discusses the specifics of war, of which many parts are fought in virtual arenas quite clearly analogous to various games. Other, more minor game references also abound – the Steep Approach to Garbadale is about a family who created an immensely successful board game; the rituals in the Wasp Factory resemble a kind of cruel, Battle-Royale-esque game. However, along with a small number of other authors, Iain wrote one book specifically about games and those who play them.

The Player of Games is, unsurprisingly, his work most focused around games. The lead character is one of the greatest “game players” in his civilization, the Culture – one where all-around gaming aptitude is more valued than skill in individual games, something I wish carried over to eSports in the real world – and finds himself attempting a game more complex than any he has ever encountered before. This is ‘Azad’, a game played across multiple boards the size of rooms, with vast numbers of different pieces with all kinds of stats and moves, and that he comes to find embodies ideas that he’s seen in games before, but never all in one place (which is to say, there’s nothing new under the sun in one regard, but in another way it’s the combination of ideas that matters). The ideas the game deals with are fascinating by themselves, but much of the book revolves around the lead character’s state of mind, how he approaches the game and how he thinks about games.

As I discussed with Iain in several letter exchanges, he managed (quite accidentally, he said!) to capture perfectly the feeling of victory in a difficult game. There’s a line in in where the lead character says he “exults” upon winning. I think that’s a perfect choice of word, and more accurate than the depictions one normally gets of the joys of winning; it’s jubilant and all the rest of it, but it’s also somehow a little gritty, not very sporting and – almost – something to be ashamed of? That was the first thing that struck me as tremendously accurate, and it’s also interesting because of the emotion he apparently feels upon winning. As well as the raw skill needed, I think a vital challenge for certain kinds of game where there is a lot “at stake” – poker, classic roguelikes, EVE Online, XCOM/Diablo on Hardcore, whatever – is the ability to remain stoic regardless of outcome. Celebrations upon a big win should be avoided just as much as beating oneself up over a terrible loss; even though he never does anything like leaping up from his chair, pumping his fists and trash-talking his opponents, I think it’s very accurate how he still privately delights in victory – despite the many thousands/tens of thousands of wins presumably under his belt – but has learnt not to outwardly show it or let it affect his play. The book is a fascinating piece of work about games, probably the best literary treatment games have ever received, and I think a description of gaming mindsets better than that in any psychology journal or non-fiction work.

I dislike hagiography, so let me say lastly – not all of his works were brilliant. Some of his mainstream novels repeated identical themes (“Scottish family with dark secret!”) whilst two of his SF novels, Inversions and Matter (especially Matter), basically read as a desire to write a fantasy novel but wanting to shoe-horn them in to an SF universe. I have a private hatred of mixing genres for reasons that might be another blog entry if I fancy rambling about it in the future, and these two both really ticked that box and bothered me because of it. He could sometimes indulge a little too much in horror and brutality for its own sake, but at the same time was able to present horrific things – particularly about war, or the lengths people can be driven to – in a mature and intelligent light when he did it well. I found his political and moral positions to be a real inspiration as well, but that’s another post in its own right. Despite the rare shortcomings of his books – I think he would have benefited by perhaps reducing the prodigious rate of his output just a tad – his body of work remains one of the strongest, most intellectual, most ethical and most original produced by any author from the last fifty years I’ve read (though your Pynchons, Stephensons, Ecos, Borgeses and the like are certainly in the same league). Having been lucky enough to exchange correspondence with him, he’ll be sorely missed by myself and, based on the Banksophilia page, a not insignificant number of others.

Ultimately, as others have suggested, we can only hope the Culture is real, the good ship Arbitrary was overhead, his mindstate was saved, and his vision of what human beings could be is not as distant as it always seems. Despite much of this post being about games – partly because of the nature of this blog, and partly because that was what I felt most moved to write about – little suffuses his work as much as his commitment to informed and ethical lives, whether in games, war, love or anything else. Living by the standards he set is a high bar, but one I think worth aiming for.

IainBanks