Monke: A 3D Adventure Game
The idea for Monke was born out of a desire to combine storytelling, exploration, and technology into an engaging game experience. I wanted to create a project that not only entertains but also explores the philosophical evolution of humanity—from survival to technological mastery and beyond. The concept of floating islands and the timeline of human progress provided the perfect backdrop for this adventure.

GAME CONCEPT :
The storyline reflects the journey of evolution, starting from a primitive beginning and progressing toward greater understanding and capability. Players explore a mysterious environment, overcome obstacles, and solve puzzles to reveal secrets that drive survival and progress. Subtle inspiration from ancestral simulation theory adds a layer of reflection on humanity’s pursuit of knowledge.
Gameplay Mechanics: Movement: Use W, A, S, D to move the character, Space to jump, and Shift to run. Energy depletes at a constant rate, which can be replenished by collecting bananas. Survival: Avoid predators and manage resources effectively to stay alive. NPC Interaction: Talk to NPCs to get hints and guidance for solving puzzles and navigating the environment. Winning Condition: The player who completes all levels in the fewest days will be at the top of the leaderboard, adding a competitive challenge to the game.
DEVELOPMENT :
My primary goal was to create a smooth gaming experience with consistently high FPS and make use of available packages .
Early on I encountered significant performance drops, especially when mounting large environments. That’s when I realized I didn’t need to render the entire game at once. To address this, I divided the game environment into levels and parts, ensuring only the necessary assets were rendered based on the player’s position in the game scene.
I initially started coding 3D objects directly with React Three Fiber and Three.js, but I soon realized the need for a more efficient workflow. To optimize my process, I switched to creating environments in Blender and getting free objects under cc license. During this transition, I discovered gltfjsx, a tool that converts GLTF files into JSX components and significantly reduces asset sizes—by up to 94%. These combined optimizations helped me achieve a consistent 120 FPS throughout the game.

I integrated Rapier, a powerful physics engine. Rapier provided efficient collision management, making interactions between objects realistic and seamless.

One of my key aspirations was to create intelligent NPCs that could interact with players. Initially, I experimented with a stack of AWS services, including AWS Transcribe, Polly, and bedrock , to manage audio input, output, and conversation AI capabilities. However I eventually discovered AWS lex v2 which offered a streamlined solution. The Lex bots, equipped with generative QnA AI intents, allowed me to Handle both audio input and output seamlessly, Store knowledge and retrieve it dynamically to provide meaningful hints and guidance to player


AWS RESOURCES

- React Three fiver: For rendering the 3D environment and building the interactive game client.
- AWS Services:
- Amazon Cognito: For secure user authentication.
- *API Gateway *: For r communication between the client and backend.
- AWS Lambda: For backend logic like level transitions and game state management.
- Amazon DynamoDB: To store player progress and game states.
- Amazon Lex V2 Bots: To power NPC dialog, making interactions dynamic and engaging.
- Amazon Bedrock with Titan Text Embeddings: To enhance AI-driven NPC interactions.
- Amazon OpenSearch: For storing and retrieving text embeddings for NPC dialog context.
- Claude v2 GenAI Model: To provide intelligent and conversational NPC responses.
- AWS CDK: To automate the provisioning of infrastructure resources.
- S3 Bucket: For storing game assets and audio transcriptions .
- Cloudfront: Delivering the assets to be accessible and load faster
What's next for Monke: A 3D Adventure Game
- Expanding the game world with additional levels that explore more stages of human evolution.
- Enhancing NPC interactions with even more intent and models testing .
- Adding for capabilities for NPC's to play the game along side the player
- Adding multiplayer capabilities to allow players to collaborate or compete.
- Improving visuals and animations to make the world even more immersive.
Built With
- amazon-web-services
- api-gateway
- bedrock
- embeddings
- lambda
- lexbot
- polly
- python
- rapier
- three.js
- transcribe


Log in or sign up for Devpost to join the conversation.