
CapyWarz: A Quirky Bullet Hell Adventure in the Human Heart
A hackathon journey combining the love for capybaras, game development, and AWS tools to create a unique arcade shooter experience.
Published Jan 14, 2025
Before everything, here are the important links:
Remember the rush of weaving through traffic in "Road Rash" or pulling off heists in "Grand Theft Auto"? Those games weren't just fun; they were entire worlds that sucked you in for hours. I’ve always been hooked, wondering what it’d be like to build something like that myself. But as I grew up, life got busy, and it always felt like making a game would be too herculean of an effort to even try.
Enter the AWS Game Builder Challenge a hackathon that asks to build a game using AWS services. I saw this as the perfect opportunity to create my own game using some slick AWS tools, especially ‘Amazon Q’ the GenAI tool that integrates directly into your code editor, turning my bugs into AI-generated bugs😂.
So, let’s dive into how I navigated through this challenge, transforming from a long-time gamer to a first-time game developer, and all the adventures that came with it.

Introducing "CapyWarz," where the bullet hell frenzy meets the world's most chill animal our hero, the capybara. It's not just about shooting; it's about surviving the wild ride through a body invaded by the latest craze, Moo Deng. This game flips the classic arcade shooter on its head and dives straight into the bloodstream.
Genre:
It can be categorized as a chaotic blend of arcade shooting wrapped up in a strategic bullet hell adventure. It’s all about quick reflexes and quicker decisions, making every level a fresh challenge.
Gameplay Mechanics:
Strap in as you guide our brave capybara through a barrage of enemies that aren't just made up they're inspired by the actual human body's intricate internal systems (cells and such). Each level is packed with unique obstacles; mucus blobs that'll try to stick to you, slowing you down, and explosive cells ready to pop. This isn’t just about dodging bullets, it's about weaving through a living, breathing battlefield.
Unique Features:
What’s different, you ask? For starters, the story of our hero Capy. He’s a protagonist with a moving origin story unlike any other. Every single element, enemy, and ally in "CapyWarz" is hand-drawn. We tried the AI route, but nothing beats the old pen for authenticity. Enemies and the interactive environment aren’t your average baddies; they look and move like the cells they represent, which makes blasting through them a visually thrilling experience.
Purpose and Audience:
This game is for anyone who loves a good shoot ‘em up but wants something that stirs the pot a bit. It’s built on tried-and-tested mechanics sure, but thrown into scenarios you'd never expect. It’s perfect for the arcade junkie looking for a new fix or the curious newbie ready to dive into a game that’s as fun as it is frantic.
I started the project with Phaser.js because of my familiarity with JavaScript. However, I soon realized that Phaser couldn't handle the complex features I envisioned for my game. That led me to switch to Unity, which provided the robust capabilities I needed.
- Learning Curve: Learning Unity was intense. The first few days involved a lot of tutorials and community support to understand its capabilities. This steep learning period was crucial as it allowed me to start bringing my ideas to life in the game.
- Design Challenges: Designing the game’s unique features, such as mucus blobs that slow the player and cells that burst, required a lot of iteration. These elements needed to be more than interesting mechanics; they had to integrate seamlessly with the game's narrative and gameplay.
- Technical Hurdles: Ensuring the game ran smoothly on Unity involved overcoming numerous technical challenges. From debugging unexpected issues to optimizing performance, it required persistent effort and problem-solving.
- AWS Configuration: Initially, AWS seemed daunting due to its myriad of options and configurations. Configuring Amazon API Gateway for IAM authentication and CORS preflight settings was particularly challenging. Similarly, setting the correct metadata for Unity files stored on S3 to work with the NextJS frontend proved to be a complex task. Each of these issues required a deep dive into AWS documentation and community forums, but solving them greatly improved the security and functionality of the game.
- Amazon Q Developer: This tool was a game-changer, helping me understand complex code from forums, generate repetitive code snippets, and optimize existing code for better performance. It was like having an extra set of expert hands on deck.
Despite making significant progress, I’m aware that there's much more to learn about Unity. I rushed through some of the learning due to project timelines, and I’m continuously looking for ways to optimize further. Unity offers vast possibilities, and I’m keen on exploring more to improve my game.

1. Unity WebGL Game (hosted in Next.js)
The Unity WebGL build is hosted within the Next.js app to provide a seamless and interactive user experience. This centralizes the game and leaderboard under one interface, simplifying deployment and maintenance.
2. High Scores Table (ShadCN in Next.js)
ShadCN provides customizable, lightweight UI components for the high-scoring leaderboard. This ensures a modern, clean design while keeping the final build size minimal. The overlay panel design improves usability by allowing players to view high scores without interrupting gameplay.
3. Amazon CloudFront (CDN)
CloudFront enhances performance by caching the Next.js app and its assets at edge locations. This reduces latency and ensures fast, reliable delivery of the game and leaderboard to users worldwide. The CDN is directly integrated with the Next.js app for optimal performance.
4. AWS API Gateway
API Gateway serves as a secure and scalable interface for handling API requests from the frontend to the backend. It simplifies routing, enforces CORS configurations, and provides a layer of security for the backend.
5. AWS Lambda Functions
The serverless backend is powered by AWS Lambda, which dynamically scales to handle game data operations like inserting and fetching high scores. This reduces infrastructure management overhead and ensures high availability.
6. Amazon DynamoDB
DynamoDB is used as the database for storing high scores, leveraging its low-latency performance and high scalability. The composite key (PlayerID and Timestamp) ensures efficient querying and ranking.
7. Amazon S3
S3 is used to store static assets such as the Unity WebGL build. By serving the game via the Next.js app, we maintain centralized control over deployment and ensure the latest version is always delivered.
8. Next.js App in AWS App Runner
AWS App Runner simplifies the deployment and scaling of the Next.js app. It automates containerization and ensures seamless scalability, HTTPS by default, and consistent delivery of both the game and leaderboard.
9. Amazon ECR (Elastic Container Registry)
ECR is used to store Docker images for the Next.js app. It integrates with App Runner to ensure a streamlined deployment process and allows version control for application updates.
IAM secures communication between AWS services like API Gateway, Lambda, and DynamoDB. It enforces least-privilege access control, protecting sensitive resources.
CORS settings allow secure cross-origin requests from the Next.js app to the API Gateway. This ensures that only authorized origins can interact with the backend.
CloudWatch provides monitoring and logging for API Gateway, Lambda, and DynamoDB. It helps identify performance bottlenecks and aids in debugging by capturing request and response data.
- Seamless Integration: Hosting both the Unity game and leaderboard within Next.js ensures a cohesive and user-friendly experience.
- Performance Optimization: CloudFront accelerates content delivery, while Lambda and DynamoDB handle backend operations efficiently.
- Scalability: The serverless architecture and App Runner ensure automatic scaling to handle varying traffic loads.
- Security: IAM roles and CORS configurations safeguard data and backend communication.
- Developer Efficiency: Familiarity with Next.js and the modularity of ShadCN streamline development while keeping the build lightweight.
- Cost-Effectiveness: AWS’s pay-as-you-go pricing model, combined with ECR and App Runner, optimizes resource usage and reduces costs.



CapyWarz plunges players into an action-packed environment where they guide a capybara through a microscopic battlefield. This isn't just about shooting; it's about surviving and understanding a hidden world within the human body.
Core Gameplay:
- Dynamic Shooter Mechanics: The game challenges players with fast-paced bullet hell scenarios where dodging and shooting are equally crucial. Each level ups the ante with new enemies and obstacles that test reflexes and tactical planning.
- Unique Enemy Interactions: Inspired by actual human cells, enemies exhibit unique behaviors. Mucus blobs, for example, can slow the player, adding strategic depth to the gameplay.
Innovative Features:
- Hand-Drawn Art Style: The distinctive, hand-drawn art style of CapyWarz not only sets it visually apart but also adds a personal touch to every element of the game.
- Educational Twist: As players encounter enemies modeled after real cells, they gain insights into biological functions, making each encounter both a challenge and a learning opportunity.
Player Engagement:
- High Score System: The competitive spirit of the game is fueled by a high score leaderboard, encouraging players to improve their strategies and revisit levels to climb the ranks.
Technical Integration:
- Cloud-Powered Leaderboards: Real-time leaderboards, powered by AWS, keep track of player scores globally, adding a layer of ongoing competition and connectivity.
Creating "CapyWarz" was an eye-opening journey into the intricate world of game development. Every aspect, from initial concept to final execution, provided valuable lessons that shaped both the game and my skills as a developer.
Comprehensive Game Design:
- Multifaceted Development: The project highlighted the vast scope of creating even a "simple" game. Sound design, storyboarding, level design, and map creation are just the tip of the iceberg. Each element requires attention and integration, underscoring the complexity behind the scenes.
Exploring AWS and New Tools:
- Exploring AWS Services: Initially overwhelming, AWS became less daunting as I mastered services like Lambda, DynamoDB, and API Gateway. These tools are powerful for scaling and securing applications, though not without their challenges, such as configuring precise settings for security and data management.
- Amazon Q Developer Experience: Transitioning from using ChatGPT to trying out Amazon Q Developer for coding assistance was refreshing. While Q is effective, it still lacks some features I've grown accustomed to, marking an area for potential growth.
Unity and C# Mastery:
- Deep Dive into Unity: Learning Unity was a cornerstone of this project. I delved into animations, tilemaps, transitions, and understanding different physics bodies—each with their own benefits and drawbacks. This not only enhanced my technical skills but also enriched my understanding of game physics and design.
- First Experience with C#: Venturing into C# programming was a milestone. It was challenging yet rewarding, providing a robust foundation for developing complex game functionalities.
Adjustments and Refinements:
- Scaling Down: My initial vision for the game had to be adjusted due to the complexities of asset generation and the practical limitations of implementation. This process was both humbling and enlightening, teaching me to balance ambition with feasibility.
Personal Growth:
- Patience and Perseverance: The myriad challenges encountered along the way reinforced the importance of persistence. Each obstacle overcome was a lesson in resilience, pushing me to evolve as a developer.
The development of "CapyWarz" has been a journey of discovery and innovation, merging the intricacies of game design with the power of AWS technologies. This project tested my abilities and expanded my knowledge in game development, cloud infrastructure, and programming.
Achievements and Impact:
- "CapyWarz" stands out with its unique blend of educational content and engaging gameplay, enhanced by its distinct, hand-drawn art style and innovative mechanics.
Future Directions:
- I plan to optimize the game for smoother playability and add the additional levels initially envisioned. Feedback from peer testing will be crucial in refining the gameplay and implementing further enhancements.
- Expanding the game's reach by exploring more platforms and continuing to engage with the community will help evolve "CapyWarz" into a more comprehensive gaming experience.
As I look forward to enhancing "CapyWarz," the experiences and lessons from this project will undoubtedly influence my future work in game development.