It’s really weird, sitting here and writing code for simulating what’s essentially a rather old-fashioned ideal of an Agatha Christie-style dinner party murder mystery, while listening to an old radio show “Night Watch”, which is basically a 1950s version of “Cops”, on the radio.. in this episode, the police were interrogating a murder suspect. (Who in the end turned out to have done it, but in justifiable self defense)
Next up on the schedule, “Dragnet”. And I’m in the middle of writing code to make the murderer try to find somewhere to safely hide the murder weapon, after committing her crime (it’ll be found when the police turn up, but the other guests won’t see it in the meantime). It’s gonna be an odd evening. :)
Well, the code’s finally to the point where the game can actually randomly generate a murder timeline. As it turns out, Bill killed Sam at approximately 12:15 AM, in the bathroom. Unsurprisingly, he used the Nondescript Murder Weapon(tm) to perform the dastardly deed. (When oh when will they learn that Nondescript Murder Weapons can be dangerous, and should be kept locked up? :) )
Now I just need to fill out each individual guest’s memories of the night (as opposed to the factual, actual events of the night), and then.. you know.. put in some sort of interface for the user to actually play the game, rather than analysing the events of the night by inspecting variables in a debugger. :)
I’m finding myself growing more and more surprised at just how much code needs to be written for this mystery game, even as I continue to pare it back to make it achievable in the time limit, and just how little of the code actually puts anything visible up on screen.
Here’s the current state of play:
I’m planning for this game to be the first of two “Games in a Week”; the second will build on the first one, to make a more well-rounded game, but the first one will be a fully playable game in its own right.
This first game (as yet unnamed) uses a static, fixed mansion layout, currently seven rooms. There
are also a fixed set of seven “guests” at the mansion. The events of the evening, however, will be generated randomly. The player gets the opportunity to replay the events of the evening from each surviving guest’s point of view by using an “interview guest” interface, but guests may have faulty memories or may be lying (due to being the murderer). In this interface, the player will see the guest’s memories of his movements through the mansion on the evening, along with where they saw other guests, and where they saw the murder weapon. Once the player has compared the memories of the guests, he will have the opportunity to accuse one of the guests of being the murderer, and optionally to nominate the time at which the murder took place. Get the murderer right, and you win. Get the time of the murder right for bonus points.
As you’ve probably noticed, this first game entirely abstracts away the concept of motives, and of determining a murder weapon. It also removes navigation (as characters can move instantly from any room to any other room; the hallways are not counted as locations), and theplayer never moves around the house himself; the game is entirely driven by menus and other interfaces, rather than giving the player a direct avatar within the world. I’d like to add all of these things into the second game. But trying to randomly generate a solvable puzzle is turning out to be a big enough task without also worrying about collision detection and pathfinding. ;)
Big weather here, the last twenty-four hours. Downed trees, cancelled public transport, and total lack of power.
Which pretty much removed a day of development time on the Game in a Week. The power’s back now, though, and I’m back onto it! With any luck, I’ll have some interesting screenshots soon!
And now for the bit that I didn’t have time to type out last night. :)
Twisty Little Passages is a neat history of interactive fiction; the genre that has grown out of text adventures. I bought my hardback copy from a bookshop stall at GDC in 2005, and have to confess that I still haven’t read the whole thing; it’s been on my “to be finished the next time I take a flight somewhere” list for ages, but keeps being passed over at the last moment, since it’s a reasonably sizable hardback book. In any case, the book is copyright 2003, and is published by The MIT Press.
I used to be heavily into interactive fiction, to the point that I had a few games of my own in progress, one of which was a tiny little experimental game entitled “The Jaws of Victory”, which I’d intended to finish up and enter in three different IFComp competitions, but was completely stuck for a satisfying endgame sequence. Oh well. But I do still play the IFComp entries each year, though often not in time for the voting deadline.
Since it was mentioned in the quote providing the theme for the GiaW, I spent some time looking at Mystery House today, as well as a few of the revamps and spoofs over at Mystery House Taken Over. I’d not seen the game before, and as it turns out, it’s really an interesting piece of gaming history. I’m going to need to make a few nods to it in my game. :)
Anyhow. My plan now is to start prototyping the basic gameplay using a static set of data, both level geometry and events. Once I have a basic gameplay prototype, I’ll return to random generation of the game data, to make it play differently each time. Hopefully I’ll have a few concept screenshots within a day or two.