The game consist of:
- A server app, which produces the guesses by sending requests to AI21 Studio. This is done from the backend in order to keep the AI21 Studio API key secured.
- A client web app which is the actual game, sending request to the server mentioned above.
You need to have python > 3.5 and pip to install the dependencies and run the server.
In order to run the server locally:
- Enter the server folder and install the python dependencies using pip
cd server
pip install -r requirements.txt- Set your AI21 Studio API key as an environment variable. (Replace with the key you generated in AI21 Studio)
export AI21_API_KEY=<YOUR-API-KEY>- Start Flask's development server
python main.py🎉 The server should be up and running locally on port 5000.
You need to have node and npm installed for running and building the client app.
First of all, make sure to enter the client app's folder:
# Return to the repo's parent folder if you were inside the server folder
cd ..
# Enter the client app folder
cd clientInstall the relevant packages
npm iSimply run the following inside the client folder
npm startAnd the app will be accessible at http://localhost:3000
Run
npm run buildA production bundle will be ready in client/build folder.
On each turn, the player has 45 seconds to describe as many characters as possible to the computer.
The player may write/say anything they want, except for what's written on the card.
- If Jurassic guessed correctly, the player gets a point and moves to the next card.
- If not, they may keep trying and add information so Jurassic will get it right. Don't worry - it remembers what you've said before and what guesses were wrong!
- At any time the player may skip a card if they don't know the character or fail to describe it to Jurassic.
You can switch between using the large and jumbo model inside server/main.py:
# options are j1-jumbo and j1-large
MODEL = "j1-jumbo"Also, You can change a few of the game's configuration located in the client's config file.
// client/src/const/game.js
export const ROUND_DUR = 45;
export const NUMBER_OF_ROUNDS = 3;
export const SAMPLE_FACTOR = 4;
export const USE_SPEECH = false;
export const SERVER_URL = "http://localhost:5000/";ROUND_DUREach turn's duration in secondsNUMBER_OF_ROUNDSThe number of rounds in a single gameSAMPLE FACTORControls the amount of cards being sampled from the full characters list each turn (ROUND_DUR * SAMPLE_FACTOR)USE_SPEECHIftrue, the player's input is done using speech-to-text instaed of typing.SERVER_URLThe backend service URL
The full list with all the possible characters can be found at client/src/assets/figure_list.json.

