Thursday, 25 August 2011

100 Escapes

Just coming back to Cardinal Quest for a second, but I forgot to note in my original post that it avoids doing the one thing I really hate about 100 Rogues - it doesn't penalize me from moving away from an adjacent monster.

In 100 Rogues, if I move away from a monster next to me, every adjacent monster gets an attack. It annoys the heck out of me. I'd much rather be able to reposition, even if the monster is merely going to step into the space I was occupying, because it means I can do all sorts of interesting roguelike tactics e.g. flee into a corridor to avoid being surrounded, hack and back against slower monsters, pillar dancing and so on.

Also: Cardinal Quest on Rock Paper Shotgun. The conversation in the comments has got slightly derailed, and it needs some love to get back on track.

Tuesday, 23 August 2011

Fucking ridiculous

I've just bought Civilisation V.

It was four times cheaper for me to get a physical DVD shipped from the UK via air mail (AUD $21.49) then it is to buy a digital copy on Steam (AUD $79.95).

[Edit: To add insult to injury, I'm now typing the CD key into Steam. No need to install from the DVD at all. And the technology tree wall chart is out of date...]


Monday, 22 August 2011

Is user interface design holding roguelikes back?

I've been playing the excellent Cardinal Quest by Ido Yehieli and I can't recommend it strongly enough. You can download the demo from links at his site, read the IndieGames.com article about it and there's a great interview with Ido at True PC Gaming which outlines some of the challenges in designing an indie game.

While Cardinal Quest doesn't necessarily have the depth of some roguelikes - and isn't intended to, it has one outstanding feature, which I also praised Terraria for: amazing user interface design. Here's the first screen you see once you choose which class you'll play (click to see full size):
The user interface entirely describes what you can do in the game. There are keyboard shortcuts for every function you need to do but you don't need to look up help menus: everything is discoverable by mousing over it and a small pop-up reminds you of the key to use, as well as describing the item in the slot.

Not only that, but whenever you pick up an item, it automatically is placed in the correct slot if it is better than what you're already using, replacing any existing item which is converted to gold.

And perhaps best of all, the spell system has separate time outs on each spell, which are displayed by a clock ticking down effect which slowly highlights a slice of the spell icon as the spell recharges.

The user interface is so good, it has seriously forced me to reconsider my priorities in Unangband. I typically find other (non-Angband variant) roguelikes impenetrable because of the subtle but important differences in keyboard shortcuts which means I can't easily shift between games. But I had no problems at all with Cardinal Quest, I could start playing straight away and enjoy the progression of my little avatar (Down to level 8 first time).

With this and the success of Dungeons of Dredmor, I wonder how much the lack of attention to user interface typical of hobbyist and indie programmers has been holding roguelikes back. It's not just that of course: the verb-object model of using items - which has important properties for emergence - and the large number of items in a typical roguelike are also important, but most of those could be overcome by a smart redesign. I'm thinking about going through this process myself.

Oh no, not again

I mentioned previously a podcast I listen to, One Life Left, was on the cusp of reviewing Angband, but failed to do so, after YANR (Yet another Nethack review). It looks like Gweek, Boing Boing's gaming podcast was similarly in a position considering reviewing Dungeon Crawl: Stone Soup on their Dwarf Fortress episode [1] but again didn't. I guess as far as mainstream media is concerned, there's Dwarf Fortress, Nethack and ZAngband... [2]

Anyone want to start Roguelike Radio with me, a podcast dedicated to roguelikes?

[1] If you know anything about Dwarf Fortress, it's probably only worth a glance. They didn't ask the one question I wanted to hear which is how do you persuade the editors of the New York Times magazine to publish such a crazy thing.
[2] That is of course a gross generalisation. There's now also 100 Rogues and Dungeons of Dredmor.

Proceduralism: Part Seven (Education)

[You'll probably want to read the original article series that inspired this follow up, then start with parts one, two, three, four, five and six of this series.]

I was going to be talking about content, but I think there's an important point that is worth underlining now, especially seeing as the previous post ruffled a few feathers.

One of the key challenges about procedural content generation is that so much of it is 'intuitive'. Not intuitive in the sense that it is easy to understand, but intuitive in the sense that you have to use your intuition to figure out what works and what doesn't work.

You will sit for hours, watching your algorithms generate content over and over, tweaking the parameters until you are satisfied with the outcome. It is an incredibly powerful feeling, like being a god in some sense, in that you are literally creating (and destroying) worlds with the click of a button or invocation of the command line. Even the smallest change can butterfly into unintended consequences or beauty, and there are a surprising number of times where accidents turn into final implementation. My favourite is the erosion simulation from Tribal Trouble, where a thermal erosion algorithm failed to produce the desired results, until the sign was reversed on the equation being used - turning a sophisticated model into a nonsensical result which happened to look better.

I've coined what I call Doull's Law: 'Any time saved using procedural generation will be wasted watching the resulting screen saver', to try to capture at least the amount of time this takes, if not the power of this idea.

The consequence of this centrality of intuition, is that you have to be told the story of developing a PCG algorithm, instead of just seeing the final code, in order to understand what was done and why. Projects that describe the process of development like Project Frontier, Procedural World, rune | vision, Making Worlds, Procedural Planets, Dungeon League, Polygon Map Generation, Infinity: the Quest for Earth, L.o.V.E. and Spore and all the other creation stories are incredibly important: not just as beautiful repositories of code and images and ideas, but as foundational documents to their procedural worlds.

And I believe, fundamentally, why procedural generation has never become mainstream, is that it takes time, especially time spent coding, to develop this procedural literacy. If you look at, for instance, the Braving Procedural Generation thread on TIGsource, you see variations on the same, simple cellular automata cave generation over and over, because each person who falls in love with PCG has to go through the same learning process themselves to try to discover this intuition.

That is why I set up the PCG wiki [1]- to try to improve the overall literacy in this field. And the feedback to the survey I'm running at the moment has been incredibly positive, but almost everyone feels like they don't know enough to contribute back. My vision ultimately is to have an online PCG paintbox on the wiki, that'll let you explore cellular automata, and height maps, and fire propagation and so on, all in your browser so you can experience this feeling without coding - I just don't have time to create such a beast.

Back on track in part eight.

[1] That and I needed a bibliography of PCG.

[Edit to add: I know we'll have achieved that level of literacy when we start talking about a Cepero nave, or Young trees. At the moment all we have is Perlin noise, which is a bit high frequency for my liking :) ]

Sunday, 21 August 2011

Finished Crysis

Technically I haven't finished Crysis but I've got past the bit where the aliens show up which counts as finished when you're playing a Crytek game. Not only did I get that far, but I played the stealth bit, the escort mission bit, the turret gunner bit and the Halo rip off bit before stopping at the fly a plane bit, all of which featured pretty uninspired alien design.

As I mentioned previously, I found Crysis incredibly refreshing because it had the balls to be a shooter that did the best parts of the previous game much much better with new game play mechanic twists (the Nano suit, destructible terrain), as opposed to a genre-bending wannabe sim/open world game/RPG which is what shooters have sadly turned into in too many cases.

(Please note I love the S.T.A.L.K.E.R. series enough to be bothered to punctuate it correctly, Far Cry 2 and ARMA 2 for their crazy ambition, TF2 for its class design etc. But does it have to be every game?)

But I don't think you should play Crysis because it's incredibly fun, or because its beautiful, or because your graphics card can finally handle it. I think you should play it because two thirds of the way through the game it drops you into a zero gravity alien maze and teaches you seamlessly how to navigate it and fight the enemies inside, which are the first truly alien aliens I've seen in a game.

It is a classy piece of game design. I wish the final third had turned into Prey, not Halo.

Saturday, 20 August 2011

Privacy and Google Plus

I don't think the Google circles quite map onto the way that we operate as individuals with an expectation of privacy. Not to say that I don't think circles are a good but not great privacy mechanism from a technical and easy of use stand point, but I'm not so sure they quite fit the way people think about public and private spheres.

For a start, you should never have a real expectation of privacy about anything you say on the Internet. Copy & paste pretty much defeats any security mechanism you could potentially come up with (along with lo fi reproduction techniques like photographing the screen). If you don't want something you say reproduced and seen by everyone in public, you shouldn't be saying it on the Internet. In fact, with today's level of mobile phone use, you shouldn't be saying it at all, because at any point someone can press a button on their phone and record you (and there's plenty of software that'll immediately upload it to remote secure web storage so even confiscating the phone isn't enough).

There are certainly areas where you have an expectation of privacy. For instance, you have a reasonable expectation your ISP isn't going to divulge your preference in pornography (along with the people who wrote your web browser and operating system). And you can certainly start suing people after the fact should information which needs to remain private is leaked. But, despite attempts to have super injunctions, you can't sue someone before the fact to prevent a juicy secret being released, and doing so is a big red flag for people who look for that sort of thing.

So Facebook's hard to use privacy controls and hidden and ambiguous relevancy filters are actually a better reflection of the state of control of your personal information than Google's deceptively easy to use system of circles, which create a false sense of security about how far what you say can be shared.

And that's ignoring the fact that circles are in some sense the wrong way around. I only want to hear about your interest in game design, not see photographs of your cats. But occasionally I might, because it may make me more likely to think of you as a real person as opposed to an anonymous stream of text on the Internet.

(This post brought to you by the Charles Stross school of blogging).

Friday, 19 August 2011

An apology

Just a quick update to people who've already read the previous post on procedural generation that I've amended the article to include an apology about some ill-judged generalisations I made in haste.

Miguel Cepero wrote an article in response to this post, and quite rightly points out that I made a number of statements which were not especially nice things to say, specifically when his and Shamus Young's project should not be judged as they have not been released. I would like to apologise for this.

Thursday, 18 August 2011

Proceduralism: Part Six (Architecture)

[You'll probably want to read the original article series that inspired this follow up, then start with parts one, two, three, four and five of this series.]

Edge Magazine recently featured an article, Building Worlds with a Single Click, which highlighted and praised two exciting new projects by independent developers: Project Frontier by Shamus Young and Procedural World by Miguel Cepero, both of which feature beautiful procedurally generated worlds.

The thing is, we've got very good at building procedural worlds - so good that virtually every example uses the same small underlying set of well understood systems: noise, L-system based architecture, Whittaker diagrams and so on that even a single programmer working in their spare time can implement. Just to pick a few featured in the World Building page on the PCG wiki: Making Worlds, Procedural Planets, Dungeon League, Polygon Map Generation. And of course, there's Infinity: the Quest for Earth, L.o.V.E. and Spore; all of which feature incredibly detailed environments created by incredibly talented and smart programmers.

And all these amazing worlds? Almost everyone is focused on building these curate's eggs - which, if they eventually end up being released as a game, become a disappointing, empty and lifeless one.

[Edit: Miguel Cepero has responded to this post, and quite rightly points out that the above statement is not a nice thing to say, specifically when his and Shamus Young's project should not be judged on this basis as they have not been released. I would like to apologise for making this generalisation, which the article in Edge magazine points out is the big challenge that all these projects face.]

Does almost all procedural generation amount to, as John Carmack puts it, is "a really crappy form of data compression"?

My procedural spider senses tingle as soon as I see a procedural generation system that uses one of the following two approaches:

1. Mazes (and by extension BSP-trees)
2. Height maps

because I've yet to play a game where I've exclaimed 'Wow, what a great height map' (except Populous, but we'll get to that) and the pleasure of solving a maze isn't the same as the pain of having to play through one.

I've also seen a rise in recent suggestions and several implementations of Metroid-style procedural generation featuring gated lock-and-key puzzles to partition a map, on the assumption that being forced to traverse through a non-linear space looking for a key is some how interesting. This is putting the cart before the horse: Metroid (and Zelda) use this technique to force the player to explore an already interesting (and hand-designed) location, not because looking for a key is itself challenging. The lock-and-key puzzle is merely a dressed up fed ex quest where you're not told the location of the package you have to deliver (or worse, you stumble across the package without knowing its destination address).

When we talk about architecture in game play, we don't think of buildings and naves and antechambers: we refer to choke points, and cover, and objectives. The topology of the space is much more important than its aesthetic or fidelity. The most successful (and perhaps only successful) procedurally generated game spaces so far are all based on Rogue, with its simple room and corridor design.

With a room and corridor design we get four important features:

1. Corridors - which act as natural choke points at each end, and cover if you are in them
2. Convex shapes - spaces where you can see everything in the space from everywhere else
3. Concave shapes - spaces where some space is hidden from another (more cover)
4. Loops - which allow you a safe haven by traversing the loop to recover when chased by enemies of the same speed or slower

Elite, the other arguably successful procedurally generated game space, remains interesting because it is a procedural objective generator. Here you are searching for trade routes between high tech industrial and low tech agricultural worlds: the topology is interesting only because every edge is a potential goal.

Populous, Dwarf Fortress, Minecraft and Terraria all cheat procedural generation in two important ways: they allow you to modify the topology of the space and they encourage you to make interesting content in that space to which you become attached. An uninteresting dead end can be transformed into a useful corridor, or lit by a torch to mark that you've 'already been here' or mined for valuable ore. The procedural generation systems they use may make beautiful places, but it is the player's job to change them into interesting spaces.

It helps in the case of Minecraft and Terraria that much of the procedurally generated spaces mimic Rogue's room and corridor layout. Strategy games generally generate a mix of the Rogue-type (open areas, choke points defined by inaccessible terrain) and generation of objectives through resource scattering (call this Civilisation-type PCG).

Even with a room-and-corridor design, the architecture, or more correctly topology of a space is insufficient to lead to great procedurally generated games. As I discovered when working on Unangband dungeon generation, it is the contents of these generated spaces that is the most important part of procedural generation. And that is why it is so frustrating to see developer after developer get trapped in architecture, distracted by beautiful world building, and not concentrating from the start on the creating content.

And I'll be discussing content in part seven.

Wednesday, 17 August 2011

Curation

I've been puttering about, updating parts of the PCG wiki and putting together a short survey to try to figure out why there's not more of a community involved in updating it (One observation: I was forgetting to approve membership requests. Sorry to anyone who applied and was waiting).

Coincidentally, I listened to a Moving Pixel podcast where the chaps from Critical Distance discuss the same problem I've been having: how to turn a list of interesting links into something with more structure and 'authority' (A word I'm wary of). At the moment, the PCG wiki is basically a big bunch of external links with a bit of structure, and I don't see myself having the time to do more than keep it vaguely up to date (Along with tricks like aggregating RSS feeds from various blog posts to make it look like it's being updated more frequently than it is).

[Edit to add: Craig Perko's Google plus comment on the same issue.]

So in one way, the wiki is no more useful than the Delicious procedural tag RSS feed.

And the wiki structure isn't quite right for what it needs to be. So I'm going to sketch out an idea and see if you have any suggestions as to whether anything else fits the bill.

Firstly, I need a tool, like Delicious, which does simple link aggregation, but in a way that is domain specific, so I and other wiki users can tag it with words like 'article', 'blog post' and so on, but also 'noise', 'maze', 'caves' which don't bring up every single 'blog post' in existence by someone using the same tool. Other than copy and paste, the wiki falls down here.

Then I need to be able to keep related links together on the same page. The way the Internet works at the moment, a blog post may spark follow up posts on Metafilter, reddit, various web forums and so on, which all make sense to group together, but will include their own original content.

Then it needs wiki style authoring over the top, along with discussion groups, rating systems similar to stack overflow and so on.

I can kind of hack this with the wiki currently, by having every 'external link' actually be another wiki page in front of the external link, but this is still missing Delicious style link tagging and is horribly clumsy.

This excludes all the problems with the current wiki (and wikis in general) having data handling (should year released = 1997 be metadata or tags?), dynamic templating and etc.

Monday, 15 August 2011

Party like its 2007

In some weird aberration, I appear to be playing (and enjoying) more games from 2007 than 2011. It isn't completely weird when you consider the Steam sales, but the ridiculous Australian pricing of many games has forced me to move to a different supplier (Thanks ozgameshop).

Not only have I completed Bioshock, but I stayed up way past any sensible time last night playing the original Crysis because I was having too much fun. Contrast this with the multiple evenings of game play where I've been stuck on completionist grind (Portal 2, Terraria, Brink - damn your RPG systems for ruining my FPS, the second half of Borderlands and especially the first Witcher - except for Chapter 3 which played refreshingly quickly). I was so worried this morning about the guilty pleasure of Crysis that I checked its score on Metacritic to validate my feelings - it has a better score (91) than any game from this year with the exception of Portal 2.

(In other 2007 game news: My Team Fortress 2 addiction has got to the point where I've gone into voluntary withdrawal until I get an Enforcer drop. Idling is the new methadone).

I'm at the point where I dread playing a game that orders me around with quests and the lure of a new shiny. I've opened Fallout 3 and got as far as the main menu multiple times without actually playing it. My list of games on Steam has started haunting me as a list of things I should feel guilty about not finishing.

I'm enjoying indie puzzlers (Spacechem, Frozen Synapse) in bite size pieces, but small nuggety levels feel too much like quests to me at the moment.

I'd rather have a tasty trail of North Korean bread crumbs.

Saturday, 6 August 2011

Prototyping

If you want to rapidly prototype your roguelike UI, you might consider having a look at Ascii Flow.