Parable Rhythm - An Unpredictable Crime Thriller
An interactive game powered by A.I where you solve crimes in the notorious city of Genai. Every action will have a consequence. You drive your own story.


- The story, after deciding on a core game theme, the GenAI LLM model could be trained and be given specific restraints to how we want the story to revolve around the core idea of the game.
- The gameplay mechanics, the core mechanics need to be developed before-hand by the developers as a real-time implementation of the current state of GenAI can prove to be unstable for developing core mechanics on the fly. However, we could enhance the power these core mechanics. eg. In an NPC dialogue system, the character bios, dialogues can be easily generated with an Artificial Intelligence interference using text generation, audio generation.
- Assets like textures for worlds, levels (procedural level building), NPC characters and their backstory/bio could be easily generated via LLMs and Image Generation models. When modeling the textures for levels, characters these image assets don't need to be created and can easily be generated through Image Gen. Here is a use-case of AI generated 3D model achieved by Luma Labs: Genie.
- Generate a random crime report with the crime scene photograph
- A chatbot that would enact Inspector Neel Ray
- Chatbots to enact Database Access Terminals
- A temporary data storage to store story elements unique to the user that don't require tampering once generated
- Store player stats for creating a leaderboard for trackers like "Most Cases Solved", etc.
- A front-end web app (for the time-being)
- Front-end web app
- Can be hosted on EC2 with Auto Scaling (requires manual provisioning) or much effectively as a serverless container app using ECS with Fargate clusters so that we won't have to handle manual operations, will be cost-effective as we only pay for the resources we use and can easily scale horizontally for burst traffic.
- To authenticate the user, we use Amazon Cognito that provides centralized and managed services for User Pools. Then, connect a Lambda function to Cognito such that whenever a user signs-up, it records the new user data to DynamoDB (as we don't require a relational database and to use serverless scaling for optimized performance and pricing).
- Leveraging Amplify libraries, we connect our frontend app to backend services for further data exchange like handling player actions in-game.
- Generating Genai Databases
- Using a Bedrock FM (Foundational Model), we could create all three databases (Resident, Car Registration and Criminal) into a central storage area in S3 or a separate DynamoDB / RDS table (easier to maintain) so our Database Access Terminals (chatbots) can reference these later.
- We could use the FM to generate output in certain database-friendly formats (CSV, JSON etc.) that we can import into the database systems we choose on the AWS Cloud.
- Creating a big static database of Genai at the start would help reduce application load and provide consistent data for all players (though we could choose to use other ways).
- Generating a crime report
- Using the Lambda and the AWS SDK, we integrate Bedrock with a suitable foundation model and evaluate it as per our use-case.
- This FM will reference data from the Genai databases we generated and store in S3 / DynamoDB / RDS.
- Whenever the user starts a new game session, this Lambda task would not only get triggered and send data generated data back to the user but also save the crime report in S3 locally under the user's directory path for other services to feed off of it. This crime report is temporary data whose scope is only under the player's current game session. We can choose to save these crime reports for further training of our AI models or delete them after the session is complete / player solves the crime / wants to restart the game.
- Crime scene photograph
- After the crime report is generated, we use one of the Stable Diffusion FMs offered by Bedrock as it's prompt and save this image in S3 to serve the user.
- Inspector Neel Ray Chatbot
- Using a light, quick and instant model from one of the FMs in Bedrock, we train it to behave and enact like the character based on the player's context and a reference to the current game session's crime report and the static Genai databases.
- Genai Database Access Terminals
- These chatbots require to be trained to behave as if they were just Access Terminals and only output matching data stored inside Genai Databases.
- Using the API Gateway with Lambda, we could connect the frontend with our Access Terminal chatbot models.
- Another way we could approach this, is through OpenSearch / Kendra (depending on where / how the Genai Databases are stored) and deploy Lambdas to interact with OpenSearch / Kendra to search in the database documents.
- Leaderboards
- We can use trackers for every game session, every case solved for that specific player and store it in a
player
DynamoDB table. - To calculate leaderboards, being a read-intensive task, we don't need to overload our main table but use DynamoDB's DAX (stores cache) for it.