Thursday, January 19, 2012

Full results of the IF Top 50

Remember when I published the results of the IF Top 50, and said that I would soon post the full results? And then forgot about it? Well, I remembered! You can find the ODS spreadsheet here. The names of those who sent me a list by email or private message have been anonymised.

The spreadsheet should be self-explanatory: people are in columns, games in rows, and a "1" is a vote by that person for that game. Sheet 3 contains a list of all games and the number of votes they got.

Wednesday, November 16, 2011

IF Comp Results

The results of the Interactive Fiction competition 2011 are in. Kerkerkruip took a very respectable 8th place out of 38 games, which was almost exactly what I expected. What I didn't expect, at all, was having such a low standard deviation! Either fewer people than I expected hate roguelikes, or people were impressed enough by the technical aspects of the game to ignore their dislike of the genre.

Participating in the IF Comp was a very good idea. Kerkerkruip has now been played by many more people than I would have otherwise reached. That is not just something to caress my ego, as we say in Dutch, and not just a way to get more feedback either, though it is that. What I hope is that Kerkerkruip will become something of a standard example of randomised combat and tactical gameplay in IF. Not in the sense of "the standard", but in the sense of "one of the ways you can do it, and a game you should take a look at if you want to attempt something in that direction". New authors wanting to write a combat game appear surprisingly often, and until now there weren't many clear examples you could point them to.

What about the future Kerkerkruip? I intend to keep this project alive. Knowing myself, that means I will work on it like mad for two weeks and then forget about it for three months, but that is fine. Kerkerkruip is the kind of game you can keep improving and extending. It is the project I can turn to whenever the urge to make something really game-like overcomes me. (May it be the project I can turn to whenever the urge to buy and play Diablo 3 threatens to overcome me!)

I have set up a Mantis bug tracker for Kerkerkruip, so if you are interested in seeing what I've been doing -- or interested in reporting bugs in that way, though email is probably better -- you can check it out. The bug tracker does contain spoilers, of course.

The comp was a lot of fun, the authors' forum was great, the reception of my game was as good as I hoped; in other words, I'm happy with it all. Thanks to everyone who made this event happen! And congratulations to my fellow authors!

Thursday, October 20, 2011

[Inform 7] Complex interaction, events, and rulebooks

Suppose that your game involves people that can be sleeping or awake; and a huge gong, that, when struck, wakes up everyone in the room and all adjacent rooms. This is the most natural way to implement something like that in Inform 7:
Carry out hitting the huge gong:
   say "You hit the huge gong!";
   repeat with guy running through near people:
      now guy is awake.
Where I am, of course, assuming that you have already created a definition for "near", and so on.

This is fine if your game is simple enough that (a) waking people is the only effect of hitting the huge gong, and (b) hitting the huge gong is the only cause of waking all near people. But if you are aiming for a complex world model, this will often not be the case; and even more often, you will not be certain whether it is going to be the case.

Why is this a problem? Because you do not want your code to look like this:
Carry out hitting the huge gong:
   say "You hit the huge gong!";
   repeat with guy running through near people:
      now guy is awake;
   other stuff that happens;
   more stuff that happens.

Carry out pushing the alarm button:
   say "the alarm sounds!";
   repeat with guy running through near people:
      now guy is awake;
   other stuff that happens;
   more stuff that happens.

Every turn when having-a-screaming-fit is true:
   say "You continue screaming.";
   repeat with guy running through near people:
      now guy is awake;
   other stuff that happens;
   more stuff that happens.
Evil code duplication! Maintenance nightmare!

This is obviously better:
Carry out hitting the huge gong:
   say "You hit the huge gong!";
   have a loud noise event.

Carry out pushing the alarm button:
   say "the alarm sounds!";
   have a loud noise event.

Every turn when having-a-screaming-fit is true:
   say "You continue screaming.";
   have a loud noise event.

To have a loud noise event:
   repeat with guy running through near people:
      now guy is awake;
   other stuff that happens;
   more stuff that happens.
But that is still not ideal, because all code that relates to loud noises must be in the same place. If I code up a delicately balanced Cavendish experiment that will be unbalanced by loud noise (and believe me, it will), I want to have the code about the unbalancing right there with all the other code having to do with the Cavendish experiment. I want to be able to see what the experiment does and how it can be influenced at a single glance, not by looking through the entire code.

I would like to suggest that the natural way to think about this is the following. Loud noise is a kind of event. If object A can generate that that kind of event, this should be defined in the section of the code pertaining to object A. If object B is influenced by that kind of event, this should be defined in the section of code pertaining to object B. This gives us the cleanest, most readable code, that is easiest to maintain and extend.

How do we do that in Inform 7? By using rulebooks, of course:
The loud noise rules are a rulebook.

Carry out hitting the huge gong:
   say "You hit the huge gong!";
   consider the loud noise rules.

Carry out pushing the alarm button:
   say "the alarm sounds!";
   consider the loud noise rules.

Every turn when having-a-screaming-fit is true:
   say "You continue screaming.";
   consider the loud noise rules.

A loud noise rule (this is the noise wakes people rule):
   repeat with guy running through near people:
      now guy is awake.

A loud noise rule (this is the noise does other stuff rule):
   other stuff that happens.

A loud noise rule (this is the noise upsets the Cavendish experiment rule):
   upset the Cavendish experiment.
And all these snippets of code can be placed wherever they most naturally belong -- in the parts of the code pertaining to gongs, alarm buttons, screaming fits, sleeping, and the Cavendish experiment respectively.

But of course this means that, knowing that you are building a game with a complex world model, you should have coded that very first gong like this:
The loud noise rules are a rulebook.

Carry out hitting the huge gong:
   say "You hit the huge gong!";
   consider the loud noise rules.

A loud noise rule (this is the noise wakes people rule):
   repeat with guy running through near people:
      now guy is awake.
Which may seem exceedingly wordy at the time, but will pay off in the long run.

Today's lessons, then: learn to love rulebooks even more than you already do! Resist the temptation to implement special cases!

Saturday, October 01, 2011

[Results] The Interactive Fiction Top 50

The results of the Interactive Fiction Top 50 are in! No fewer than 35 participants cast a total of 437 votes on 183 different games. Of those games, 48 got three votes or more, and those are the games that will appear in the Top 50 below -- so it is actually a top 48. Games which have the same number of votes appear in the same spot, and will be listed in alphabetical order (ignoring "the", "a" and "an").


Does this mean we finally have proof that game X is better than game Y? Of course not. But I hope you will be inspired to try some of these games. Or perhaps you will be inspired to tell us about that game you think really deserves a spot in this list but hasn't received enough attention. Most of all, I would like you to click on the link above and read the reasons that people gave for choosing one game or another. After all, a reason close to your heart may be more important than a large number of votes.


Fuller results, including a list of games which got two or one votes, will follow; but now, without further ado, the top 48!


First place -- 17 votes

  • Spider and Web, Andrew Plotkin (1998)

Second place -- 14 votes

  • Lost Pig, Admiral Jota (2007)
  • Photopia, Adam Cadre (1998)

Fourth place -- 11 votes

  • Anchorhead, Michael Gentry (1998)

Fifth place -- 10 votes

  • A Mind Forever Voyaging, Steve Meretzky (1985)

Sixth place -- 8 votes

  • The Baron, Victor Gijsbers (2006)
  • Blue Lacuna, Aaron A. Reed (2008)

Eighth place -- 7 votes

  • Savoir-Faire, Emily Short (2002)
  • Shrapnel, Adam Cadre (2000)

Tenth place -- 6 votes

  • Shade, Andrew Plotkin (2000)
  • Slouching towards Bedlam, Star Foster and Daniel Ravipinto (2003)
  • Trinity, Brian Moriarty (1986)
  • Varicella, Adam Cadre (1999)
  • Vespers, Jason Devlin (2005)
  • Violet, Jeremy Freese (2008)

Sixteenth place -- 5 votes

  • Galatea, Emily Short (2000)
  • The Gostak, Carl Muckenhoupt (2001)
  • The King of Shreds and Patches, Jimmy Maher (2009)
  • LASH -- Local Asynchronous Satellite Hookup, Paul O'Brian (2000)
  • Make it Good, Jon Ingold (2009)
  • Rameses, Stephen Bond (2000)

Twenty-second place -- 4 votes

  • Ad Verbum, Nick Montfort (2000)
  • Aisle, Sam Barlow (1999)
  • All things devours, half sick of shadows (2004)
  • City of Secrets, Emily Short (2003)
  • Curses!, Graham Nelson (1994)
  • Fail-safe, Jon Ingold (2000)
  • Gun Mute, C. E. J. Pacian (2008)
  • Sunset over Savannah, Ivan Cockrum (1997)
  • Treasures of a Slaver's Kingdom, S. John Ross (2007)
  • Wishbringer, Brian Moriarty (1985)
  • Worlds Apart, Suzanne Britton (1999)
  • Zork I, Marc Blank and Dave Lebling (1980)

Thirty-fourth place -- 3 votes

  • 1893: A World's Fair Mystery, Peter Nepstad (2002)
  • Adventure, William Crowther and Donald Woods (1976)
  • Aotearoa, Matt Wigdahl (2010)
  • Arthur: the Quest for Excalibur, Bob Bates (1989)
  • Blue Chairs, Chris Klimas (2004)
  • Delightful Wallpaper, Andrew Plotkin (2006)
  • Eric the Unready, Bob Bates (1993)
  • Everybody Dies, Jim Munroe (2008)
  • The Guild of Thieves, Rob Steggles (1987)
  • Hoist Sail for the Heliopause and Home, Andrew Plotkin (2010)
  • Mentula Macanus: Apocolocyntosis, Adam Thornton (2011)
  • Planetfall, Steve Meretzky (1983)
  • So Far, Andrew Plotkin (1996)
  • Suveh Nux, David Fisher (2007)
  • The Warbler's Nest, Jason McIntosh (2010)

Discussion preferably on the forum.

IF Comp, doctorate

In a couple of hours, the IF Comp 2011 will start. Or at least, the deadline for uploading games will have passed; it might take a little longer before they actually become available. Since I will be participating, I won't be publishing reviews during the competition. In fact, I won't be saying anything at all about the competition, because I don't want to be disqualified.

So let me take this final opportunity and wish the best of luck to my fellow authors, the greatest of wisdom to the judges, and the finest of times to us all.

Also, although this is not a blog about my personal life, I cannot resist the temptation of sharing with you the elation I still feel about getting my doctorate two days ago. Impression of me with my two 'paranimfen': photo. Imagine a committee of 11 people to the left, and an auditorium full of friends, family and colleages behind the photographer. In the Netherlands -- this differs widely between countries -- the actual defence is a big ceremony. At that stage you can no longer fail, but it is still a very exciting day. And you do have to answer difficult questions about your thesis for 45 minutes while all your loved ones are watching (and wondering what you are talking about).

In case you are interested in a PhD thesis on philosophical theories of explanation, you can find it here.

Sunday, September 25, 2011

IF Top 50 -- deadline in 5 days!

If you haven't participated in the Interactive Fiction Top 50 yet, and you still mean to do so, stop procrastinating! The deadline is five days from now: September 30.

You can post your games in that topic, email them to me, or even post them as a comment to this blog entry.

Sunday, September 11, 2011

What is the first secondary world?

Under the influence of Tolkien, fantasy moved towards the creation of secondary worlds. Let me define that term:
A secondary world is a fictional world which is neither a geographical nor a temporal part of our world; and is not connected to it as a dream world, a realm of Faerie, a space of Ideas, a land-beyond-a-portal or anything of that sort. Furthermore, the secondary world should be a real world, not just an allegory.
For instance, the tall tales that Odysseus tells in the Odyssey are fictional and fantastic, but are not set in a secondary world, because they are supposed to have happened on our Earth. On the other hand, modern fantasy writers like Martin and Jordan do use secondary worlds: no explicit or implied relation exists between their fantastical realms and the world we inhabit.

My question is, what was the first book that introduced a secondary world? I haven't managed to think of any clear examples that predate The Lord of the Rings by more than a few years. This is probably wrong. There were probably secondary worlds before 1948 (the earliest book I can think of; see below). But it is not as easy to find them as you might suppose.

For instance, I cannot think of any ancient examples. Later fantasists like Dante, Ariosto and Rabelais evidently put their creations in our own world. Indeed, we can move far closer to the present day and still find the same. The land of Oz can be reached by stepping into a tornado, and is probably supposed to be somewhere in the American desert. Lord Dunsany's Elfland can be reached by humans. E. R. Eddison's magical realm is, if I recall correctly, presented as a dream. A Voyage to Arcturus brings us to its metaphysical mythology by a journey through space. James Branch Cabell's Poictesme is connected to our world through historical transmission of documents. Peter Pan lives somewhere beyond the ocean. Narnia lies beyond a wardrobe. The pulp writers (Howard, Smith, Lovecraft) often hinted that their tales were set in a distant past or future. Fritz Leiber's characters seem to inhabit a weirdly fluid set of dimensions that might very well include ours. Peake's Gormenghast is obviously somewhere on Earth.

The oldest example of a true secondary world that I can currently think of is The Well of the Unicorn by Fletcher Pratt, which was published in 1948. Its introduction explicitly tells us that our world is "another world than the one discussed here"; and it looks and reads much like a piece of modern fantasy. There even is a map at the beginning of the book.

Again, I doubt that this is the first secondary world. So, my general question to you is: what is the oldest example you can think of? There are bound to be some borderline cases, but I'm interested in anything that you think might fit the bill.

Labels:

Friday, September 09, 2011

The King of Shreds and Patches on the Kindle

I don't own a Kindle because, well, closed platform, right? But if you do own a Kindle, have access to the Kindle app store, and have even the smallest interest in interactive fiction, I would like to point you to The King of Shreds and Patches.

The King of Shreds and Patches is a very good game; in fact, it appeared in my recent top 10 interactive fiction games ever. It is long, well-written, well-researched, not difficult, and a lot of fun. Because of its length, accessibility, and quality as a page-turner, it is perhaps the single piece of IF which I would have most liked to see ported to an e-reader.

So, highly recommended.


P.S.
I wrote a long analysis of the game here, but you really shouldn't read that until you have finished the game.

Wednesday, August 31, 2011

Participate in the IF Top 50!

Interactive Fiction Top 50

Link to forum topic.

Based on a discussion on the interactive fiction forum, I am organising a interactive fiction top 50 (or a top 100, or a top 20, depending on the number of participants and the distribution of the votes). You send in a list of your favourite IF games, I add those lists together and publish a "best of" list.

The aim is not to decide what the best IF ever is by majority vote -- that would be foolish. Rather, the aims of the top 50 are:
  • To create a good opportunity for people to think about the best games they have played, and discuss their ideas on this topic with others.
  • To allow people to be inspired by what they see on other people's lists.
  • To create a useful list of great games at which you can point newcomers to the IF scene.
  • If it is successful and we do this every few years: to create a way to track how the taste of the community evolves.

To make this work, we need your help. Please send us a list of between 1 and 20 interactive fiction games that you consider to be the best IF games ever made (or at least the best that you have played). The list can be posted at the IF forum or mailed to myfirstname@lilith.cc, where you replace "myfirstname" with my first name. Which is Victor. You can also email me if you want me to post your list on the forum (in case you don't have/want an account). Here are the rules:

  • You can list between 1 and 20 games.
  • The order in which you list the games is not important. The total number of points a work receives is the total number of votes it gets.
  • You can list each work only once.
  • You can list multiple works by one author.
  • You can list your own works.
  • It's up to you to decide whether a work counts as interactive fiction. As a rough rule of thumb, anything that is or should be listed on the IFDB is suitable.
  • We are asking you to identify the best interactive fiction, not the most influential, most important, most innovative or most accessible interactive fiction. (But of course, if you believe that influence, importance, innovation or accessibility are important parts of being good, that is fine.)
  • The deadline for entering your list is 30 September 2011.
  • The organiser is allowed to participate. (It's good to be making the rules.)

You don't need to do anything except send in a list. However, the whole thing will be a lot more fun if you also post the rationale behind your choices in some public place.

I hope to see many of you participate!

Labels:

Tuesday, August 30, 2011

IF Comp reminder

A small reminder for people who want to enter the IF Comp: the deadline for intents to enter is in two days. No reason to delay any longer!

(Note: I'm not an organiser.)