The Problem with the Roguelike Metagame

I have recently been thinking (and having several fruitful email exchanges) about metagame unlocks in roguelikes or other procedurally generated games: by this I mean things like player classes in TOME, ships in FTL, items and characters in The Binding of Isaac, and so forth. When one considers the design rationale behind these types of unlocks, there are several obvious justifications normally given:

– Extend Time / Gate Content. The most obvious one: the more “content” there is in your game and the longer it takes to access it, the longer the player will play your game for.

– Sense of Progress. The player dies in a permadeath game and feels angry or upset because nothing was achieved – unless, so the argument goes, they also unlocked something in the process, in which case that death no longer feels “meaningless”. Although making instinctive sense, this argument is the crux of the problem, and will be returned to later.

– Maximize Variation. The longer the developers hold off on showing the player everything, the more varied those things will seem as the player slowly comes to discover everything the game holds, rather than having it all dropped in your lap at the start.

– Learning Curve / Gate Content. This is true in several ways. Firstly, unlocks slow the learning curve down because you aren’t given everything at the start; secondly, it also means that you can learn something “new” when you unlock a new whatever, meaning that if you have some advanced and challenging classes, and some simple classes, you give the player the simple ones and let them unlock the challenging ones. I am also aware that I’ve used “gate content” twice, but that is because as a phrase it could apply to both of these; you gate content to extend playtime, but you can also gate content in order to offer a slow trickle of items/classes/ships/weapons/whatever to the play in order to aid their learning process, rather than dumping them in a massive world of complex interactions.

Now, obviously some of these are related – for example, gating content means a sense of progress when you unlock that content – so these three are not perfectly polarized, but those are effectively the four justifications.

However, as my considerations have continued, I have come to a conclusion: that these unlocks actually weaken the abilities of players to win the game, rather than strengthening it (as one might think). Failing to offer a player the full potential spectrum of things at the start of the game may, indeed, encourage players to stick around longer and offer a softer learning curve, but it also (as I will argue in this piece) means that fewer players will ever complete the game than if all unlocks were available at the start. And surely, ultimately, the “real” satisfaction comes from completing a challenging game, not from interim achievements along the way?

My claim, in essence, is this:

The existence of an unlock system tricks the player into thinking their “progress” derived from a failed playthrough is in the unlock, not in the skills and knowledge they gained (or should gain) by understanding how they died. This, in turn, makes for weaker players (and/or lowers the skill ceiling some players can achieve) by failing to “force” players to confront their decision-making processes, and thereby improve at the game.

Now, to explain this in a little more detail.

When players die in a roguelike, it is easy to feel one has achieved nothing. In games so heavily focused around winning/ascending, it is difficult not to feel that you’ve just wasted hours, or sometimes even days and weeks, on a character who then eventually died: you didn’t find the aligned altar on the Astral Plane, you didn’t leave the dungeon with the Orb of Zot, and you didn’t defeat the Rebel Flagship, so… what was the point?

As players get better at roguelikes, many come to realize that this is not the case: a death is always a learning opportunity. A reflective player will look back and realize (and here I draw from the DCSS statement of game philosophy) what it was that went wrong, which in roguelikes generally falls into two categories. Either a) some significant strategic mistake was made several/many turns/minutes/hours ago which doomed (or almost doomed) the player character to destruction at a later point, or b) an immediate short-term tactic mistake was made (or sequence of mistakes were made) which, although prior strategic decisions had been sound, led to the player character’s death. Both of these are easy to reflect on – for the first, a player can wonder if they chose the wrong skills for their character, the wrong items at the shop, the wrong build, etc; and for the second, a player can wonder if they should have retreated, used a panic item, not got into that fight in the first place, treated a certain enemy with more respect, understood more deeply how a certain mechanic worked, etc. In a roguelike, death should be first and foremost a learning experience: one which encourages reflection, and therefore (hopefully!) improvement.

However, instead of being forced to reflect on your own failings as a player and try to improve last time…

You get a ship. (Or a class, species, character, or whatever).

FTLLL

The important point here is this: whereas the player must figure out they are meant to learn – no roguelike says “You died! You should think about how you died. Would you like to play again? Y/N”, and instead it just leaves you to your own devices to figure that out – the unlock is obvious, clear, and explicit. When you’re given an obvious reward, few players are ever going to think about the non-obvious rewards, especially when the obvious rewards appear to enhance their chances of success in the game. I therefore fear that the player comes to learn that their deaths are meaningful insofar as they yield new unlocks, not insofar as they yield new information or understanding or ways to avoid their demise.

In contrast to “modern roguelikes”, most classic roguelikes give the player everything from the start:

Craww

In Dungeon Crawl Stone Soup, for instance, you can immediately pick any species and any class and any religion. This means that you can immediately try other options, other builds, other religions, other classes, species, and so forth, and even if you keep dying as a Minotaur and then try an Octopode (a foolish move since the latter is a far more challenging species), even a new-to-roguelike player will surely learn: changing species isn’t going to save me. Sure, there are probably some species which are slightly more in-tune with a player’s overall playstyle (I, for instance, prefer melee characters in almost all games with the classic melee/ranged/magic triumvirate), but picking one species over another will almost never be the difference between a player who can win and a player who can’t, as there are so many skills in DCSS and other roguelikes which are transferable across multiple classes. Since you “get” nothing for your death, therefore, and since you quickly learn that choosing other options adds variety but doesn’t strengthen or weaken your characters much (they do a little, but only a little), your only option to improve at the game is to learn from that death.

To conclude this point, let’s have a look at FTL as an illustrative case study of this phenomenon which, I feel, should concern those of us who make roguelikes or aspire to make them. There is something very interesting about the FTL community (at least those parts of it which I have seen/interacted with/spied upon). The community seems to be divided into two groups – a very large group of players who find even Easy mode to be extremely challenging, and then a smaller (but not tiny) group who find Hard mode to be trivial (or at least perfectly winnable with a little concentration and effort). As I mentioned in Crawl, it is extremely unlikely that changing species will earn a losing player a win, although it is of course possible a player’s skill will be so precisely balanced that they can come within an inch of victory with weaker species, and win with stronger species. Expanding this to FTL, we can graph (loosely, and without axes) the community as looking something like this from my experience and examination:

FTL

Now, naturally there are some small categories of players not shown here (who can just about win on Hard, or just about win on Normal, and so forth), and as I say, this is based on my reading of the FTL community, but I think these categories are comparatively small, and the ones shown here are the important ones for our discussion. There seem few (again, this is my judgement from a long time in the community, not quantitative academic research) FTL players who can master Normal, but are never able to progress onto Hard: Hard simply requires using the same skills as you do in normal, but doing so more optimally, more carefully, more often, or more intelligently; and, in some cases, learning some fairly simple microing skills which can be picked up from a quick view of a Youtube video. Once a player has understood the game well enough to beat Normal, it seems they will almost always be capable of progressing onto beating Hard, and then becoming a player who can make a solid attempt at beating Hard mode every time.

However, the focus here is on that yellow band of players: the tiny percentage who cannot beat the game with the Kestrel A, for example, but can with the Mantis B or the Crystal B or one of the other amazing ships. My point is this: this sliver of the player base is tiny. Were this is a large part of the player base, then I think ship unlocks turning player attention away from their own learning processes would be fine, forgivable, and maybe even desirable, if it led to a lot of players beating the game. However, for every one player who can just about beat the game with the strongest ships which they unlocked, I would argue there are more players who don’t fully appreciate the importance of learning from deaths, and fill up the FTL forums with those endless comments of “the game’s all luck!” and so forth, because ship unlocks distract them from understanding (or having any chance of ever understanding!) that they should be learning from their deaths. It runs the risk of fostering a very undesirable mindset: that the game is to blame for their deaths. Once a roguelike player starts blaming the game instead of blaming themselves, it’s hard to return to the light and realize that, in any well-made roguelike, a player’s deaths should always be their own fault, and a skilled player should win 100% of the time (which FTL comes extremely close to adhering to). By seeing an unlocked ship, players fixate upon it, are distracted by it, and don’t even consider the possibility of some other outcome from their deaths. Yes, of course, just dying with no intermittent reward is brutal: but I think it breeds stronger players in the long term.

Therefore, to conclude, I would argue that the extent to which unlocks hide player learning is far greater (in most cases) than the extent to which strong unlocks will help weaker players to victory. Yes, of course, in some rare cases unlocking the Mantis B will help an FTL player who has never won before win; but in many more cases, I believe, the progression of unlockables distracts players from mastering their skills, and makes players believe that they only need this item, this powerup, this character, or whatever, in order to finally secure that first victory; when in fact, of course, a tenet of good roguelike design is that a skilled player should be able to win 100% of the time regardless of starting conditions (or as close to 100% as possible), and Isaac and FTL and TOME certainly adhere to that.

In summary:

If the game is always winnable, then it follows that your starting class/ship/whatever doesn’t matter; if that doesn’t matter, then players are wrong to think their new unlocks will “help” them towards victory; and if that’s the case, then it is potentially detrimental to have these unlocks which hide learning outcomes beyond the latest shiny item/class/whatever.

A few final notes. Firstly, I realize this is a contentious hypothesis, and I am sure some people will disagree: that’s good, I want to foster debate. Secondly, I aim to critique these games, but not criticize them – I think FTL is a tremendous game, and likewise its contemporaries in this entry, and I think for an experienced roguelike player who understands the metagame learning outcomes, the ship unlock system is fine; but I remain confident that it weakens the average player’s skill (given how many people playing FTL will never have played a classic roguelike), and that this is a clearly undesirable outcome (which is not to say that other outcomes, like a shallower learning curve, are also bad; metagame unlock systems are most likely a mixture of desirable and undesirable traits). Thirdly, I don’t mean to present players as feckless fools who are easily compelled by a shiny bauble; however, one must face the compelling evidence that the majority of players find roguelikes extremely challenging, that a lot of players instinctively blame “the game” when they lose, that the idea of learning-from-deaths in PCG games does not come instinctively to a wide range of players, and that it is much easier to think one needs a new unlock to beat a game than to actually study and focus on the game itself. Fourthly, of course, there is nothing inherently wrong with pursuing “achievements” over “victory” – but one has to assume your average FTL player would, indeed, actually like to win the game at some point… but might struggle to do so when new ships, not their own skill and reflection, seem to be the way to success.

EDIT: in light of some comments and discussion, a few additional thoughts. Firstly, people do of course play games for a million different reasons, and that’s great! I’m speaking here purely from one perspective, probably a “classic roguelike” mindset (whatever that may be). Secondly, as I do mention above, I am not arguing that metagames are terrible; I actually have no issue with them per se and enjoy many of the games with metagames in, but I stand by my hypothesis here about the risk of “masking” in-game learning. Thirdly, player-bases for classic and modern roguelikes are certainly distinct (though overlapping), and that merits further analysis. Fourthly, there are of course demographic questions of “classic” players and “modern” players which cannot be addressed here. Fifthly, to repeat, the only purpose of this post is to try to open a question about metagames and player learning, not to insult any games, nor their players. I welcome all thoughts, whether you agree with this proposal, or think I’m talking nonsense, or anywhere in-between. Let me know, but do please keep it civil.

EDIT II: Please don’t fixate on the graph. I meant it to purely illustrate (in the literal sense of that word) my theory. Nobody has sound demographic data on the interaction between playing difficulties, beating difficulties, and player attitudes which I’m discussing here – these are just my reflections from a long time in the community. Please try to discuss the question of metagaming and skill and learning, not the bloody half-assed graph!

Policies and Nicknames (Part 2)

Well, I almost missed a weekend update for the first time in over a year, but in my current timezone (Germany) it is still Sunday, so here we are! Just a quick one this week, but I’ve got a few really long and interesting updates, and some more abstract discussions, scheduled for the coming weeks. However, since this entry is rather short, here are four of my most recent conference/lecture presentations, in no particular order. Enjoy!

Talk to AISB AI & Games conference on designing URR’s upcoming NPC AI:

Talk at a conference on literary dystopias about Command and Conquer: Tiberian Sun

My main talk at DiGRA about Japanese arcade culture, danmaku games, high scores, and some other cool stuff (a full paper version is going to be published as a chapter in a book on Gaming and East Asia in 2016)!

My secondary talk at DiGRA about civilians in the original Command and Conquer

Remaining Policies

Thanks to everyone for their ideas on the remaining policies. I realized as I read through the suggestions that something had been a tad unclear: Tribal Knowledge, Chiefdom and Escort Cavalry are policies which can only appear in hunter-gatherer and nomadic societies, and are therefore rather like “placeholders”, so suggestions for those – although there were some great ones and I might integrate them as general buildings/NPCs/etc! – won’t be directly integrated into the policy system. So, without further ado, the Militia policy will result in citizens owning weapons in their homes; the Imperialist policy will allow that civilization to seize colonies (currently all feudal nations can do this, but this’ll therefore be changed); the Hegemony policy will mean that race (which is to say, skin tone) will directly affect citizens in that nation in some way, but I haven’t yet decided precisely how; and the Vigilantism policy will cause bounty offices to spawn, listing wanted individuals and the bounties on them. That means interventionist – by which I mean covert operations, spying, espionage – remains undecided.

Nicknames

So, as well as city nicknames, I’m working on nicknames for people. This means both historical figures, and living figures who the game considers important. Right now I’m splitting this into two categories: people from important noble families have a certain generation algorithm underlying their nicknames, whilst anyone else who isn’t high-born but has still become “important” will have a different generator. Firstly, if someone is from an important family, the game looks at the coat of arms for that family. If their coat of arms contains a “distinct” pattern, it will go to a unique generator for that pattern; if it doesn’t, then it will default to a more “general” generator. This generator can sometimes use words from the terrain of the homeland of this person as well.

So, for example, let’s say someone comes from an ice/tundra area, and their coat of arms contains the pattern of the dragon flying “upwards” (I’m sure many of you will have seen it). They might be nicknamed “The Roaring Breath of the Ice”, “The Adorned Wyvern”, “The Drake of the Hailstones” or “The Ennobled Dragon”. Alternatively, someone who hails from a temperate region and has a coat of arms containing a trident might be nicknamed “The Halberd of the Bluffs” or “The Invested Spear”; someone from a family with a harp on their coat of arms and who lives in the desert might be “The Singer of the Dust” or “The Sand Melodist”… and so on. Alternatively, if a coat of arms is generic or geometric enough to not merit any special words, it instead defaults to a name based on the policies of that person’s nation: “free trade” as a policy might yield “The Glorious Merchant”, “frontier” as a policy might yield “The Grand Marshall”, “theocracy” yields “The Sublime Conduit”, and so on. I still need to finish off some of the generation possibilities, but these are basically done.

And that, I’m afraid, is all for this week! I’ve been at a conference so haven’t been doing any programming this week, but there’s a lot of cool stuff on its way. See you all next week for probably a URR update, or a discussion of one of the many interesting game-related things this conference has got me thinking about!

Policies and Nicknames (Part 1)

Firstly, thanks to Rainer Sigl for asking me for an interview recently: we went into an incredible amount of depth, and you can find the English transcript of the interview here, and a German summary of the interview here. Go check them out!

In the mean time, this week I unfortunately haven’t been able to get any coding done, and the same will sadly be the case for the next seven days – I’ve been finishing off an academic book chapter which is due in very shortly, as well as doing some writing for various online game publications (links will be posted here once my pieces are published), and also writing three different conference presentations for three talks I’m giving at DiGRA in Lüneburg next week (so once I upload that, and my previous set of talks, I’ll be uploading six sets of slides for your perusal! I’ll get around to it folks, I promise). So, this week and next week we’re going to talk about some of the more abstract intentions/plans for 0.8 onwards, then hopefully after that we’ll be back to specific updates once I get working on 0.8 again upon returning from Germany (week of the 18th onwards). Two big abstract/worldbuildy changes in this release alongside the development of NPCs (!!) are policies, and nicknames, so let’s talk about these.

Policies

During the development of 0.7, I found myself making a major change to how national policies work. Originally the idea was for them to give abstract benefits to the player – one policy might yield a player who belongs to that nation extra strength, for example – but I found this increasingly uninteresting. So much of the game’s mechanics are meant to be about figuring out and understanding the generated world, and I realized it would be a lot more interesting if policies directly affected what spawned in each nation – so the macro of a nation’s political ideologies and policies then determine what buildings appear (or not) in cities, towns, within buildings, etc.

Policy Table 08

So, a pretty simple key. Green effects are policies which don’t relate to shops; yellow policies relate to types of shops which can spawn in that nation; which the red ?s, funnily enough, are policies I haven’t thought of a good effect for (any ideas?). Escort Cavalry is a nomadic-only policy, and Chiefdom is a hunter-gatherer only policy, but aside from those, any of these policies can spawn for any feudal nation (Monastic is in red because it is a new policy I haven’t yet added to the game or created an image for). At the bottom you’ll see two binary possibilities: from 0.8 onwards, nations will either be slaving nations or won’t be, and nations will either use gunpowder weapons, or won’t.

With this system policies will therefore seriously affect (I hope) a player’s path around the world and choosing which nations to visit, knowing that certain shops will only appear in certain nations, some will be more/less hostile to foreigners, some have different systems for payment (or not) when moving around cities, some nations will have different punishments if the player decides to commit a crime within their land, etc. Should add an interesting level of grand strategy to the player’s movement, and be a lot more interesting than “abstract policies” which affect the player, but fail to distinguish between nations.

City Nicknames

Credit for this idea must go to Retropunch on the Bay12 thread for URR. He suggested that I could add some distinguishing factors to cities which both make them stand out more from each other, and add the potential for nicknames. In this release I’m aiming to add this in over a dozen ways to make cities more distinct, and add in another “clue” – i.e. the nickname – by which cities might be identified. This means the generation algorithm for a small number of cities will be tweaked to ensure that something very noteworthy spawns in/around/throughout a given city, and then an appropriate nickname is generated. Some examples:

City with many slums: “City of the Downtrodden”, “The Evergrowing City”, etc

City with many gardens: “The Flowering City”, “The City of the Hundred Gardens”, etc

City near volcano: “The City of the Inferno”, “The City of the Red Mount”, etc

Slaving city: “The City of the Masters”, “The City of Shackles”, etc

City with many statues: “The City of Stone Watchers”, “The City of the Grey Men”, etc

And so on. I’ve got around fifteen ideas so far for feature/nickname combinations (you’ll be able to find the rest in 0.8!), so maybe five cities per playthrough will be granted some unique “overlay” (like lots of gardens, lots of statues, etc) and a nickname to go with it. So then the player will sometimes be told “Travel to [ City Name ]”, but will instead sometimes be told “Travel to [ City Nickname ]” – a small thing in gameplay terms, but something which’ll add some nice extra variety to the world’s cities and help the player remember which city is which. The idea of the nickname in general seems like something very promising, so I’ve also been working on adding nicknames to other things in the game, primarily rulers and important historical figures, and also noteworthy living figures the player will be engaging with, and it’s those I’ll be talking about next week!

The Big Reveal

Procedural ANSI face generation is here!

PCface1

Ok, so a little about the system. I basically wanted a system which adhered to four (five) major objectives. Firstly, it should be massively varied, and even if you spend a decent length of time just looking at the ordinary people in the street, it should take some time and under you see any two people who are identical. Secondly, it should be demographic – which is to say, each nation can have a set of preferred hairstyles, likely skintones, other signifiers (like turbans, tattoos, jewelry, etc), and these should be distinct in each nation. Thirdly, and following on from the second point above, there should be enough of these that (much like everything else in URR) you should be able to gain visual information: when you meet someone you’ve never met before, you should be able to make a reasonable guess about their nation of birth. Fourthly, any combination should be possible, as a means of undermining the idea that only “primitive” peoples will be found with certain cultural signifiers – in one game perhaps the people in the most technologically and militarily powerful empire all have extensive facial tattoos, for examples. Fifthly (I suppose), the objective was to make them look visually and aesthetically interesting, and striking, and distinct: as with everything else in URR, if I wasn’t able to make face generation look enough to meet my standards, I’d have just cut it.

I’m not honestly sure how many variations there are (since some variants cancel out other variants in the generation process, making the simple solution of just multiplying everything together inaccurate). Roughly speaking there are nine skin tones, thirty hairstyles for women, thirty for men, a dozen different forehead/chin/nose shapes each, a dozen hair colours (which are genetically placed around the world and are toned appropriately to reduce contrast with skin tone), four eye colours (likewise, genetically varied around the world), several dozens beards (for the gents), and then a massive range of other visual identifers. There are six below: paint/dye markings, turbans, brands (sometimes consensual/cultural, sometimes as identifiers of slavery), facial tattooing, collars (always denotes slaves), scarification, and a bunch I haven’t shown here. There are also some rare additions like scars, eye patches (like the lady at the top of this entry), and some other neat and extremely rare properties as well. These will always tie to that NPC’s history, so someone with an eyepatch will have a distinct event in their past where it was lost – you can sometimes, therefore, get a bit of “personal” data from someone’s face, as well as cultural/national/etc.

PCface1

When you ‘l’ook at an NPC, you’ll get a new range of screens to cycle through in this coming release. If you’re currently in combat, it’ll automatically go to the screen showing their health; if you’re not (which will obviously be the case in this release) it will show you their face, and a little bit of data. There will then a list where you can scroll through everything they are wearing and bring up the appropriate attendant images for all of those (clothing, shoes, any holstered weapons, jewelry, etc). I’m going to remove anything you could not “physically” determine, until you know for sure: which is to say, an NPC’s lookup will never state their affiliations, unless you have explicitly talked to them and found out (though they might have lied…) or someone else has told you. Here’s a spectrum of the skin tones in the game, with a bunch of hairstyles and beard styles (where appropriate). Alpha Centauri players might also note the worrying but entirely unplanned similarity of one of these nine women to a certain Sister Miriam Godwinson…

Fine folk

And that glorious image pretty much concludes this entry. I’m currently working on a bunch of optimizations for the game – primarily in terms of how data is saved, and the efficiency of the rendering and line-of-sight algorithm, since this needs some serious improvement so that you can see further than a couple dozens tiles in front of you. Once that’s done (which hopefully won’t take too long) I’ll probably get working on clothing generation, and then doing some major work on families, family trees, and how NPCs should be stored for remaining still and/or moving around the map, as an important precursor to getting them actually spawning. See you all next week!

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!