About the Project

Inspiration The inspiration for Time Heist came from classic top-down stealth games and tactical heist thrillers. The goal was to create a focused, high-stakes web game where players must rely on planning and patience rather than brute force. Instead of adding artificial stress with a countdown timer, the tension comes entirely from navigating tight patrol routes and deadly trap layouts to secure the diamond and safely escape.

How We Built It The project is built using a decoupled full-stack architecture:

  • Frontend: Built with Angular, leveraging TypeScript and RxJS to deliver a responsive, component-driven user interface. The UI is divided into modular components for the game map, player, traps, guards, and objectives.

  • Backend: Powered by Java 17 and Spring Boot. It handles user authentication using JWT and Spring Security while serving as the authoritative validator for game state movements and score calculations.

  • Database & Persistence: PostgreSQL via Spring Data JPA and Hibernate manages user profiles, active game sessions, and persistent results.

Challenges We Faced

  • Server-Authoritative Game Logic: Ensuring the backend strictly validates movements and interactions without creating noticeable latency in the UI required careful API design.

  • Guard AI & Trap Collision: Designing clean pathfinding and collision detection algorithms for guards and traps so that player evasion felt fair and predictable.

What We Learned Building Time Heist reinforced the importance of keeping game state clean and lightweight across the full stack. We learned how to efficiently sync state between an Angular client and a Spring Boot API while enforcing security principles like server-side validation to prevent frontend tampering.

Built With

Share this project:

Updates

Submission history