Inform 7 Portfolio
For my inform 7 initial project, I decided to create a semi-mystery game, where the player must navigate through a crime scene (the victim's house) in order to collect clues and solve the murder. Although I did not play any actual mystery-text adventure games, I drew my inspiration from two specific games:
Slouching Towards Bedlam is a game where you're moving towards a creepy insane asylum. I played it as a freshman and just really enjoyed the dynamics. This game was very difficult, however, because you really had to be thorough to find all of the items and descriptions.
9:05 We've covered this game several times, but it's still one of my favorites, mostly because you can solve the game within the first few turns if you know to look under the bed. Even though it makes you do mundane, everyday items, like taking a shower and driving your car, it still teaches the basics of the game. This game inspired me to use the "look under the bed" feature in my game as well.
My major influencer for creating this game is my love for mysteries in general. For as long as I can remember, I've been watching Law and Order with my mom. I still enjoy reading a good Agatha Christie novel. And, I'm not too ashamed to say that I still play the Nancy Drew interactive mystery computer games--although, I now buy them at least a year after their release at a much discounted price.
I also wanted to be able to create multiple endings in my game, and I figured a mystery might be the perfect way to implement something like that. Of course, initially, I planned to let the player determine who the murderer was depending on the clues he collected; however, I ran out of time, and decided to focus on two endings for now. (See below!)
[Opening sets the mood?]
When I look back to my freshman year, I'm really proud of how far I've come when it comes to coding in Inform 7. This was the first time I really utilized the manual inside of Inform 7. With the help of some tutorials and sample coding, I was able to both code an item to appear "under the bed" as well as code a player to find an item in the last dresser drawer. Of the two, I'm especially proud of the dresser drawer coding, because it was much more complex than the "under the bed" coding. Also, I was able to troubleshoot without asking for help from Dr. Jerz to fix my coding when I found errors. Here's a sample of some of the coding:
A drawer is a kind of container. A drawer is always openable and closed. The description of a drawer is "The dresser drawer is crimson just like the the rest of the furnature in the room. It looks like there's a bloody handprint on one of the drawers. Maybe you should look inside..."
The top drawer is a drawer. The middle drawer is a drawer. The bottom drawer is a drawer. The top drawer, the middle drawer, and the bottom drawer are part of the dresser. A drawer can be explored or unexplored. A drawer is usually unexplored. Instead of searching a closed drawer, try opening the noun.
After opening an unexplored drawer when exactly one drawer is explored:
now the noun is explored;
say "You use some force to open the second drawer. Again, you find nothing but the victim's clothing."
Before opening an unexplored drawer when exactly two drawers are explored:
move the bloody knife to the noun;
now the noun is explored.
There's more code that makes this example even more complex, but I don't want it to weigh down the length of this blog entry. Basically the only way the player can obtain the "bloody knife," which is a key object to the game, is to search the entire dresser. Only one of my usability testers took the time to do so.
A few things make the game more complicated as you get further into gameplay. First, the coroner "arrives" after 15 turns, removing the body, along with some key evidence, from the scene of the crime. The game is still solvable without this evidence, but it adds to the story...The whole point of this game is to search as much of the house as you can in order to collect as many clues and uncover the mystery as quickly as possible, because the game also terminates after a specific number of turns (see endings).
I didn't have time to create a point system in my game, so the only rewards I created to encourage gamers to continue playing the game is the clues. As he examines more clues, he uncovers more and more of the mystery, as welll a background information concerning the victim's love and personal life.
Initially, I planned to create a game with several endings--I wanted to allow the user to determine the killer depending on which clues they collected; however, because I was short on time, I limited my gameplay to just two endings.
The losing ending: The game terminates after a specific number of turns (If i disclosed this information, it would ruin the game!) After a specific number of turns, I end the game saying that the murderer got away with it, and killed you along the way.
The winning ending: Once you collect a certain number of clues, you have to give the partner two specific clues to win the game. Again, I'm not telling what clues, because that'll ruin the game :-)
Credits: I used a couple coding samples in the Inform 7 manual and also received help from Dr. Jerz:
Princess and the Pea (for looking under the bed)
I also used coding for the dresser drawers, but I'm having trouble locating the coding example in the manual.
1) I used my mom again for my usability testing, because she's about as blunt as they come. She never worries about hurting my feelings and took no time at all in picking out all of my proofreading errors...thanks Mom :-) She's also a big fan of Law and Order and mysteries, so I had to smile when she tried to "bag the knife." Logically, this made sense, she argued: Why would she want to take the knife? This would put her fingerprints all over it, thus rendering the knife useless as evidence. This prompted me to plan a third ending for the game when we return to it--the player is wearing rubber gloves. If he removes the gloves and touches a clue, he loses the game, because he is tampering with evidence.
She skipped over the purse, phone and partner in the first room as well. This made me think about how I can motivate my users to explore more in depth. When she read that Tim had fingerprints on the knife, she tried to "find Tim," and didn't understand why that was not recognized. Alas, she's never played a text-adventure game, so this really didn't surprise me. And, she never made it into the kitchen.
2) I used two of my golfer-gals for usability testing. Golfer 1 was confused as to where to navigate from the get-go. In some cases, my descriptions mentioned doors that no longer existed (because I ran out of time to code these rooms), and in other cases, the rooms didn't mention where any of the doors were. It prompted me to take a deeper look at my map to make sure all of my rooms are covered.
Golfer 1 was able to successfully navigate to the red room, with my help. From there, I discovered an issue in my code concerning looking under the bed. She had no need to "look under the bed," because the object that's supposed to be under the bed is already displayed in the default description. I had to make the item "scenery" in order to hide it from the initial view. When she tried to examine the dresser, it said there was no such thing, so she never had a chance at finishing the game.
3) Golfer 2 was the most successful. She made it upstairs on her own. She even figured out that she could "open drawers" even though the dresser wasn't present.
She was also the only one to examine the purse, which was useful, because for whatever reason, it wasn't openable.
A similar instance happened in the kitchen. You're supposed to open the refridgerator to find a clue, but the game wasn't even registering that a fridge was in the room.
All in all, I feel like I was very successful with my coding thus far. I'm excited to take a break and come back to the project in a couple of weeks, because Inform can be extremely frustrating.