Dont Touch The Exhibits

Shipped a physics-driven puzzle-shooter with predictive throw trajectories, nav-mesh animal AI, and infinite escalating levels, deployed through an automated Jenkins pipeline.

Team
Solo
Engine
Unreal Engine 5
Type
Game jam
Status
Released

Play it

Runs in the browser. Loads on demand so the page stays light.

The problem

Physics-based throwing is satisfying to perform and almost impossible to aim. Without feedback before release, players are guessing, and a puzzle built on guessing is frustrating rather than hard.

The approach

Wrote a real-time line renderer that traces the projected throw arc before the player commits, turning the throw from a gamble into a readable decision. Colour-coded dimension windows define which animal belongs where, and grabbed animals swap to a transparent material so the player can always see the target through what they are holding.

What I built

  • Physics-Based Interaction - Implemented animal grabbing and throwing mechanics using Unreal Engine's physics system.
  • Predictive Trajectory System - Created a real-time line renderer to visualize throw paths before release.
  • AI Navigation & Behavior - Developed animal AI with nav mesh pathfinding, including jumping and avoidance behaviors.
  • Level Progression System - Built an infinite level structure with escalating challenge.
  • Dynamic Material Changes - Programmed real-time material swapping (animals turning transparent when grabbed).
  • Color-Coded Puzzle System - Designed dimension windows with color-matching logic to determine correct targets for animals.
  • Custom UI Design & Implementation - Built an intuitive interface displaying color matches, player objectives, and feedback.
  • Game Loop & Flow Control - Managed spawn systems, win/lose conditions, and player progression.
  • Performance Optimization - Balanced physics interactions for smooth performance during chaotic gameplay.
  • Player Feedback Systems - Incorporated visual and gameplay cues to guide players in real-time decision-making.
  • Rapid Prototyping for Game Jams - Delivered a functional, polished experience within strict time limits.
  • Testing & Iteration - Conducted playtesting and refined mechanics for better pacing and feel.
  • CI/CD Integration - Continuous integration and delivery with Jenkins, allowing for automated builds, error checks, and deployment to Itch.io.

Screenshots

Built with

Engine
Unreal Engine 5
Tools
JenkinsCI/CDGitHubDiscordButler
Disciplines
Save/load functionalitiesData driven mechanicsHUDMenuPhysicsMaterials

What I'd do differently

The trajectory renderer was the difference between the core mechanic being fun and being irritating — worth far more than any additional content would have been. Balancing simultaneous physics interactions against frame rate during the chaotic moments took real tuning.

Links