Inspiration
This project was inspired by a lot of crime-solving games, specifically the Detective Event from Cookie Run: OvenBreak, in which players had to collect notebooks to ask questions to cookies and use previous hints to see who was guilty. After a certain timeframe, the most voted cookie would be "eliminated" and you could see if they were guilty or not. This is also inspired by other games like Mafia and Among Us.
What it does
Every day, you have a set amount of time to do certain actions. Different actions will result in different hints or buffs that will help you to find who is the culprit or not. Additionally, there are certain roles that players can have that will effect certain aspects of the game. Everyday, you can only arrest one person, and if you fail to arrest all of the thieves before your days are up, you lose. With different outcomes each day, you have to use logical thinking and strategic planning to figure out the mystery.
How we built it
I built this game using Python, as I never learned pygame before. This game consists of a lot of functions that have to be called in order to allow the player to go through with an action. This projects uses a lot of lists to sort out suspect data, such as their role, general info about them, where they were, and who they suspect. Additionally, there are also lists that keep track of things such as forecasts, which can affect certain aspects of the current day like time and the chance to get a hint. These lists are constantly updated to allow each day to be different.
Challenges we ran into
This was the first time I used lists to this extent, so it was challenging to figure out exactly what to do and how to do it. Sorting out things such as indexes and adding or deleting elements wasn't something that I was really used to, as I usually just assign those to seperate variables. This ended up causing a lot of bugs in the code, but I'm happy with how it eventually turned out. Another problem was making the game easier to look at, as it is incredibly text heavy. I tried to seperate each input by adding a ----- after you do an input, but I don't really think it helps too much in the long run.
Accomplishments that we're proud of
One major accomplishment that I am proud of is finishing this project. I started on the second week, so I didn't think that I'd be able to finish what I wanted to finish, but I was amazed that I was able to add this much to the game in a short amount of time. Another thing that I'm proud of is the lists that are used to keep track of all the data in the game. As previously stated, this was the first time I've ever done this, but I think it turned out pretty good.
What we learned
I learned that lists have a lot more uses to them as I initially thought. Normally, I would store all of these values into seperate variables, and get the value of a specific variable if I needed it. But by sorting out the lists based on their index, I feel like I found a much more easier way to compile multiple pieces of data assigned to multiple people.
What's next for Moments of Mystery!
I would add more uses to specific actions that you can do, as well as add some new ones. For example, unless you investigate the Treasury and unless you ask who a person thinks is guilty, investigating and interrogating are pretty pointless. In my initial idea, they were going to be a lot more useful, but I joined the hackathon late, so I wasn't able to flesh out the idea. I could also add different "mysteries" to solve. An idea I had is that you have to figure out what was stolen in a theft, or where the thieves went. I could also add a settings option, where players can tweak variables such as prices, chances, or roles.
Log in or sign up for Devpost to join the conversation.