Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 627

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 691

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/kses.php on line 692
Mar 10

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/formatting.php on line 82

You may have noticed that the site has been down for a large part of the weekend and it’s not exactly working at full speed as I’m writing this. It seems my host has had major power problems, frying a large number of their servers. I had a post scheduled for today, which was eventually posted as scheduled, but the site is working very slowly at the moment so it would be a pain to make a regular update. Hopefully things will return to normal very soon — apologies for the problems.

Jan 14

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/formatting.php on line 82

Here’s an interesting quote by Bill Gates, from a recent interview, in which he describes how he’s never fully satisfied with Microsoft products:

There are always the features that I wanted to get in, or the things that I wish were a little more polished. The people who are good in these companies are really sort of ridiculously demanding people. They have to sort of know when to back off so that thing can eventually ship.

I think it applies to game designers as well: you need to be a perfectionist, but know when to let things go and get the game on store shelves.

Jun 24

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/formatting.php on line 82

Just yesterday I ranted about bad game reviews, and today Gamespot announces they’re changing their review system. Surely it can’t be pure coincidence… ;)

Jun 2

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/formatting.php on line 82

Game design documents are almost universally terribly boring to read — a paradox considering they’re describing something fun. That’s because they describe every part of the game in a lot of details, just like software specs, and software specs are boring.

What we need is to describe the experience we want to create, rather than the piece of software that will create that experience. It occurred to me that the best way to do this would be to write design docs in the form of a walkthrough of the game: describing everything in the game as the player sees and feels them, introducing new gameplay elements at the same pace and order the player encounters them. A bit like movie screenplays: they tell the story and it’s for the movie-making team to determine how to make that story on paper into a movie on a screen.

That approach would make for a much more readable design doc, so members of the team would be more likely to read it (something that happens too rarely with traditional design docs). It would also be easier to get a feel of the game to see if it has the potential to be fun, and some problems with approachability and pace could be resolved before production even starts.

On the other hand, the document would be harder to refer to — if you’re looking for the behavior of one specific enemy, there wouldn’t be an easy-to-find section called “enemies” to refer to. That means more work for planning and separating all the tasks to be done. A separate reference document could be useful for this. It wouldn’t be made to be read from start to finish, but it would contain all the technical elements that are needed in a format that’s easy to refer to. Writing the design as walkthrough would also be harder for non-linear games — how could you cover Civilization entirely that way? — bu that wouldn’t be an issue for most games.

That approach would be a radical change from the established approach: as far as I know, nobody writes design docs in that way. I think the potential for higher quality of design outweighs the cons, so I’d have to try it out to see if it’s still the case in practice. Any thoughts?

Sep 14

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/formatting.php on line 82

The news broke out yesterday evening that everybody will be able to get their hands on Nintendo’s Wii on November 19th in exchange of $250. The date is a bit later than could have been — it’s 2 days after the release of the PS3 — but the price is exactly what Nintendo said they wouldn’t go over. It’s also much cheaper than either the Xbox 360 ($300 or $400) or the PS3 ($500 or $600).

Yet, general reaction is a bit negative among fans, based on reading a few forums. Lots of people believed that the price would be much lower — $200, or $150, even some mentionned $99! — because Nintendo said it would be “under $250″. Of course, it was a bit naive to believe that a company would mean anything other than $249.99 with that line.

Still, this belief indicates a potential problem for the Wii: overhype. Nintendo was able to get a lot of very enthusiastic fanboys for their new platform. Hearing them, you’d believe that the Wii’s graphics would be as good as the PS3, the controls of every game would be absolutely intuitive and infinitely improved by the wiimote, and that every game will be incredibly fun and highly innovative.

Problem is, it’s not going to be the case. Even if the Wii is a very good platform — and it looks like it is — it will fall short of fanboys expectations. The hype is just too high at this point. This overhype may bring lots of sales on day 1, but it could cause a backlash afterward. If early adopters are let down by the Wii’s capabilities, it could make others reconsider their purchase.

Just look at the Segway for another example of overhype. It was supposed to be a revolution, but when people realised it was just a really cool scooter, the backlash made sales fall. Likewise, the Wii is supposed to be a Revolution, but when people realise it’s still just a really cool console, there may be a backlash.

One thing is certain, it will be interesting to see how this whole console war plays out this fall…

Aug 21

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/formatting.php on line 82

Sales data for videogames are usually pretty hard to find, but I stumbled upon a really useful site: Videogame Sales Charts. It compiles sales data from a number of sources, covering hardware and software, and makes it available for free. You can compare two items together (e.g. how do the sales of the Xbox 360 compare to those of the PS2 in the USA?) or look at the history of sales (e.g. What were the monthly sales of Vice City?) and more. Very useful if you’re evaluating the potential of a new project or if you’re just curious about the gaming industry.

Aug 6

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/public/wp-includes/formatting.php on line 82

Dice Wars is a very nice little Flash strategy game, mentionned on Phil Steinmeyer’s blog. The basic rules are pretty simple. You have a number of dice in each of your territories and can attack neighbouring territories by rolling your dice against theirs. If you get a higher roll, you take control of the enemy’s territory by moving all your dice in it, except one who stays to protect your previous territory. If you get a lower roll, you lose all your dice but one. At the end of the turn, you get assigned, in a random territory, one new dice per contiguous territory you control. The winner is whoever is able to control the whole map.

That’s all there is to it. Even with the simplicity of the rules, there’s a surprising amount of strategy in the game. Kudos to whoever created this game, it’s not easy getting good simple ideas. It’s easy to have good big ideas (”It’s Oblivion meets GTA, but bigger and you can play it either as a MMORPG or single player!” is the type of things aspiring game designers usually come up with — hey, I did it too) but the art is in coming up with good, simple stuff.

Another simple and fun game in this category is Planarity, which I think I mentionned in the past.