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