There are things that only happen in a lifetime. This was my main motivation for buying the DVD of , the only swiss science-fiction movie ever, and maybe the only one. The best way to describe Cargo is to say that it is classical science fiction: 2001, Alien, Matrix are all clear inspirations. The realisation is meticulous, the special are fine (given the budget of the movie), and I really liked the mise en scène which heavily borrows from the science fiction imagery: the spaceship would fit in perfectly in Blade Runner or Firefly, but at the same time gives a good sense of the emptiness and coldness of space. The use of coulours and themes is also very classical, but efficient nonetheless.

The plot is also quite classical: a spaceship in a dark future and something weird in the holt. The movie is basically a mix of science-fiction themes and ideas and, while the general ideas can be guessed from the synopsis, I still was curious to see where the plot would go. I suppose I’m biased, but I really like the rythm of the movie, and the fact that most of the tension was psychological, the characters are normal people, and the action scenes feel very real because of this.

The result is somehow like a swiss watch of science fiction. Nothing ground breaking, but all the elements have been meticoulously built and fit neatly in place, with all the attention concentrated on the important bits: characters, plot, ambiance, and a refreshing lack of ridiculous action scenes. While the movie is in German, there are English (and French) subtitle available.

GM questionaire


I found this questionaire by the way of the blog of Anniceris, so here are my 23 answers.

  1. If you had to pick a single invention in a game you were most proud of what would it be?
    A scenario where the main NPC changes according to the player’s whims, this is my most played one.
  2. When was the last time you GMed?
    Sunday December the 18th, my first Dragon Dream game in English
  3. When was the last time you played?
    That was a long time ago, I can’t remember.
  4. Give us a one-sentence pitch for an adventure you haven’t run but would like to.
    The players have to recover their dreams an underground steampunk city where they mine horrible things.
  5. What do you do while you wait for players to do things?
    Chit-chat with them, think of the next thing.
  6. What, if anything, do you eat while you play?
    Whatever is on the table, although I try to organise proper meals, instead of munchies.
  7. Do you find GMing physically exhausting?
    Not that much.
  8. What was the last interesting (to you, anyway) thing you remember a PC you were running doing?
    One PC convincing another to become an amazon and spread a magical curse.
  9. Do your players take your serious setting and make it unserious? Vice versa? Neither?
    My setting is not very serious, and my players don’t take it seriously.
  10. What was the last non-RPG thing you saw that you converted into game material (background, setting, trap, etc.)?
    A review of a movie I never saw was the basis for a Serenity scenario.
  11. What do you do with goblins?
    Not much, there are no goblins in the settings I use.
  12. What’s the funniest table moment you can remember right now?
    The point where the players figured out what the emergency rock was for.
  13. What was the last game book you looked at – aside from things you referenced in a game – why were you looking at it?
    It was the Dying Earth rulebook, I love the game, but I don’t see me using as a referee with my players. Still it is a good source of inspiration.
  14. Who’s your idea of the perfect RPG illustrator?
    Keith Parkinson, who, alas, passed away. A good blend of very expressive backgrounds, nice characters and a sense of humor.
  15. Does your game ever make your players genuinely afraid?
  16. What was the best time you ever had running an adventure you didn’t write? (If ever)
    I would say the scénario Un parfum d’Oniroses for Rêve de Dragon, in French.
  17. What would be the ideal physical set up to run a game in?
    A wooden chalet with a fireplace, this is where the best stories are told.
  18. If you had to think of the two most disparate games or game products that you like what would they be?
    Cybergeneration and Dying Earth.
  19. If you had to think of the most disparate influences overall on your game, what would they be?
    Computing theory and steampunk fashion.
  20. As a GM, what kind of player do you want at your table?
    People who are enthousiastic and want to genuinely play, not win. I like beginners, but have often a problem with “experienced” players who take themselves to seriously and hate loosing the control of their characters in the story.
  21. What’s a real life experience you’ve translated into game terms? Almost everything. The last one was channelling my colleagues discussing programming languages into scholars explaining the various writing systems in Rêve de Dragon.
  22. Is there an RPG product that you wish existed but doesn’t?
    Good scenarios for Rêve de Dragon.
  23. Is there anyone you know who you talk about RPGs with who doesn’t play? How do those conversations go?
    The conversation is very interesting, because once you go behond the basics, you have to think about the social protocols that take place around the table and the nuances that make a game successfull or not.

The abstraction trap


One of the omnipresent notion in computer science is the abstraction layer. You can find them everywhere, and a large fraction of computer science academia is about designing proper abstraction layer, and studying the existing ones. I find them similar to metaphors: powerful but also very dangerous, as they can trap you, and warp the way you think. Bad, broken or unnecessary abstractions are the root cause of some of the most horrible code I have seen.

I’m not saying there are no good abstractions, but first that creating the right one is far from trivial, and that even the best designed abstraction will have limitations, and will be based on some assumptions. Sooner or later those assumptions will change, and the abstraction will become more of a tradition than an useful tool – UI abstraction layers are a typical example of this: the expectations and capabilities of the hardware have evolved so much that then current abstractions make little sense.

Often people build an abstraction layer around an unfamiliar API, in that case they are building more of a shield to avoid thinking to much about that API. There will be arguments for doing so: this is a cleaner design, makes the code more portable. The result is, more often than not, a simple wrapper that somehow shifts the model to whatever the author prefers, with no real added value. It adds bugs, code burden, and make the code more complex. When code is passed to another person, she just adds another layer of abstraction on top of the previous crap, and so on.

For me, an abstraction layer is valid if one or preferably both of the following conditions are met:

  • The layer adds some non-trivial property
  • The layer abstracts at least two different implementations

Sockets are a good abstraction, they abstract two very different underlying systems (network streams and files). A layer that hides a SQL database to do read and write operations has little value. A layer than handles multiple url formats has value, in particular if it handles the difficult parts of the various protocols: compression, encryption, proxy handling.

I think writing an abstraction too soon is basically just a case of premature optimisation, only what one tries to optimise is code reuse instead of code execution…