Looking back on my year of gaming in 2009 makes me realise I'm stuck in 2008. With the exception of Torchlight*, I have bought no major commercial releases this year, and Torchlight is not a full priced game. With the ability to buy games as cheaply as the sales that Steam and other digital distribution services have on now, as well as the discounting curve that most major release games follow, I have no incentive to pay full price for a game. I am prepared to shell out not very much money for iPhone games, of which I've bought a few. Unfortunately, the only one I play on a regular basis is Civilisation Revolution.

Left4Dead2: Censorship Australia has censored my wallet. Yes, I can hack around it, but I'd rather not buy, on the basis that Valve has more chance of pressuring the Australian government to change that set of ridiculous laws then I do (I'm a foreign national, so I can't vote in Australian elections). Besides which, I'm more angry about other ridiculous laws that are getting passed here...

Section 8: My multiplayer experiences this year have been cramped by a poor ADSL connection. And is it better than the continually evolving Team Fortress 2?

ARMA 2: Waiting for the patch that fixes everything...

Men of War / Order of War: Just didn't get into the demo enough to justify buying at this stage.

AI War and Solium Infernum: Played the demos. I can see how these games could be good in a world where I had a lot more time than I do now. What I want is a strategy game that plays like Civilisation Revolution on the iPhone. On the iPhone. Uniwar doesn't feel like it has the depth I need. And I'm sick of tower defense.

Dragon Age: I have Baldur's Gate disc sitting in the package, unopened. I've played the first 30 minutes of Oblivion and the first two hours of Morrowind. Why buy another RPG I won't play because of time constraints and the paralysis of 'which mods do I load?'

Captain Forever / Successor, Spelunky, other critically lauded indie games: I'll play these as soon as they start developing them in a genre I enjoy. Just not platforming / scrolling shooter... to be honest, this is the one area I regret not spending more time on.

Some console games which have got rave reviews: I still don't have a Playstation 3, Xbox 360, Nintendo Wii. And I'd only want to play Metal Gear Solid anyway. To the point where I might go look for a PSP second hand.

Some great sounding Nintendo DS games: Since I bought the iPhone, I haven't picked the DS up once. Actually, since Brain Training...

So a disappointing year all round. But it's been entirely my fault...

So what have I been playing?

Civilisation Revolution: I had to stop playing this, and start functioning as a human being. So I did what I always do to stop making a game enjoyable for me. I redesigned it.

Canabalt: Great two minute filler. Should really download the improved version. Review is here.

Puzzle Quest: Challenges of the Warlords: Parts 1 & 2 for the iPhone: Review is here.

Rolando 2: Bought this on the Edge's recommendation as iPhone Game of the Year (or at least #1 in their top 50 lineup). I can appreciate the vibe, but it just doesn't click for me.

Far Cry 2: Haven't reviewed this beyond some snide comments, but the game is surprisingly pick up and playable if I have a spare hour or so. People complain about the check points, but I enjoy the flow of planning a path through or around check points and having it go horribly wrong. Feels repetitive if you play it too long in one sitting.

Plants vs. Zombies: So apparently this is a 2009 commercial release. Consumed it in one sitting. Never went back. Will get my wife to play this over Christmas some time.

Defense Grid: The Awakening: Consumed it in two sittings - one with no sound due to a Windows bug, one with sound to see if the sound track and dialog was worth it. It really wasn't. Never went back.

Red Orchestra: If you ever want to feel like a hero, play this game. I cannot recommend this FPS highly enough.

Day of Defeat: If you ever find that all the players on your Red Orchestra server are bots, play this instead for a slightly slower, more cerebral version of TF2.

Torchlight: Played the heck out of the demo. Bought it, while feeling ambivelent about the poor monster path finding, resulting kiting gameplay and the slot machine loot fest. Haven't touched it since.

Stalker: Clear Sky: Ended up trapped in a warehouse that was just a buggy as the Stalker: Shadow of Chernobyl release. Never made it out with enough motivation to keep playing. Would go back, but suffering from mod paralysis.

Strange Adventures in Infinite Space and Weird Worlds: Return to Infinite Space: Really fun pick up and play games. Would be perfect for the iPhone other than screen size constraints. I'd recommend the Weird Worlds demo ahead of downloading the free version of SAiIS if you want to try before you buy.

Vampire: the Masquerade: Absolutely enjoyed this while feeling guilty about playing this now I'm married. Stopped at the painful sewers section, which I understand is for the best.

Dystopia: Still playable. Still fun. Still only play Mediums with Assault Rifles and Mediplants.

The Chronicles of Riddick: Escape from Butchers Bay: Really enjoy the production values and story. Couldn't figure out the stealth sections so shot everyone. Ended up in the second Super Max facility, where I apparently turned into Link from Zelda and have to do fetch quests for everyone. Will revisit this with an FAQ.

Spore and Call of Duty 4: Modern Warfare: Went back with the new computer, for an honest reappraisel and to give these games a second chance. They failed.

Research and Development: This is my GotY. And it's a free single player map pack for Half-Life 2.

Sunday, 20 December 2009

James Cameron has clearly spent his time since Titanic both becoming a fervent environmentalist and working closely with the team at Weta workshop developing his new 3d technology, because Avatar both recycles the plot and characters from hundreds of science fiction stories and contains all of the nauseating overindulgence and none of the quirky characterisation of director Peter Jackson.

In this remake of Jim Henson's the Dark Crystal for the Harry Potter generation, any time this Jim is in any danger of expressing an original idea, he instead refers to the scribbled notes he copied as an angsty teenager whilst getting beaten up by seniors and reading Orson Scott Card. Actually, that's an offensive suggestion: the Dark Crystal had balls and something to say, whereas this movie makes Ewoks: The Battle for Endor read like Solaris. These skinny blue Ewoks with boobs set back the cause of science fiction - no, make that rational thought, by a decade.

The only person to emerge with any credibility is Sam Worthington, avoiding this train wreck of a film by managing to spend less than fifteen minutes on screen. Nonetheless, I have never punched the air quite as hard as when the protagonist dies at the end of the movie (spoiler warning), which is longer than any of the characters spend reflecting on the deaths of most of the supporting cast. African and Carribean traditional dress and accents are used as shorthand for alien, which speaks volumes about the racist sensibilities of the production and design direction.

Normally the special effects team would be commended in an otherwise lackluster big summer blockbuster, but they appear to have been lost in the collision of a truck carrying hyper colour t-shirts and a tanker of vaseline.

Saturday, 19 December 2009

The list was taken from the roguelike releases announced on the Rogue Basin news section between January 1st and December 19th 2009 and from the list of Actively Developing Roguelikes maintained by Jeff Lait. There are a record 99 entries this year - up from 75 the previous year.

What about 'x'?

Make sure you announced your roguelike on Rogue Basin for next year. In particular, NetHack didn't make it in, again. One of the previous winners also didn't make it in, much to my surprise. Although another roguelike developed by the same guys did, if you want to vote by proxy.

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 Jeff Lait'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. The Dungeon Crawl Stone Soup crowd didn't seem to need one. 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.

Thursday, 17 December 2009

The second best thing about the pre-release hype for the Team Fortress 2 update has been sorting out my Internet connection and getting some time spent gaming online. The ADSL 2 connection I have at home has had persistent short drop outs for the last 9 months or so, which has been fine for using browsing the net but absolute hell for online gaming. I borrowed a Draytech Vigor 2820 from work last week (because this model sorted out a similar problem one of our customers was experiencing), and since plugging it in the connection has been rock solid. I don't normally mix work and pleasure - and have no interesting in astroturfing this blog - but I am impressed enough to pass on a recommendation.

After having stayed away from online gaming for so long, I expected to be rusty, but the time away turned out to have made my heart grow fonder and made the experience seem fresh and alive. It helped that there was a map update while I was away and I suspect that the line "Significantly reduced the amount of network traffic being sent." from that update has made network play much smoother. I achieved 2nd milestone for the Heavy, Spy and Sniper - with an Uberectomy of a medic standing amidst five of his team mates - and spent plenty of time soloing as a Heavy with Natasha and a sandvich.

(As an aside, it looks like I've glitched on several achievements - I've definitely achieved Does it Hurt When I do this, and I've somehow caused no damage as a Pyro).

As for the Soldier and Demo weapons - the sword and shield leave me cold, and I'll have to play with them to get a feel for how they change the game, but the Scottish Resistance sounds exactly like the Sticky Bomb gun that I want. The Soldier weapons seem more pedestrian, catering to higher skill players - although a banner rush will be a challenge - and to be honest, since the scout update I've been playing less Soldier than Scout. I'm sure there'll be plenty of happy soldiers ready to assplode me with their crockets.

In the big scheme of things, Valve has done an incredible job balancing the introduction of so many new weapons into an already finely tuned game. Only the Sandman aka nerf bat has been rejected by high level players and it's still a fun weapon to use for those of us who are less skilled. Of the remainder, the Heavy, the Spy and (if I could shoot that damn bow) the Sniper have all had viable alternate builds added to the game, without harming their core 'feel'. The introduction of the alternate fire for the Pyro has added well needed depth to that class to the point where I think the Back Burner needs to be unnerfed (+50 health) to compete.

The Medic has suffered the most, being the first class with weapon upgrades, and the Bonesaw and Syringe Gun need to be differentiated further from their replacements (the Syringe gun should boost uber at a rate moderately faster than healing a wounded player if all shots hit at maximum rate of fire; the Bonesaw should make the medic's weapons kritz or perhaps minicrit if it hits twice in a row - similar to the KGB, but obviously with much less potential for damaging the opposition).

As for what to look forward to, I still can't think of anything more compelling than the Quik-R-Ratchet and the Big Red Button, or whatever it is Valve ends up designing for my favourite class. And whatever the 10th class is, I'd like it to be something from the list I suggested (Even if I stole them all from Dystopia).

Tuesday, 15 December 2009

There are several approaches to allocating space for rooms for dungeon generation - Angband and variants use a cell based approach where the dungeon is divided up into 11x11 cells and then cells are marked as being filled when a room is placed which intersects the cell. The most common room size is 33x11 grids, or 3x1 cells, which was chosen because the space available in the Angband main screen was 66x22 grids on the majority of platforms it was ported to. The room sizes ensure that most rooms can be cleanly fit within the display.

A naive approach to placing the rooms is to pick a random top left-hand corner from 0 to dungeon_width - room width in cells, for the x-axis, and 0 to dungeon height - room height, again in cells, for the y axis. This approach is used in Angband and persists for the more sophisticated implementation used in Sangband (and I suspect Oangband and variants) in the find_space routine.

I've discovered several issues with find_space. The first is that space is never freed (cells marked as empty) if the room fails to be placed subsequent to find_space being called - easy enough to fix. But the one I want to talk about here is that the random approach fails significantly often - often enough for room placement to fail even when multiple attempts are made (25 per room in find_space).

My initial attempt to rectify this was to slide the room into an available space 'nearby' by moving it either horizontally or vertically a short distance and checking if it fit again. But this routine just highlighted how expensive multiple iterations within find_space was: making it 5 times more expensive (4 directions to test, plust the initial placement) resulted in a significant slow down in dungeon generation even on my Core Duo notebook.

I realised that there is one fact we know from attempting to place a room and failing that I could exploit: that the location we had tried was full. Sliding 'nearby' was counter-productive because nearby full was probably also full. So I should instead be looking as far away as possible, on the assumption that that would be empty.

The quickest way of doing far away as possible was to try reflection in either the x or y axis and try again. For checking grids near the midpoint, instead of reflecting, the code chooses either edge on that axis; basically a transformation from inner to outer. And to avoid checking the same far away multiple times, the code keeps choosing a random value for the axis that we don't transform - just like the original naive implementation.

To minimise calls to random, we just modulo the loop counter to determine which tactic to use, ensuring that the first time through the loop, as well as frequently enough in later iterations, we keep trying the naive approach.

This approach noticeably improved the success at placing rooms using find_room. It works well even if you don't randomly pick the position of the untransformed axis - because Sangband and Unangband attempt to place rooms from largest to smallest, I ended up with clusters of smaller rooms together, which had collided with a larger room in the originally attempted position, but could be placed near each other in the transformed position. I'm still undecided if I'll keep this artefact - it improves the dungeon aesthetic at a cost of requiring increased iterations to place rooms successfully.

As for moving to another placement method I've seen other coders use, such as binary subdivision, or even simulating playing Tetris, I want to keep compatibility with the original Angband code as much as possible, to keep this portable between variants.

Friday, 11 December 2009

Slashie wisely points out at the Temple of the Roguelike, that by far and away the best tile sets in the TIG Source Assemblee competition are for the roguelike tiles produced by Oryx. Since I have no time at the moment, I'll just point you at the Temple link and you can go from there...