Tuesday 27 December 2011

Full Results for the Ascii Dreams Roguelike of the Year 2011

I thought we'd reached a high point last year with the number of votes: this year had nearly three times as many. Thank you to all 2937 of you who came here to vote for your favourite roguelike. Remember, in many ways the point of this poll is not to see who is the winner, but to see what games might be worth playing. If you step outside the winners circle and those games which merited an honourable mention, there are still a huge number of roguelikes which warrant a play if you've not done so already.

transmission...
  1 (0%)
100 Rogues
  28 (0%)
3079
  8 (0%)
3D/2D dungeon crawl
  4 (0%)
7DRL PUZZLE CHALLENGE
  1 (0%)
7DRLCC
  1 (0%)
91
  3 (0%)
A Little Anxious When It's Dark
  1 (0%)
Adventurer
  5 (0%)
Alamut
  3 (0%)
AlfaRogue
  1 (0%)
Allure of the Stars
  4 (0%)
Anauroch
  2 (0%)
Angband
  68 (2%)
Anylo's Roguelike
  1 (0%)
Ascii Sector
  37 (1%)
Avendesora
  1 (0%)
Bardess
  2 (0%)
The Binding of Isaac
  199 (6%)
Block Rogue
  5 (0%)
BOSS
  4 (0%)
Brogue
  240 (8%)
Broken Bottle
  35 (1%)
Bushudo
  1 (0%)
ButtonHack
  2 (0%)
Cardinal Quest
  68 (2%)
Cataclysm
  170 (5%)
Caves of Qud
  87 (2%)
Chompy!
  1 (0%)
Clarion
  4 (0%)
Crawl Light
  6 (0%)
Cypress Tree Manor
  1 (0%)
DaJAngband
  5 (0%)
Deep Realms Heroes
  2 (0%)
Defender of the Deep
  12 (0%)
Demonhunt
  9 (0%)
Descension
  2 (0%)
Desktop Dungeons
  391 (13%)
Destiny of Heroes
  3 (0%)
Detribus
  2 (0%)
Devil *MIGHT* Laugh
  2 (0%)
Diabololical Dungeons of Dr Devil
  1 (0%)
Diggr
  18 (0%)
DoomRL: Doom, the Roguelike
  178 (6%)
Dungeon Crawl Stone Soup
  486 (16%)
Dungeon Maker
  3 (0%)
DungeonRL
  3 (0%)
Dungeons of Decay
  1 (0%)
Dungeons of Dredmor
  612 (20%)
Dwarf Fortress
  373 (12%)
Dwarftown
  4 (0%)
Dweller
  17 (0%)
Elite International Detective
  1 (0%)
EmoSquid
  3 (0%)
Eracia
  0 (0%)
Escape from the Master's Lair
  1 (0%)
Expedition
  17 (0%)
Exploring The Bleak
  1 (0%)
FAangband
  23 (0%)
Fall From Heaven
  11 (0%)
Free-Like
  0 (0%)
Gauntlet
  0 (0%)
Geiger A.D. '42
  0 (0%)
GhostbustersAscii
  2 (0%)
GnomeSquad
  2 (0%)
Goblin Camp
  38 (1%)
Grand Rogue Auto
  4 (0%)
Gridfolk
  0 (0%)
Hack 'n Slash Online
  0 (0%)
Happy Ever After
  0 (0%)
Harrowed
  0 (0%)
Hordes of Tarshish
  0 (0%)
Hydra Slayer
  11 (0%)
Hyperbolic Rogue
  11 (0%)
Ignite
  12 (0%)
Infra Arcana
  62 (2%)
Into the Dungeon
  12 (0%)
Inversion of Control
  5 (0%)
JADE
  431 (14%)
js-like
  4 (0%)
JSRL
  0 (0%)
Kepler
  0 (0%)
Kharne
  0 (0%)
kusemono
  4 (0%)
Labyrinths & Legends
  1 (0%)
The Lair of Xar
  2 (0%)
LambdaHack
  1 (0%)
LambdaRogue
  23 (0%)
LarnHD
  4 (0%)
Legacy
  1 (0%)
Legacy of a Warlord
  2 (0%)
Legends of Yore
  94 (3%)
Legerdemain
  24 (0%)
Liberal Crime Squad
  25 (0%)
Light7DRL
  0 (0%)
Lost Labyrinth
  9 (0%)
LumberjackRL
  3 (0%)
Mad Mage
  2 (0%)
MageGuild
  8 (0%)
MAGHD
  1 (0%)
Magicko
  4 (0%)
Magog
  3 (0%)
The Man in the Mirror
  6 (0%)
Microcosm
  1 (0%)
Middlecrest
  3 (0%)
The Moor
  0 (0%)
Monster Slayer Show
  5 (0%)
MonsterEnthrallerRL
  0 (0%)
Mysterious Castle
  3 (0%)
NarwhaRL
  1 (0%)
Neon
  2 (0%)
NetPack
  8 (0%)
Netwhack
  2 (0%)
NLarn
  7 (0%)
NPPAngband
  20 (0%)
PabloQuest
  2 (0%)
Piraten
  0 (0%)
Pitman Krumb
  5 (0%)
PM:theRL
  0 (0%)
Portralis - NewAngband
  10 (0%)
POWDER
  66 (2%)
PRIME
  2 (0%)
Prospector RL
  49 (1%)
PWMAngband
  5 (0%)
pYendor
  0 (0%)
Pyromancer
  6 (0%)
Quest for the Unicorn
  0 (0%)
Quickband
  13 (0%)
Random Realms
  1 (0%)
Rayel
  9 (0%)
Regicide!
  0 (0%)
RevivedHack
  0 (0%)
Rings of Valor
  6 (0%)
Rising Force
  1 (0%)
Rogue - The Cardlike
  1 (0%)
Rogue Assassin
  6 (0%)
Rogue Project 2
  0 (0%)
Rogue Survivor
  49 (1%)
Rogue Zombies
  3 (0%)
RogueDungeons
  0 (0%)
Roguelike GCS
  1 (0%)
Roguestar
  0 (0%)
RogueUnlike
  0 (0%)
roguezombies
  2 (0%)
Rook
  6 (0%)
Run from the Shadow
  9 (0%)
S.C.O.U.R.G.E. 2
  1 (0%)
Serial Killer
  7 (0%)
Siegfried
  7 (0%)
Silence
  0 (0%)
SilverQuest
  2 (0%)
Skills Angband - Sangband
  12 (0%)
The Slimy Lichmummy
  20 (0%)
SRL
  0 (0%)
SRogue
  0 (0%)
Stellar Edge
  1 (0%)
Storming the Ship
  0 (0%)
Stygia
  2 (0%)
Temple of Vengeance
  1 (0%)
Through
  1 (0%)
ToME 4
  702 (23%)
TomeNET
  16 (0%)
Traction Edge
  0 (0%)
Triangle Wizard
  39 (1%)
Twelve Hours
  2 (0%)
unnamed
  0 (0%)
Unnamed Angband - UnAngband
  31 (1%)
UnNetHack
  32 (1%)
UnReal World
  79 (2%)
Untitled
  1 (0%)
Vapors of Insanity
  6 (0%)
Vicious Orcs
  20 (0%)
Voyage to Farland
  4 (0%)
Warudo
  1 (0%)
WebRaidMobile
  0 (0%)
Wordrogue
  1 (0%)
World of Tey
  6 (0%)
X@COM
  90 (3%)
XirrelaiRPG
  1 (0%)

Honourable Mentions for Ascii Dreams Roguelike of the Year 2011

Three games had more votes than were required to win last year's roguelike of the year: Dungeon Crawl: Stone Soup, JADE and Desktop Dungeons, with Dwarf Fortress needing only 12 votes to do the same.

Dungeon Crawl: Stone Soup is a previous winner which has continued to improve year on year.

JADE should be seen as the newcomer this year, although Thomas Biskup's pedigree as the designer of ADOM ensures that his next game was always going to receive a lot of attention.

Desktop Dungeons is a challenging puzzle roguelike now in an extended beta, and looking forward to a commercial release next year.

Dwarf Fortress is a previous winner, with the next release looking to fulfil more of the potential of its roguelike adventure mode.

All up, an incredible 10 roguelikes got more than 150 votes, those I've already mentioned as well as The Binding of Isaac, Brogue, Cataclysm and DoomRL: Doom, the Roguelike. The fact that so many roguelikes got so many votes shows the strength of the genre.

Runner up for Ascii Dreams Roguelike of the Year 2011: Dungeons of Dredmor

The eyebrows have it.

Dungeons of Dredmor has proven beyond any shadow of a doubt that it is possible to release a commercially successful roguelike in 2011. At the time development on this game started it must have felt like a leap of faith, but the humour and character-filled visual design of the game have proven to be not just a successful gateway drug to other roguelikes, but hugely popular in its own right.

For many hardened roguelike players, Dredmor feels like a roguelike, simplified, and this has proven to be a divisive issue, but that view ignores the smart decisions behind the unique skill system, which encourages you to tweak your character build every time you see the 'Congratulations. You have died.' game over screen. It also ignores the fact that a simpler roguelike is exactly what is needed to bring the pleasures of the genre to a wider audience, and that Dredmor gets the user interface right in a way that many seemingly complicated roguelikes have been unable to do.

And then there is the continued post-release support, and the fact the game is priced so ridiculously low, that make it hard not to recommend you go out and buy it.

You can get Dungeons of Dredmor on Steam (PC + OSX) or Desura (PC + Linux), read the developers blog and visit the forums.

Winner of Ascii Dreams Roguelike of the Year 2011: T.o.M.E. 4

Last year's winner has returned.

T.o.M.E. 4 has fended off commercial roguelikes (Dungeons of Dredmor), previous winners (Dungeon Crawl: Stone Soup) and new entrants (JADE) to win roguelike of the year for the second consecutive year, becoming at the same time the first roguelike to win more than once. Congratulations to DarkGod and his team for making such a great game and the T.o.M.E. 4 community for rallying around it.

With an incredible number of releases this year, it now features a beautiful tile set designed by Shockbolt, one of the most advanced user interfaces of any roguelike and a friendly community welcoming to new players.

Roguelike Radio will be featuring T.o.M.E. 4 for the first episode in 2012.

You can download ToME here and visit the forums and read the wiki here.

A small example of why programmers can't do UI design

The quiver is a user interface feature in later versions of Angband which allows you to carry multiple stacks of ammunition more easily, without having to dedicate one inventory slot to each different type of ammunition. As a part of this, it automatically assigns a number key to each stack, so you can select the first stack by pressing 0, the second stack by pressing 1 and so on...

Wait a sec.

The first stack by pressing 0?

Well, as it turns out, the quiver was designed by programmers, not UI designers. The problem here is that the character encoding used is ASCII, which assigns character codes for the numeric keys from 0 to 9, not from 1 to 0. So the elegant programming solution is to figure out the character code by subtracting the value for 0 from the actual number typed in to determine which number is used. This 'elegant' solution puts 0 first. Not only that, but for various reasons (e.g. array indexes) programmers are used to counting from 0.

This is despite the fact that every single person involved in the design of the quiver, the various reimplementations across multiple variants, and pretty much every single person who has played using the quiver has the number keys running across the top of their keyboard in the order 1, 2, 3, 4, 5, 6, 7, 8, 9, 0.

Monday 26 December 2011

Holidays

If you're going to release a new version of your game, don't do it just before you go on holiday.

I've seen at least 2 roguelikes fall into this trap this year...

(Oh, and Merry Xmas).

Saturday 24 December 2011

Friday 23 December 2011

I've switched to moderated comments for the moment

Due to incessant comments about how awesome Dungeon of Dredmor is.

Seriously, you should stop praising the game that much.

(Oh, and the Binding of Isaac fan boys. Just crazy.)

Because there are not enough lists of that sort of thing

This stuff is gold for procedural generation.

Help wanted (svn2git)

berlios.de is shutting down at the end of the year, which means I need to migrate to alternative hosting like github.

Unfortunately, I don't have a computer with an OS capable of running git* (I've got Vista, and OSX 10.4), which means I can't run svn2git to convert the repository across. So I was wondering if anyone wants to volunteer to do the conversion to save me having to spend a day or two downloading then building a virtual Linux box then going through the package shuffle. From my brief understanding of git, I believe I can then clone your git repository (put it on github) and make the clone the 'official' version.

Warning: Unangband's SVN repository is 'quite large'. The Github online SVN conversion tool notes that the conversion process may time out for large repositories. When I've attempted to use this tool, it appears to take too long (at least an hour) simply trying to get the list of subversion authors.

* I'm using egit which is the Eclipse implementation running on top of jgit. If anyone has done a jgit based svn2git conversion, please let me know.

[Edit: Thanks for the quick responses. I've got someone running an svn2git conversion now...]

Saturday 17 December 2011

IndieGames.com top ten

IndieGames.com has released their list of top ten independent games for the year. Dungeons of Dredmor is in 6th place. The Binding of Isaac is in 2nd place.

Congratulations to the developers of both roguelikes.

Friday 16 December 2011

His year in roguelikes

For those of you undecided about which roguelike to vote for, you may want to see Adam Smith's recommendations over at Rock Paper Shotgun.

Tuesday 13 December 2011

Request for votes: Ascii Dreams Roguelike of the Year 2011

185 roguelikes have qualified this year: that's a different roguelike being released less than every two days, and yet again, another record number (116 last year).

How did the roguelikes qualify?

The list was taken from the roguelike releases announced on the Rogue Basin news section between December 16th 2010 and December 12th 2011 and from the list of Actively Developing Roguelikes maintained by Michał Bieliński. From this year, I'll also be including any roguelike which has been discussed on Roguelike Radio and released this year, but otherwise wasn't included in the above list. I've done this to include two notable games (Dungeons of Dredmor and the Binding of Isaac), which would not otherwise have qualified.

What about 'x'?

Make sure you announced your roguelike on Rogue Basin for next year.

What about the 7 day roguelikes?

I decided to exclude any 7 day roguelikes that weren't announced separately. However, most of them were on Michał Bieliński's list.

What's the prize?

Pride. And a sexy logo - if you want one. You can see the winning 2007 logo on the Dwarf Fortress links page. Other winners are free to request them, but haven't done so. Logo designs for this year are welcome.

Having a competition is a dumb idea/offensive/stupid when you can't police the results.

Yep. Doesn't stop it being fun. You can vote for multiple different roguelikes. The idea here is that you will be encouraged to go out and download a roguelike that other people consider interesting, not that there is any kind of real competition element involved.

Friday 2 December 2011

Occult Chronicles roguelike

You may remember from a recent episode of Roguelike Radio that I speculated that Vic Davies of Forgotten Lore was working on a roguelike but his next game, Occult Chronicles, wasn't that game. It turns out I was wrong. It is.

Thursday 17 November 2011

Video Game Awards

The Binding of Isaac has been nominated for the VGA Independent Game for 2011. This isn't the first time a roguelike has picked up a major award, but you should totally go vote for it.

(And a big congratulations to Edmund).

Tuesday 8 November 2011

Isaac Unbound

The recent discussion of the Binding of Isaac at Rock, Paper, Shotgun features yet another thread discussing whether games which are like roguelikes should be called roguelike-likes - as I've suggested previously. The term 'roguelike-like' appears to be incredibly polarising, which is why I'm drawn to it, but calling the Binding of Isaac a roguelike-like does the game a disservice: it is a roguelike, just one which is real time and with graphics. There's the three key ingredients I look for in a roguelike: an inventory system with emergent interaction between items, monsters and terrain, procedural generation and permadeath; but Isaac has other roguelike elements missing from the likes of Spelunky or Desktop Dungeons, such as an identification system and positional combat (including the Angband staple: pillar dancing). Alec Meer in discusing the game suggests the term 'arcade roguelike' which I'm a lot more comfortable with in this instance.

The Binding of Isaac is also influenced by the Legend of Zelda, but when I've written about a procedural Zelda, I've always been referring to the puzzle dungeons which Brian Walker effectively recreates in Brogue, rather than the top down screen by screen rooms which Isaac features. Playing this game briefly draws me into an alternate dimension, where Shigeru Miyamoto was inspired as much by Rogue as the caves he explored as a boy, a universe filled with procedurally created stories instead of the linear narratives we favoured here (the only person to have crossed successfully in the other direction being one Tarn Adams). There is nothing here technically or game design wise which couldn't have been implemented in the original Zelda, and the Binding of Isaac is a superb example of how the ideas of Rogue can be extended and built on in another direction again. Discussing the game play is an exercise for another day, but I'll note here that Isaac has 131 item drops, plus 22 tarot cards of the Major Arcana and 17 pills, not to mention hearts, keys, soul hearts, coins, and bombs, and the game does not suffer from too much junk - a triumph of design.

But to enjoy the game, you have to overcome its greatest obstacle: Isaac's theme, which appears at first to be an off-putting combination of religion, child abuse and toilet humour. I was prepared completely to dismiss this game with some snide remarks ('so have you read the book it's based on?') and a few choice observations about misogyny and instead find myself contemplating the Binding of Isaac as my possible game of the year, and wondering why no one on the Internet has thought to write critically about the themes it uses.

I should point out in the interests of full disclosure that this game may speak to me more strongly than most because of the position I'm in, and not just from the roguelike perspective. I'm the full time stay at home father of 9 month old twins; so the idea of crying away piles of poo is closer to my everyday experience than the typical gamer. I'm also a huge horror fan, a result of working in a video store in the 90s, so moaning, empty eye socketed meat puppets are quite low on my disturbance scale. Having said that, this blog is called Ascii Dreams because of the phenomenon resulting from playing too much roguelikes invading your sleep, and the dreams that occur after even the short amount of time spent playing the Binding of Isaac are vivid to say the least.

I strongly believe if you put off playing this game because you are worried about the thematic content, you are making an understandable but unfortunate mistake. The Binding of Isaac is not about religion, child abuse or poop, as much as it is about the hysteria of satanic ritual abuse, the mythology of modern childhood and the totemic power of game play. And even if it isn't ultimately my game of the year (in a year which has featured Terraria, Brogue and Spacechem, and Crysis even), it is so far my most important.

Satanic ritual abuse was the widespread moral panic that there was systemic Satanic and occult physical and sexual abuse of children in the late 80s and early 90s - as a result of now discredited therapeutic and interrogation techniques particularly of children. While it should not be confused with actual child abuse, which is prevalent but not systemic, or instances of actual systemic and institutionalised neglect and abuse, the Binding of Isaac deliberately conflates the two, so that the abused and neglected Isaac gains access to diabolic upgrades and deals with the devil, by building on the same conflation and moral panic that conventional media presented stories of satanic ritual abuse, and the extremely rare, but incredibly widely reported instances of child kidnapping, imprisonment and torture in bespoke basements similar to the dungeon presented in the game. In fact, the Binding of Isaac is more truthful than the mainstream media, in that almost all instances of child abuse are intra-familial, in this case, a consequence of untreated mental illness (schizophrenia) in the family.

In a society where we're prepared to let more than 95% of rapists walk free without being successfully prosecuted, we have a bizarre fascination with the incredibly unlikely event of stranger initiated abduction of children. Child abduction is primarily an issue of contested child custody, and child abuse is most frequent from someone known to the child, but we do not choose to warn our children that we are the most danger to them rather than a (non-)relative stranger. The Binding of Isaac here serves as a cautionary story in the tradition of Grimm's fairy tales, as a counter balance to the myth of abductor-captor as other. Isaac serves as a macabre narrator, documenting his deaths, in childlike writing and pictures, and feigning that he will die if the player leaves the game (in reality, a sop to avoiding having to save the in game state), but his voice frames the whole game and not ironically undercut in any way.

A childhood fascination with death and mortality is as conventional as Stand by Me. And notably, as the Brothers Grimm made their collection of stories increasingly child friendly, they did so by removing sexual references and increasing the level of violence. The virtual Isaac is in no more real danger when we play the game, than any child play acting out cowboys and Indians, for how can a picture of a child be in any kind of danger at all. Of course, we have criminalized some pictures of children, and Isaac is noticeably, but abstractly naked.

I've seen Edmund McMillen accused of misogyny - an easy target for a developer who has released a game called Cunt - but the Binding of Isaac doesn't feel misogynistic. Instead, the choice of Isaac's mother as the atagonist feels simply lazy, a conventional and boring genre decision. Which is a shame, because the Biblical story offers a chance to explore the complex relationship between fathers and sons, rather than the horror movie cliche of mad, estranged mothers. The movie Frailty, starring Bill Paxton, is an exploration of schizophrenia, the Bible and fathers and sons, that could have been one source of inspiration here. If the Binding of Isaac is misogynistic, it is merely because the source material it draws from, religion and horror movies are - in a simple reading - although the reality is more complex (Horror has a tradition of heroines which few other genres match). Change Mom to Dad and the Womb levels to Prost(r)ate levels would have little impact on the overall game - except some item drops would leave Isaac's father a cross-dresser or require some manly alternatives.

The Binding of Isaac does highlight how poor Hollywood is at representing childhood. One of the first things that struck me when looking after my own children was how little media I could draw on to understand their needs - in fact, the closest analogy to a real living helpless child I could think of was the zombie baby in Braindead (another movie with mother as monster), as a way of thinking about their restless, helpless energy. The absurd intra-level vignettes are contrasted with the touching, piteous, huddled Isaac crying as he is thrust into a new level to be explored - much as a real child can be overwhelmed by the new and unusual.

What lifts the Binding of Isaac above horror movie cliche and 'significant' themes, is the thematic interaction between the protagonist and the items he finds in the game. Pickups are expressed in either terms of their relationship to Isaac (Sister Maggy, distant admiration) or as a singular object that Isaac must have encountered (the Bible, not a Bible), or both (Dead Cat (Guppy)). More importantly, in the context of playing as a child in a world defined by childish wants and fears, the relationship between an item and its game mechanic is exposed for what it is, an arbitrary rule defined by one child (the game designer) in relationship to another (the player), much as two children playing together negotiate the rules of a game. The random drops from game to game are the toys that happen to be the closest to the playing area, each map the way they are strewn about, procedural generation as a virtual sandbox. Playing the Binding of Isaac exposes the elemental nature of game play as a child's endeavour, Isaac is as much a childlike game as it is a roguelike one.

It is the context of poo, and tears, and toilet humour, that forced me to think like a child and broke down my relationship between the game and myself so that I could see all game mechanics for what they are. A +1 sword is only significant in a certain way because of the years of accreted adult 'wisdom'. Whereas Max's Head is what Edmund McMillen decides it is, and I can either agree it is useful in this playground or ignore it; but nothing in the presentation of the game forces me to take this item seriously. It brings to mind the titular Wasp Factory, a death trap maze for de-winged insects which a similarly disconnected child uses for prognostication. The rules of this death trap maze are random and capricious in a way that only a child playing can be.

Wednesday 2 November 2011

Roguelike Radio - Episode update

We're doing so many episodes and interviews for Roguelike Radio, I'm not going to bother post updates to the blog any more - it's getting too hard to keep up. I'm just going to repeat a comment I made on that site:

I think it is worth pointing out in the last 2 months we have recorded and released 12 separate podcasts (9 episodes and 3 interviews, not counting the spoilers bonus content for 100 Rogues). That's an absolutely incredible amount of output. We need to pat ourselves on the back.
Of course, we've released another episode since then, and are in the process of lining up at least one more interview... and it's been my week off.

Sunday 30 October 2011

Off to the Fortress

For some light reading, you may want to refer to the recent controversy of Dungeon Crawl Stone Soup removing mountain dwarves from the game.

Thursday 27 October 2011

Man up

Critics who deserve respect:

Critics who do not deserve respect:

Tuesday 25 October 2011

The first rule of Band club

[9:37:22 AM] Andrew Doull: its probably a good thing i had babies screaming at the time that jeff was talking about his ultimate roguelike
[9:37:53 AM] Andrew Doull: because i didn't want to point out that'd explain the fermi paradox
[9:38:24 AM] darrenjohngrey: Uh... it would?
[9:39:08 AM] Andrew Doull: millions of civilisations not travelling into space because someone writes a game too good to not spend every second playing it :)
[9:39:26 AM] darrenjohngrey: (New RL idea - FermiRogue, where you fight an evil Fermi and his various subatomic particles)
[9:39:59 AM] darrenjohngrey: I don't think RLs will ever achieve that  :P
[9:40:09 AM] Andrew Doull: don't be so sure
[9:40:51 AM] Andrew Doull: now would be about the time to explain i belong to a secret centuries old organisation dedicated to preventing such a thing from happening
[9:40:59 AM] Andrew Doull: but of course, no such organisation exists
[9:41:06 AM] darrenjohngrey: Ah, hence your support for band mechanics!
[9:41:12 AM] Andrew Doull: :)
[9:41:14 AM] darrenjohngrey: Trying to make the whole genre unpopular  ;P

Sunday 23 October 2011

Anquestria

Anquestria is a My Little Pony Angband variant.

Is this some kind of meme I missed out on?

Friday 21 October 2011

One fish, two fish

In a brief follow up to my earlier note, for you maths grognards out there, Ridiculous Fish has improved his fast maths integer division algorithm - proof included.

Thursday 20 October 2011

Roguelike Radio - Episode 8 (Progression Systems)

Has been up for a short while now at Roguelike Radio. I've been too busying playing bRogue to be posting this in a timely fashion - as you may guess from listening to the podcast. However, it appears that I was not busy enough not to have anything to say. I was also involved in episode 7, on 100 Rogues, which I neglected to post earlier.

We're on iTunes so please rate and comment on the podcast there to help spread the word.

Friday 14 October 2011

Something fishy going on

It's not often you see something like this in the Steam patch notes:

  • Dramatic increase in performance for low-level math libraries
I have a hunch that it may be something to do with Ridiculous Fish, a recent (and not so recent) Angband contributor, and a fast maths library he wrote.

Thursday 13 October 2011

C-

Where I respect what Steve Jobs achieved, I wouldn't be writing this blog without Dennis Ritchie.

Wednesday 12 October 2011

Brogue 1.5 released

I seldom mention other roguelikes being released, but I think this one is a little special. We recently discussed Brogue on Roguelike Radio and the first line of the Brogue 1.5 change log caught my eye.

Dungeons now include interactive “quest rooms,” which include lock-
and-key puzzles, collapsing/flooding terrain, hidden items, elaborate
traps, challenges, boss monsters and more. 
I asked Pender the obvious question 'How random are these? Will you get the same lock and key puzzle in the same room every time?'. His response has got me genuinely excited:
Pretty random, and definitely not. The level geography is generated
randomly, and then the quest room function takes over, picks a quest
room type (of which there are currently 17, defined by the data in a
master blueprints table) and scans the level to find discrete areas
that meet certain requirements of that quest room -- e.g. a dead-end
area of certain size range that is dominated by a single chokepoint
cell. Then it adapts that area to serve as that kind of quest room.  
He goes on to describe a nifty flood trap (that you may want to avoid reading to not spoil yourself) which is completely dynamically generated and triggered when you get a key from the centre of the room. And the puzzles can have dependencies on each other:
So the key that you take from the room, assuming you escape, will be
used to unlock a door elsewhere on the level. These locked rooms can
be nested within each other, as can the rooms that guard the keys, and
it is always possible to unlock them all in a single game
For the full explanation, change log and download links, see the Google groups thread.

Monday 10 October 2011

Rage on RAGE

I hate to see a developer getting burned by speaking to the public frankly about the issues they experienced during development; but the sheer idiotic rage of PC fanbois when John Carmack stands up and speaks his mind has to be seen to be believed.

As far as I can tell, there are two (actually 3) problems with Rage:

1. Six years ago when they began developing the engine, Mr Carmack made an (incorrect) call that the PC was not going to be significantly more powerful than consoles when RAGE was released - which he has spoken about at length.

2. id was anticipating AMD would have a graphics card driver released prior to RAGE being released which had the correct OpenGL extensions and/or performance necessary to handle the code RAGE is using (and AMD did not - in fact they made things significantly worse by releasing some Battlefield 3 beta drivers which bundle an 'ancient' version of the OpenGL drivers).

Sure, John isn't helping things with making public statements prone to misinterpretation, but he's staying consistently on message about this.

The third problem is the technology itself. The megatexture technology uses virtual texturing, in a similar way that the processes on your computer uses virtual memory, so that the actual texture can be much larger than what the graphics card can fit in its memory - with megatexturing it is in the 10s of GBs on disk. Reading some of the patch and graphics tweaks notes, it is also compressed, with both the GPU and CPU tasked with decompressing the texture on the fly with preference given to maintaining 60 FPS. What this means in practice is that you cannot compare your computer's performance running RAGE, to any other game that you've played (even ignoring the additional complication that id is pretty much the only company to use OpenGL instead of DirectX drivers).

The reason boils down to what parts of the computer are getting stressed enough to become a bottleneck. In a traditional game, levels are hand designed so that textures can be loaded (relatively) far in advance, so that the disk performance is almost never an issue - it is occasionally, because you get pop-in - typically at a scene start, but that may as much of an issue with the I/O bandwidth between main memory and the graphics card as between disk and main memory. With RAGE, every part of the computer becomes a potential performance problem - disk, disk cache latency, I/O between disk and main memory, CPU, GPU, I/O between main memory and CPU cache, CPU cache misses, I/O between GPU and main memory and/or CPU cache, GPU memory, other processes running on the system etc. It is highly likely that you have something slowly down one of the areas I've listed that you're not aware of, and a system which stresses all of these will only run as well as the slowest part. To take one example: if you've got a relatively full non-SSD drive before you installed RAGE, not only will you have disk fragmentation, but the files will be written to part of the disk which rotates slower under the drive head, which means that the data will be read from the drive slower.

(The consoles have a significant advantage here, because everything except the game can get out of the way - for instance, you are not running anti-virus software on your Xbox 360 or PS3; and the developers can write to 'bare metal' bypassing the abstraction layer required to support multiple graphics cards.)

So what possible reason could id have with going with such a high-risk design? Well, I'm guessing for much the same reason that every operating system now uses virtual memory - it incredibly simplifies the process of development. Under older memory management systems, such as OS X 9's segmented memory model, and (heaven forbid) DOS's flat memory model, you had to worry about a whole lot more variables: such as the maximum amount of memory you could be allocated at one time, whether that memory was 'near' or 'far', whether another program was attempting to access the same memory, and so on. With virtual memory, memory is always yours, flat and you can effectively have as much as you want (within the limits of the address space) provided you don't try to access all of it at once - the operating system handles the underlying details (relatively) transparently.

With megatexturing (and other virtual texturing methods) you don't have to worry about a texture budget for each discrete level: you just go ahead and design whatever you want, and the underlying engine will handle all the loading and unloading of the parts of the texture that are within (or close to) the actual field of view.

If you've been following John Carmack's public statements in the lead up to RAGE's launch, and have enough understanding of how computers work, none of the above should be a surprise to you.

Equally which, if you have enough of an understanding how people work, none of the subsequent overreaction should be much of a surprise to you either. But the subsequent un-PR-filtered statements by Mr Carmack are doing nothing but add to this overreaction. Which is unfortunate in the extreme, because from all appearances, the technology is the right approach to solving the issue*. Almost as unfortunate as Zenimax' decision not to license it, and likely prohibition on releasing it as open source at some point in the distant future.

*Except that apparently ray tracing is.

Thursday 6 October 2011

iRespect

.

Roguelike Radio - Bonus Episode (Interview with Ido Yehieli)

Is now up at Roguelike Radio.

I've been trying to persuade my fellow podcasters that we should be calling these bonus episodes @sides, to little effect.

Tuesday 4 October 2011

Roguelike Radio - Episode 6 (Dungeons of Dredmor)

Is up at Roguelike Radio.  It's another episode where I say I really enjoyed the game and then spend most of the episode bringing up flaws and making over the top statements that I already regret making. I'm going to follow up with a blog post to clarify some of the stuff I'm talking about.

We're on iTunes so please rate and comment on the podcast there to help spread the word.

Friday 30 September 2011

The Binding of Isaac

Rock Paper Shotgun are the second people to tell me today that the Binding of Isaac is worth playing.

Head over to their comments thread for discussion on whether roguelike-like as a term is a good thing. I'm for it, as I've mentioned previously.

Teaser

Ah... the early days of a project. Given I'm learning the language I'm implementing in at the same time, I'm really happy with the amount of progress I'm making (Thanks [insert-really-cool-library-here]).

Thursday 29 September 2011

Javascript.notEqual(highLevelLanguage)

So, array comparison.

Why is there no standard function for this in Javascript?

Tuesday 27 September 2011

Roguelike Radio - Episode 5 (Frozen Depths)

Is up at Roguelike Radio.  I really enjoy how effective Frozen Depths is at conveying its theme.

We're on iTunes so please rate and comment on the podcast there to help spread the word.

Friday 23 September 2011

Importing save files

It doesn't happen much (at all?) these days, but more games should support importing the save file from an entirely different game.

Early on in Unangband's development history, I supported important vanilla Angband character saves: the game was initially - and arguably still is - an Angband + cool stuff variant. Since then, the two save file formats have undoubtedly diverged, but I'm still tempted to redo this functionality.

Here's a chart of some games which did support this functionality.

Wednesday 21 September 2011

Pinky has shot the food

I wonder if NetPack is a worthy coffee break successor to DoomRL?

Tuesday 20 September 2011

Roguelike Radio - Episode 4 (DoomRL)

Is up at Roguelike Radio. Episode 3, if you missed it, was on Brogue last week - I was on holiday in Fiji so wasn't able to attend. Luckily, this meant I was able to enjoy the first podcast dedicated to roguelikes I've had the pleasure of simply listening to.

We're on iTunes now so please rate and comment on the podcast there to help spread the word.

Monday 19 September 2011

Unangband 0.6.4b released

This is a back port of a number of features from the SVN version which probably deserve some air time prior to me releasing a broken 0.6.5.  You can download the source code from http://prdownload.berlios.de/unangband/unangband-064b-src.zip and a precompiled Windows build from http://prdownload.berlios.de/unangband/unangband-064b-win.zip.

For the full change log, see the official web page.

ARRrrrrrP

Hmm... I didn't realize the ARRP (Annual Roguelike Release Party) this year fell on Sunday the 18th, which was yesterday in this time zone.

However, I'm going to celebrate the International Talk like a Pirate day (September 19th) by releasing a new version of Unangband some time later today.

So happy ARRrrrrrP day instead.

And here I was thinking of coding in Javascript for the next game...

One day a student came to Moon and said, 'I understand how to avoid using BIGNUMs! We will simply use floats!' Moon struck the student with a stick. The student was enlightened.

Friday 9 September 2011

Annual Roguelike Release Party

I'm putting a cunning plan in place to attempt to have a version of Unangband ready for the 2011 Annual Roguelike Release Party.[1]

A cunning plan which is in serious threat of being derailed by this (scroll down for review). You have 3 days to convince me not to buy it...

[1] I cannot promise the new version won't eat your computer however.

Thursday 8 September 2011

Roguelike Radio - Episode 2 (Desktop Dungeons)

Is up at Roguelike Radio.

We're on iTunes now so please rate and comment on the podcast there to help spread the word.

Tuesday 6 September 2011

Historium: A Concise History of A World

You may remember a blog post about some 'house rules' I put together for Civilisation Revolution... umm. I've spent a little more time working on them.

210+ page PDFTeX source. PNG tech tree. GraphViz source for the tech tree.

I have it on good authority that this isn't how you design a game.

(Doing this just reinforces in my mind how awkward it is to design a tech tree, and how clumsy a game mechanism it is).

[Edit: Version 0.2 is up. This is final unless a) there's stuff people want clarified or b) I realise I forgot to put something else in].

[Edit 2: Version 0.3 is up, which fixes refugees - see change log for details. Thanks to Tom for feedback and suggestions regarding Conscription and Professional doctrine changes].

[Edit 3: Version 0.4 is up. Change log.]

[Edit 4: Version 0.5 is up. Change log.]

[Edit 5: Version 0.7 is up. Change log. Change log for version 0.6.]

[Edit 6: Version 0.8 is up. Change log.]

[Edit 7: Version 0.9 is up. Change log.]

[Edit 8: Somehow got up to version 1.6. Renamed from Alternal to Historium, for a variety of reasons]

Sunday 4 September 2011

Help me Internet. What's wrong with me?

I should care about games like Witcher 2, Deus Ex: Human Revolution, Rage and one or more franchises coming out in the next couple of months...

But instead I'm interested in Overgrowth, Hawken, In Profundis, Lords of Uberdark, Blade Symphony and Desktop Dungeons. And by interested, I mean spending my hard earned dollars on. [1]

I mean, I've not even bought Red Orchestra 2, a game I loved the previous version of.

Please cure me of my passive aggressive affair with unreleased alpha indie games.

[1] Technically my wife's hard earned dollars. But I've always had to get approval from the financial controller, so the process is essentially unchanged...

Tuesday 30 August 2011

Roguelike Radio - Episode 1 (Cardinal Quest)

Is now up at Roguelike Radio.

I've had a blast putting this together with Darren and Scott.

Thursday 25 August 2011

Another response

I thought I was going to use this in the last Proceduralism article, but didn't so I'd better highlight it here. Rune Skovbo Johansen has written an excellent response to my Proceduralism article on architecture: Forcing Structure in Procedural Spaces. I highly recommend it as well as following his blog if you're not already.

Proceduralism: Part Eight (Content)

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

This is one of the foundational ideas of procedural content generation: that there is something we can generate procedurally which has an impact on game play. From the PCG wiki:

Procedural content generation (PCG) is the programmatic generation of game content using a random or pseudo-random process that results in an unpredictable range of possible game play spaces. This wiki uses the term procedural content generation as opposed to procedural generation: the wikipedia definition of procedural generation includes using dynamic as opposed to precomputed light maps, and procedurally generated textures, which while procedural in scope, do not affect game play in a meaningful way. The concept of randomness is also key: procedural content generation should ensure that from a few parameters, a large number of possible types of content can be generated.
When I wrote the original Death of the Level Designer article series I set up PCG in direct opposition to PG, but they can clearly be seen as a continuum: dynamic lights and other traditional procedural generation techniques don't affect your ability to play the game until they do (see e.g. the flashlight in Doom, HDR bloom blinding you, trying to snipe through procedurally textured grass and so on).

Here I'm going to be more specific about my use of the word content: I'm going to define it in opposition to what I referred to as architecture in part six. Architecture is when you generate something procedurally and then try to fit game play to it, content is when you generate something procedurally for only game plays sake, and then let the player try to fit meaning to it.

[Edit to add: I'm using the word content in two different ways. As the C in PCG, content includes architecture, but I think it is relatively uninteresting. Topology is more interesting, but if you're just designing a maze for mazes sake: because you're game is set in a labyrinth for instance, then it doesn't help much. A better example would be buildings. If your building interiors are designed primarily to look like real building interiors, it is architecture, but if they're primarily designed to have waist high cover and door ways you can hide behind, it is 'content' driven in the way I'm defining in this article.]

A concrete example should help you. Later versions of Zangband (an Angband variant) feature a procedurally generated wilderness. Briefly, the wilderness map is a 2d array where each cell has three values: law, population and height, where each value is generated using Perlin noise and then normalised to guarantee that extremes of each value exist somewhere in the wilderness. The actual terrain selected for each grid location in the map array is selected from a 3d Whittaker diagram (basically a way of choosing a terrain type where adjacent values are usually similar, but with boundaries between terrain), where each axis is the law, population and height value. Each grid location is subdivided into a 16x16 map array where individual terrain features are generated as defined by the terrain in the Whittaker diagram - sparse trees, grass and occasional pools of water in savannah terrain for instance.

Zangband terrain looks beautiful, and natural up close, but has no bearing to any real world situation because the values used to pick terrain have no relationship to reality. Law is the (inverse) difficulty level of monsters generated in the terrain, population is the frequency of said monsters, and height is a randomiser to ensure that there's sufficient variety in terrain of similar population and law values (remember, the Zangband map is a 2d array), with a value picked for sea level so that a certain percentage of the map is water. High population are converted to towns and cities, high population, high law areas are fields, and low law areas include more dangerous terrain types like pools of acid and lava to complement the increased difficulty of monsters in those regions.

The Zangband procedural generation is, with the exception of height, a content-based PCG system. There is a direct relationship between terrain and the difficulty of the region, which the player can discover, with some explicit linking to player preconceptions (pools of lava), and some less direct linkages (are snowy forests more difficult, or simply at higher altitudes?).

While I said the values used to generate this terrain have no bearing on reality, the player is going to make sufficient meaningful connections between terrain and reality when they play the game. This is possible because the fine grade scale of the game looks plausible: everywhere the player looks appears that it might correspond to something in reality, so the player doesn't notice that the macro scale is nonsensical: actually not nonsensical, but generated completely around game play requirements, instead of ensuring the game matches an approximation of the real world.

While Zangband's wilderness generation code is elegant it doesn't play terribly well in its current form. There's no hard barriers (except for city walls) so it is very easy to move from safe terrain to deadly terrain without recognising the significance of the change, and the destinations you are looking for (dungeons) are sparsely populated because of a design decision to have different dungeon types without enough variety in what can occur in each dungeon. Both those problems can be fixed: one of the first posts for this blog is about wilderness generation using Voronoi diagrams where I propose generating the wilderness more as an undirected graph from randomly generated points on a plane, where some edges are eliminated from the Delaunay triangulation by putting up barriers, and some points are filled with untraversable terrain (mountains, seas, lava) while ensuring that all traversable nodes remain connected.

And I've written about how to make dungeons interesting in the Unangband Dungeon Generation article series: by subdividing the dungeon into one or more 'ecologies' of different but related monster collections which are used as selection lists for what monsters should exist here, and then decorates the dungeon rooms with randomly selected items and terrain types biased towards those which are related the most powerful monster in the dungeon ecology. The assumption here is that the player wants information about the most important thing on the current dungeon level - the most powerful monster that they are going to face, and so ecologies and decorations are selected which relate to some feature of that monster - if it breathes fire, the ecology may have other fire breathers and there may be burn marks on walls and floor and trees, if it is evil, there may be evil monsters and blood spattered furnishings, if it summons wolves, there will be at least one type of wolf available to choose from.

The correlations if you see an orc are only weak: you might be seeing it because the boss was an orc, and the ecology was partially filled with 'orc' monsters, or because the boss was an evil priest and the ecology had 'evil' monsters, or because the boss was a black dragon and it was a black orc (matching on names, instead of creature flags). Each ecology could be built from several such matches so you have multiple hints (and to ensure more variety); similarly the dungeon features chosen were heavily biased (5:1) or (10:1) to pick a feature with a similar match process, but could always pick a random one instead.

This ends up with a biased randomness, where you are being fed enough clues and enough noise that while you think something is going on behind the scenes, you are never quite sure if each piece of information in isolation is relevant. Information is a commodity when it comes to procedural content, but also a litmus test: it's not procedural if it can be spoiled.

The breakthrough in designing this came when I realised that there should be multiple ecologies on a level - with boundaries between each ecology which were filled with weaker related monsters, and that the architecture of the level (huge hallways, narrow burrows, natural caves) could be independent of what was filling it. Prior to those two conclusions, levels had ended up boring, but with multiple overlapping themes the dungeon became a lot more interesting. (For instance, Terraria has three axis in which themes overlap: depth, type of rock, and the presence of water or lava.)

That's because biased randomness was necessary but insufficient: you also require juxtapositions - where something unexpected occurs the player is forced to come up with a way to rationalize it. People are good at telling stories: the positioning of an arrow trap, a skeleton and a snake in Spelunky may be read as the dramatic death of a former explorer, whereas each of these elements separately may lack this meaning.

The big weakness with this biased randomness + juxtaposition approach to creating interesting content (and the simulate everything approach of Dwarf Fortress) is that you need a lot of content to make it interesting because otherwise you never have enough possible combinations to create any significant meaning. Luckily the total cost of creating a new creature in Unangband is incredibly low, somewhat more so for the complicated raw format that Dwarf Fortress uses, but compared to a 3d model (or in some instances a 2d sprite), it pales into insignificance.

Where the advantage is in the marginal cost: the cost to add an extra creature is generally fixed for a procedurally generated environment because once the rules are in place you can generate an infinite number of new levels; whereas in a hand-designed environment you have to potentially change every single level by hand if you should change an assumption about how a creature moves or the player acts, and as the total playable space goes up, the cost of additional content in that space goes up even faster. Procedural generation is how Terraria has been able to add so much content since release.

It is possible to combine procedural and hand-designed content without requiring a huge overhead of content types, by creating vignettes (small scenes) of artist created content which can be inserted into a larger procedural space. Some procedural generation systems consist of nothing but templates of hand-built scenes combined in such a way they can fit together. To make them effective, the vignette should have some random content so that it remains unpredictable when it is encountered over multiple playthroughs, as well as some interior space where the theme of the larger procedural area around them can break through (rather than merely restricting the template to a single theme). Part of the genius of Spelunky is that it consists of pieces of small platforming 'beats' combined together in a way that is only perceptible after multiple play throughs (Darius Kazemi suggests about 500 or so). I would also suggest considering adding bread crumbs of content which can be procedurally placed in the path leading to the vignette to help further integrate the template and the wider level.

Unangband does one better in that it has a room generator that is deliberately designed to create interesting rooms by placing content about the room in a combination of patterns and random placement. Briefly, two overlapping rectangles are created, and then content is placed in either the north, south, east, west or intersection of the two rectangles while a description of the room is created using a Markov chain. The tableau that is created can mimic player actions: bodies and blood can be scattered around the room in a manner similar to the consequences of player combat - creating additional resonance and meaning. More games could benefit from the procedural placement of the detritus of fire fights and assassinations.

Another piece of the content puzzle is progression. I've referred to increasing difficulty level already, but it needs to be stated that increasing reward levels are equally important. You can be sure that any newly generated weapons or treasures are going to be interesting for the player by ensuring that they will be more powerful than what the player has already found (give or take some random variance). Similarly, more challenging monsters are inherently interesting, to a point. To avoid the treadmill of more powerful items + more powerful monsters feeling like Ground hog day you should also expand the range of permitted behaviours: firstly by introducing them singly (ranged attacks, alternative movement) and then in combination.

The final piece of the puzzle is making sure your content is porous and well connected. This allows the player to find the optimal difficulty level for the way they want to play, and to move to freshly generated spaces when the content they have already encountered is exhausted. Terraria does this by allowing a new world to be generated at any time, Angband by allowing new levels to be created on the fly and so on.

But increasingly, developers aren't just relying on the player to find and create interesting content in procedural games, they're inventing methods that rely on simulating player wants and needs. The AI director in Left4Dead and Dark Spore is the best known example, but there are a number of others, and the most promising avenue of new research into procedural generation techniques. And I'll be looking at those in part nine.