Inspiration

Blade of Valor:: Simplified Timer Version:: retains the core inspiration from Grimes' Player of Games and the surreal, mythical tone of Legend (1985). This version focuses on delivering a fast-paced, stripped-down experience where players race against the clock to collect as many orbs as possible in a single level.

What it does

Blade of Valor is a streamlined 2D platformer where players tackle a single, intense level teeming with darklings and obstacles. The objective is simple: defeat enemies, collect as many orbs as possible, and race against the timer. This version focuses on quick, high-intensity gameplay sessions while retaining the core challenge. After one full playthrough, the game ends with a fade-out. Players can refresh the page to replay and aim for a higher score.

How I built it

  • Phaser 3: Handles all game mechanics, visuals, and physics for smooth gameplay.
  • Simplified Timer System: Tracks the remaining time, with the game automatically restarting when the timer runs out.
  • Frontend Deployment:
    • Amazon S3: Stores game assets for reliable and scalable access.
    • Amazon CloudFront: Ensures fast and secure asset delivery with low latency.
    • AWS Amplify: Powers deployment, hosting, and updates for the frontend.
  • JSON for designing and configuring the levels, making updates fast and scalable.

Challenges I ran into

  • Fine-tuning prompts for Amazon Q: While Amazon Q was helpful in some areas, I had to rework prompts a lot for it to understand niche parts of game mechanics.
  • Creativity and level design: Learning how to use Tiled for building the map was a challenge, especially since AI tools struggled with designing unique, fluid platformer levels. The map I built has its flaws but offers more fluidity than anything I got from AI tools like PartyRock.
  • Phaser 3’s code-heavy nature: Working with Phaser 3 required extensive custom coding to implement mechanics, visuals, and animations. Maintaining consistency in gameplay, especially with animations, felt like playing Jenga—adjusting one element often caused others to break. While Phaser 3 is lightweight and versatile, its lack of automation meant I had to build many features from scratch. Unfortunately, with the specific stack I used, finding resources or guidance was challenging, as not many share the "secrets" of making everything work seamlessly.

Accomplishments that I'm proud of

  • This is my first completed game, and I’m proud to have brought such a unique idea to life.
  • The backend initially featured two Stockfish AI playing against each other—and I had it working! However, I chose to omit it in this version to focus on consistency and quality.
  • I built the entire Phaser game starting from a boilerplate, navigating the challenges of its code-heavy framework and overhead.
  • Leveraged AWS CloudFront to deliver assets efficiently and lighten the repository with this favorite piece of code:
  export const getAssetUrl = (path: string) => {
      const CLOUDFRONT_URL = process.env.NEXT_PUBLIC_CLOUDFRONT_URL;
      if (!CLOUDFRONT_URL) {
          throw new Error("CLOUDFRONT_URL environment variable is not set");
      }
      return `https://${CLOUDFRONT_URL}/${path}`;
  };

What I learned

  • How to solve problems creatively, like optimizing prompts for Amazon Q to get better results.
  • This was my first hackathon, and I learned that having big ideas is great, but time is the most important factor in deciding what you can and can’t do.
  • Even with AI tools, having teammates is essential. Developers need other developers to share ideas, collaborate, and divide the work.

What's next for Blade of Valor

  • Reintroducing backend functionality, such as leaderboards and advanced mechanics, in future iterations.
  • Expanding levels and challenges to create a richer player experience.
  • Reintroducing the dialogue I worked very hard on in Party Rock
  • Exploring deeper integrations with AWS to further optimize hosting and gameplay features.

Built With

Share this project:

Updates