Posts

Showing posts from 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"…

[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 …

[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 whic…

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 …

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.

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 …

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.

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 intera…

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.)

Designing achievements

Nowadays, many games offer an achievement system: if the player manages to do X, the game recognises this and keeps a record of it in a privately or publicly accessible place. Many of us will have felt a deep suspicion about achievements. Aren't they designed to appeal to the worst part of us, the part that likes to hoard (and sleep, and feed)? Isn't the whole point of achievements to seduce us to waste our time trying to get them all, even though doing this is neither particularly fulfilling nor particularly fun?

Such suspicions are well-founded, and very often correct. Mocking achievements is good. And yet, there also good achievements, achievements that do add something to the game experience. So let us look at what is good and what is bad. (Recommended reading: achievement design 101 at Gamasutra.)


Good achievements

Additional challenge

Many games ask you to perform at a certain level before you are allowed to continue. In a shooter, you must get through the level without lo…

Kerkerkruip - looking for testers

Kerkerkruip has entered beta, and I'm looking for a few testers. If you are interested, please send me an email at victor@cc.lilith -- except that I have cunningly switched "lilith" and "cc" to confuse the spam bots!

Even if you don't have time to really test the game, you can still help me out in a few minutes if you have access to (a) OS X, or (b) older hardware. I need to know how the game runs on the OS X interepreters, and I need to know what the minumum hardware requirements are. (Kerkerkruip runs without noticable delays on my own system, but turns take a noticable, though not irritating, amount of time on an EEE-PC netbook.)

Also, I will post no more updates about the game on this blog until the competition is over. I do not want to build "hype", or even raise the suspicion that I am trying to do so.

So radio silence starts now.

[Inform ATTACK] Version 3 released

I am happy to announce Version 3 of Inform ATTACK. As always, the latest version can be found here; if you specifically want version 3, click here.

Code written for version 2 will generally be compatible with version 3, though you should check out the changelog below to see if any of the changes might interfere with your existing code. Updating to version 3 is recommended because it brings a more robust handling of readying and natural weapons. Version 3 also adds the "weapon damage bonus" property, which can be used to increase or decrease the damage dealt by weapons in a more flexible way than was previously possible with only the "damage die" property. (The base damage dealt by a weapon is now a random number between 1 and damage die, plus the weapon damage bonus.)

Full changelog:

Added "wield [weapon]" and "use [weapon]"' as synonyms for readying. Readying now applies to a visible rather than a touchable thing. A new check ready…

On judgement

This post has been in the back of my mind for a very long time, but has recently been promoted to the front by reading reviews of The Witcher 2. I guess I should make it now, before a proximity with a competition I intend to enter may make it seem less disinterested than it, of course, is.

Here is a typical discussion you'll find on the internet about a review of a game.
A: This review sucks, because X.
B: A review is just an opinion, man! It can't be wrong or right.
C: No, a review is not just an opinion.
D, E, F, G and H: You're really stupid!But C isn't stupid. C is right. If you write a review, you are not just giving an opinion. You are giving a judgement, and a judgement is something that aims to be reasonable and objective. There are standards to which a judgement must conform; and a judgement can fail to conform to those standards and be wrong.

It is important to understand that this reasonableness and objectivity have little to do with the final verdict express…

Kerkerkruip design journal #8: an update on progress

Image
You may think my not posting about Kerkerkruip means that I haven't been working on it. Nothing could be further from the truth, however. In fact, I am very rapidly approaching the first beta: a feature-complete game with documentation, cover art, and hundreds of bugs!

Talking about documentation, I am planning on recording a short introduction video. You will see me playing the game in gargoyle (the video captures a part of my desktop), and you will hear me explaining the basics of the Kerkerkruip system. Technically, this is very easy (using gtk-recordmydesktop); and I suspect a tutorial video can be a lot more fun than a written tutorial. There will also be written help, of course, for those who prefer it and those who wish to look something up.

I just got permission to use the photograph I found on Flickr, so let me share the cover art with you:


Perhaps the text on the right should be a bit more orange? Let me know what you think.

I'm really looking forward to the IF compe…

Kerkerkruip design journal #7: progress and plans

Thinking up cool things and then implementing them is of course a mode of programming that is a lot of fun. In interactive fiction, it is also generally unproductive: you have a story to tell, and "cool things" are often mere side attractions that decrease the time you have to develop the core game. Luckily, for Kerkerkruip this is not the case. The core game is simple, and adding cool things to it is exactly what I should be doing.

Of course, some thought needs to go into the kind of cool thing one develops: having several hundred weapons with different cool stuff isn't much good if the player can only fight an identical goblin over and over. (Be assured: Kerkerkruip does not have a goblin. It does not have a giant rat or an orc either, and the skeleton is a temporary standard monsters slated for removal.) And although I believe it is important and cool to have "special" situations that only occur in a small percentage of the games, it would be unwise to spend…

On inventory limits

I doubt Kerkerkruip will have an inventory limit. Given that almost all games which feature inventory also feature an inventory limit (the big exception being modern IF), it may be interesting to look at the phenomenon in a bit more detail.

Inventory limits come in several forms.
You can have a straight-up maximum amount of items which the player can have in his inventory. Common in early IF, but pretty unusual in graphical games and even non-graphical rogue-likes, which generally go for the second option, or a combined second/third option. It is used for weapon possession in some shooters, like Borderlands, Left 4 Dead, Crysis 2 and Duke Nukem Forever. (Some of these claims based on reading reviews.)You have a limited amount of types of items you can carry, but can stack multiple tokens of the same type in one inventory slot. There may be a maximum amount of tokens such a slot can hold, and you may or may not be allowed to dedicate multiple slots to a single type of item. Examples are…

On the design of Half-life 2

Yesterday, I finished Half-life 2. Not for the first time; I'm certain I played it when the Orange Box came out in 2007, and I might have played it before that as well. I remember I really loved it.

I loved it a lot less this time around, and in fact have major complaints against the design of the game. This is odd, because I'm pretty sure that the things I loved 4 years ago were the same things I disliked now. Let me try to explain, and I'd love to hear what you think.

Story and characterisation

The story is simply bad. There's a lot of SF nonsense about humans being oppressed by aliens from another dimension, and there's a being out of time who manipulates Freeman for purposes unknown. All very "mysterious", but the kind of mystery where you feel that the guys at Valve are not giving you a coherent story because they don't have a coherent story to give you. This feeling was certainly borne out by the two episodes that followed, which did little to cl…

Kerkerkruip design journal #6: silver weapons

Monsters and the undead

In Kerkerkruip, regular monsters are not only the main obstacles, but also the main opportunities: you gain powers by killing them, and absorbing their souls is the only way of healing. (If you kill a regular monster, you immediately regain all your health.)

This means that having more low-level monsters in the dungeon actually makes the game easier, because you can retreat from a difficult boss fight in order to kill a lowly monster and regain your health. But in general we want additional monsters to make the game harder, especially if they are generated because the player tried something risky, like opening that sarcophagus that may or may not contain treasure... and may or may not contain a monster. Therefore, we have soulless monsters which grant neither powers nor healing; and the most important class of those are the undead.

Undead not having souls makes sense and is easy to remember, and it is also easy for the player to recognise new monsters as undead…

Kerkerkruip design journal #5: regeneration

Kerkerkruip is the new name of my roguelike IF. It is a literal Dutch translation of "dungeon crawl", except that "kruip" translates the verb "crawl" but not the noun "crawl". With all those k's, I think the word looks suitably evil and fantastic for my purposes, and it will be easy to find on Google. (Right now, searching for "kerkerkruip" gives only a handful of results, some of which are machine translations of the English dungeon crawl, and some of which are forum posts by me... I have been known to coin this word before.)

I have been quiet for some time, which may have suggested that I was busy with other things. That was indeed the case. But the past two weeks have seen a lot of development on Kerkerkruip again, bringing new monsters, new items, new 'systems', and in general bringing us a lot closer to an playable alpha. Most of the things I could post about would be just me being joyous about implementing new things …

[Spring Thing 2011] Bonehead

Bonehead is actually the third Spring Thing game I have played, but I have put off writing about the other two because I may want to write something a bit bigger than a quick review on my blog. (No promises, of course) These two other games were The Promise, a game with a lot of good stuff and an ending I hated, and Mentula Macanus: Apocolocyntosis, which it would be hard to recommend too highly. (Though check out Jimmy Maher's blog for another opinion.)

So, Bonehead by Sean M. Shore. This game is about baseball, and specifically, about what is apparently an infamous game of baseball in which Fred Merkle either made a stupid blunder or, depending on your perspective, was the victim of what RPG players will call a rules lawyer. The structure of the piece is interesting: you are told in the beginning that this is going to be the worst day of Merkle's life, and you get non-interactive flash forwards to prove the point. It is possible to escape from your fate, but only through ear…

SPAG #60; Lyttle Lytton 2011; nY #9

Three pieces of unrelated news concerning me and (in one case very tangentially) interactive fiction:
The new SPAG is out, now with a beautiful cover, many interviews, an interesting design document for Hoist Sail for the Heliopause and Home, an overview of the PAX 2011 Demo Fair, and my analysis of Gigantomania. It is not too early to start writing a piece of criticism, an essay on design, or some other interesting article for the next issue! What about recapping and reflecting on an interesting discussion that has been held on the blogs or the forum? There are many possibilities. SPAG needs you!I sent in a sentence to Adam Cadre's 2011 Lyttle Lytton competition, where you have to write the worst possible short opening sentence for a novel. I'm pleased to say that Adam awarded me a shared second place for:
This is the story of how one woman overcame breast cancer by never ever losing faith in herself.Coincidentally, just after I had sent in this sentence, big posters appeared i…

[ATTACK] Inform ATTACK version 2 released

I'm happy to announce the release of Inform ATTACK version 2. Apart from adopting a new and saner version numbering system, this release adds a couple of small features, fixes several bugs, and fixes many typographical errors in the manual. Get it from the usual link.

Change log:
Fixed a bug whereby the going action was counted as acting fast, because it triggered the looking action.The decide whether hate is present routine now calls a rulebook called the hate rules, in which there is one standard rule called the standard hate rule. This makes it possible for the author to customise when ATTACK thinks a combat is being fought. ATTACK now stores its decision about whose turn it is in the main actor variable. Thus, if you want something to happen every turn when the player is the primary actor, you can now write an "Every turn if main actor is the player" rule. (You cannot use the actor variable for this, because Inform will always reset this to the player by the time you…

Dungeon design journal #4: making a monster

Introduction

If you are using Inform ATTACK, how much code does it take to create a monster? Six words.
The boar is a hostile person.I have spent a considerable time coding up three monsters for my dungeon crawling game. The third one took me about 1600 words, which is a little more than 6. Where does the discrepancy come from?

One of the main design goals of almost any tactical combat game should be to make the enemies as diverse as possible. This is not necessarily easy. Desktop Dungeons, which features only a handful of monsters, has only few good ones. Mostly it is just the "raise one stat, lower another" approach: a monster with a lot of health but little damage, a monster with little health but a lot of damage, a monster with high magic resistance but low health. Dungeon Crawl Stone Soup has many awesome monsters, like hydras and ugly things, but also (certainly on the earlier levels) a lot of monsters that feel more or less identical. And I for one wasn't impressed…

Dungeon design journal #3: design philosophy

With the basic system in place, the times has now come to think about content. In fact, I have already coded up two rooms -- one of which is the Entrance Hall, which doesn't do an awful lot. But before I dive into content creation, I should spell out my design philosophy, both to make it explicit for myself, and to get some early feedback.


Thematic background

The thematic background of the game will be sword & sorcery: gritty and violent fantasy that takes place in crumbling civilizations built on the ruins of even older empires. It is a world where wizard don't throw around fireballs and other flashy weapons of mass destructions, but cast curses that trap the soul or rot the body -- curses they have learned in a search for forbidden knowledge that left them more demon than human. It is a world where horrific monsters threaten mankind everywhere, but where no elves, dwarfs, orcs, trolls, faeries, or any of the other "races" of Fantasyland have ever been seen. It i…

Dungeon design journal #2: further dungeon generation

After getting the basics of randomly generating the dungeon map in place, I spent some time cleaning up the code. This is a necessary step in any larger project: whatever you have written after several hours of obsessed coding may work, but it is almost certainly not pretty. Cleaning up the code can be as easy an rearranging it and adding headings, but more commonly also involves separation (any part of a routine that might come in useful elsewhere should be written as a stand-alone routine) and rewriting (of code that is either ugly or not as general as it could be).

One thing I tried to do this time is reducing the number of global variables I used -- using local variables for local properties is neater and less prone to strange bugs later. However, I don't think you can send local variables to rulebooks. You cannot, for instance, write "consider the monster scoring rules for (guy - a monster) at (place - a location)" and then use "guy" and "place" …