Guess Who's the Thief is an interactive, AI-driven mystery game that challenges players to uncover clues, interrogate suspects, and solve a high-stakes art theft case. This project combines gameplay with AI-powered dialogue and voice interaction, creating an engaging experience for players.
Team Member | GitHub |
---|---|
Johnson Zhang | @ZingZing001 |
Kimberly Zhu | @kimkimz |
Nicky Tian | @Nicky8566 |
- AI-Powered Dialogue: Uses OpenAI's Chat Completions to provide unique, interactive feedback based on the player's choices.
- Timer Management: Real-time countdown timers across scenes to keep the gameplay exciting and synchronized.
- Interactive Cutscenes: Smooth transitions between dialogues with auto-skip functionality.
- Sound Integration: Custom MP3 playback for sound effects during gameplay and cutscenes.
- Movement: Mouse and keyboard interactions to select suspects and submit answers.
- Key Bindings:
- Skip Cutscene:
Enter
key skips current dialogue. - Submit Answer: Press the
Submit
button or hitEnter
to confirm your guess. - Interact: Click on suspects or clues to investigate them.
- Skip Cutscene:
-
add in the root of the project (i.e., the same level where
pom.xml
is located) a file namedapiproxy.config
-
put inside the credentials that you received from [email protected] (put the quotes "")
email: "[email protected]" apiKey: "YOUR_KEY"
These are your credentials to invoke the APIs.
The token credits are charged as follows:
- 1 token credit per 1 character for Googlel "Standard" Text-to-Speech.
- 4 token credit per 1 character for Google "WaveNet" and "Neural2" Text-to-Speech.
- 1 token credit per 1 character for OpenAI Text-to-Text.
- 1 token credit per 1 token for OpenAI Chat Completions (as determined by OpenAI, charging both input and output tokens).
There is a free TTS service available for testing purposes. You will see this in the nz.ac.auckland.se206.speech.FreeTextToSpeech
class. The voice here is not as good as the Google and OpenAI TTS services, but it is free and can be used for testing purposes.
You will see an example of this in the ChatController
class.
-
add in the root of the project (i.e., the same level where
pom.xml
is located) a file namedcodestyle.config
-
put inside the credentials that you received from [email protected] (put the quotes "")
email: "[email protected]" accessToken: "YOUR_KEY"
these are your credentials to invoke gradestyle
./mvnw clean javafx:run
./mvnw clean javafx:run@debug
then in VS Code "Run & Debug", then run "Debug JavaFX"
./mvnw clean compile exec:java@style