A sort of trivia game where the player sees 3 movie covers and an AI character says a movie quote, then the player chooses the right movie.
Game Jam
The theme of the AI and Games 2023 game jam is copycat. To fulfill the theme, the AI video store guy will be saying movie quotes.
Overview
Scene: A video store clerk desk. (Inspired by Blockbusters in the 90s.) Props: There is a TV behind the desk, and some loose VHS tapes laying around. Clicking them plays an associated video on the TV, on mute (by default.) Character: A video store clerk guy. He loves movies, and he loves turning the volume waaaay up. Gamplay: 3 VHS tapes appear. The clerk says a movie quote. You click on the movie that the quote came from. 1 strike and you're out. Answer 10 questions to win a prize. Prize: A downloadable GLB of the movie pick that won them the game.
Technical
PlayCanvas to power the game.
ChatGPT assisted JavaScript.
ConvAI for the AI character voice & movie quote knowledge.
BlockcadeLabs for generating an AI skybox.
Stable Diffusion for 2D character & backdrop images.
The NPC greets the user, tells them how to play the game, and reads the movie quotes, all automatically.
The user interacts by clicking on the movie that the quote came from.
Prompts to the AI are generated procedurally by a question template, for exmaple: Tell me a quote from ______, but don't cite the source.
When the user choses a response, the prompt sent to the AI is, for example: That's from the movie _____, correct?
If the user fails to respond in time, the prompt is, for example: I give up. What movie is that from?
When the user wins the game, the prompt sent to the AI is, for example: Tell me I've won the game and that I've won a prize! The prize is the VHS tape for me to take home!
The AI tells the user when they reach milestones of question 5 and question 8, and question 10, using similar prompts.
User Input / Gameplay
User loads into the scene, but it's in an idle state with a START GAME button on the screen.
When the user starts the game, the AI greets them & starts the game. (As decribed in the AI section.)
Each round is 3 large VHS cases w/ movie posters on them float in front of the user, and the AI randomly says a quote from 1 of.
A timer starts counting down from 5 (movie-style.)
The user clicks on the correct VHS tape to win the round.
The next round then begins.
After winning the game (10 rounds), they are told their sore (x/10) and can click a button to download their GLB prize. Or click CONTINUE to go back to IDLE state.
Stretch Goals
Achievement images for getting N rounds correct in a row, etc. (Replaced w/ HINTS.)
Be able to click on loose VHS tapes laying on the desk to play them on the video screen.
Let the user choose movie genres themselves (via TheMovieDb.org) instead of movie selections being hard-coded.
Be able to chat with the AI directly, between games.
Be able to ask the AI to control the TV for you.
[o] Be mobile compatible.
[o] Work on iPhones.
VR support. (Out of scope.)
TODO
Gameplay & Rounds Logic
Look into if the AI could give 3 "hints" to the player w/o revealing which movie the quote is from.
Pull 200 popular movies from TheMovieDB to build a pre-processed list of movies. (Stretch goal is to let user choose genres & release years themselves & live-build this list during runtime w/ TheMovieDB API.)
Create core gameplay w/o any AI usage. (Still only console output, no frontend.)
Implement AI testbed.
Add the AI telling the player they are half-way to the finish, and on the final question.
Make the AI say something special in response to getting question 10 correct, prior to going to PLAYER WON state.
Add various game states that are missing: [x] INTRO, [x] PRESS START, [x] PLAYER LOST, [x] PLAYER WON.
Add soundfx for: Game start, Round start, Tock tick, Clock expired, Correct, Incorrect, Player lost, Hint used, Points added, Game paused.
Move the menu button to top z-index so it's always active.
Add a menu.
Add a rules page to the menu.
Add a credits page to the menu.
Replace video store guy w/ AI-generated videos store guy.
Fire "app" events at key moments, so that the game state could be represented in a 3D scene in parallel to the 2D scene. (ie. start preparing for 3D frontend.)
Dev Log
Time Sheet
Around 2-3 hours Friday writing design doc.
Around 11-12 hours Saturday doing tests & developing 2D frontend up to only missing some extra screens for edge case game states.
Around 11-12 hours on Sunday finishing the 2D frontend.
Around 7-8 hours on Monday troubleshooting Convai server requests & white-boxing 3D scene in PlayCanvas.
Around 12-13 hours on Tuesday finishing the 3D scene in 3ds Max, Substance Painter, Blockade, RPM, PlayCanvas.
ChatGPT prompts for developing TheMovieDb and ConvAI API usage, plus API references
Image Not ShowingPossible Reasons
The image was uploaded to a note which you don't have access to
The note which the image was originally uploaded to has been deleted
The title has finished fading in and the user must interact to continue. (Press Start)
In 3D, this will occur after the camera finishes its intro pan. (And the camera can snap to this position later too, w/o the intro pan.)
Sound is currently required for this app to work, so unless that changes, the player may have to do a short device setup to make sure their sound is playable. (Sound not playing literally impacts scripts, because no "ended" event occurs on audio sources.)
Player Lost Screen
Image Not ShowingPossible Reasons
The image was uploaded to a note which you don't have access to
The note which the image was originally uploaded to has been deleted