Inspiration

Good mystery is hard to find nowadays, so after Disney announced their prize for the best achievement in storytelling, we set out to make a program that creates a murder mystery for us. Random generation is a tool used frequently in game development, but very rarely used to make an actual story, and we wanted to try it out.

What it does

MurderMysteryGenerator has a bunch of information about different character personalities and their relationships to a potential victim. When the program is run, it randomly generates a few details about the murder victim, then lets you interrogate any of 4 suspects about the incident. The suspects all have a random personality and relationship to the victim attached to them, and this mix-and-match approach results in a lot of different dialogue depending on a few variables.

The murderer behaves differently than the innocent suspects. They claim to have been at the scene of the crime later than they really were, but other witnesses will not corroborate their information. They may claim to have been there with someone else to avoid arousing suspicion. The murderer also likely left something behind by accident, but an object left behind may also be from an innocent passerby.

As you can imagine, it is a bit challenging to find out exactly whodunnit. This is compounded by the program only giving you 3 "days," or 3 actions, to figure it out. If you ask the right people the right questions, you may be able to catch the culprit!

How we built it

MurderMysteryGenerator was written exclusively in Python without the use of any APIs or frameworks. A lot of the development process consisted of writing dialogue lines for all the character permutations.

Challenges we ran into

It was difficult for the whole team to be on the same page with this project, likely because of all the different random variables at play.

Accomplishments that we're proud of

We were able to create a working game with a cohesive story, despite the randomizing features.

What we learned

Alongside a review of python, as a whole the team was able to experiment with dialogue and implement characterization strategies that allowed for a certain range of customizability. We also learned how to strategically break down the problem into smaller pieces to enable more effective collaboration.

What's next for MurderMysteryGenerator

In order to further increase the randomization and detail of the game, variables such as weather and motives, in addition to graphics could be implemented. Furthermore, increasing the complexity of the "mystery" aspect of the game would be really cool.

Built With

Share this project:

Updates