IKB Murder Mystery (Luca, Defne)

From UBC Wiki

What is the problem?

For our Prolog project, we want to create a fun murder-mystery text adventure game that UBC students can enjoy. In this IKB Murder Mystery, the player has to look around IKB to investigate the murder of UBC's beloved professor David Poole!

There are two main components to the game: Visiting different locations in IKB, then questioning the detained suspects.

Each location contains items (sometimes weapons) that can be inspected. The visitable rooms are connected via a hallway, and it is up to the user to inspect anything that could be a relevant clue.

The user will have a chance to ask questions to each suspect, which will help the user as they connect the dots after touring IKB.

No one was able to identify the murderer! UBC needs your help!

What is the something extra?

We built a simple NLP parser to robustly handle a number of different user commands. For example, the user does not have to follow a specific format to change rooms: to go to the Quiet Room, the user can type in:

- go to quiet room

- go to the quiet room

- head to the quiet room

- proceed to quiet room

and much more.

What did we learn from doing this?

We found that Prolog was a good choice to implement our game idea.

Using relations to represent the "structure" of the building and its contents, was very straightforward. We were also able to obtain user input and easily use it as input to our relations, creating an interactable game.

Using NLP for the first part of the game (touring IKB) provided the user with flexibility in moving around IKB and getting used to game mechanics. However, for the second part of the game (questioning suspects), using NLP proved to be more difficult, as questioning/conversing can be very open ended. Therefore, given our current Prolog skills, time limitation and the scope of this project, we only used NLP for the first part of the project.

Work division (To-Do)

How was the workload divided? Who did what? (This can be in a private communication to the TA if you do not want it to be public).

Links to code

https://github.com/lucamoynierUBC/CourseRecommender