TrampoWin
Inspiration
TrampoWin was born from that nostalgic memory combined with a simple observation: trampoline games are universally fun, but most mobile versions feel flat and lifeless. When the Snap Games Lensathon was announced, I saw the perfect opportunity to bring that childhood magic to Snapchat — complete with your personal Bitmoji as the star performer.
The goal was simple: create a game that's instantly fun (tap and you're flipping), endlessly replayable (beat your height, beat your friends), and uniquely Snapchat (your Bitmoji, social leaderboards, shareable moments).
What It Does
- Intuitive One-Tap Gameplay – Simple controls that anyone can pick up, but mastering perfect landings and multi-flip combos takes skill.
- Competitive Leaderboards – Height scores are submitted to Snap's leaderboard so you can compete with friends and Snapchatters worldwide.
- Progressive Goal System – Handcrafted challenges from "Do a flip" to "Reach 50m" keep players coming back for that next milestone.
- Bitmoji-Centric Fun – Your personal Bitmoji is the star, with smooth animations for idle, jumping, flipping, falling, and victory celebrations.
- Juicy Polish – Particle bursts on perfect landings, camera shake, crowd cheering, and exaggerated height displays (reach 1000m+ into space!) create satisfying feedback loops.
- High Replayability – Persistent storage saves your best height, flip records, and goal progress between sessions, encouraging daily return play.
How We Built It
Tech Stack
- Lens Studio with TypeScript for type-safe game logic
- Bitmoji 3D for personalized character representation
- Animation Player with custom speed synchronization
- Snap Leaderboard Component for competitive play
- Persistent Storage API for cross-session progress
Architecture
The game is built around a state machine with four primary states:
STATE_MENU // Idle bounce, show UI, wait for tap
STATE_PLAYING // Active physics, input handling, scoring
STATE_FALLING // Miss animation, camera follow down
STATE_WAITING // Post-fall delay before menu return
Challenges We Ran Into
Challenge 1: Root Motion Cancellation
Bitmoji animations include root motion that moves the character up/down during jumps. This conflicted with the physics-driven position.
Challenge 2: Animation-Physics Sync
Early versions had the character finishing their flip animation mid-air or still spinning when they hit the trampoline.
Solution: Dynamic speed calculation based on physics state, clamped to prevent unrealistic playback speeds (0.5× to 3×).
Challenge 3: Camera Following
A static camera made high jumps feel disconnected. Following the player 1:1 felt nauseating.
Solution: Implemented a threshold-based follow system. The camera only moves when the player exceeds 400 physics units, with smooth lerp interpolation to prevent jarring movement.
Accomplishments We're Proud Of
1. The "Just One More Try" Factor
We're most proud of achieving that addictive arcade feel. Playtesters consistently said "okay, one more game" and then played for 20+ minutes. The combination of easy-to-learn controls, satisfying feedback (particles, sounds, camera shake), and progressive goals creates a loop that feels good to play.
2. Buttery Smooth Animation Sync
Getting the Bitmoji flip animations to perfectly match the physics-driven jump timing was technically challenging — and we nailed it. Whether you're doing a slow, high jump or a rapid bounce, the animation speed adjusts dynamically so your Bitmoji lands exactly when their feet touch the trampoline.
3. The Physics Feel
We built a custom physics system from scratch rather than using built-in physics. The result? Precise, responsive controls where every tap matters. The bounce momentum system rewards skill — land flips to go higher, miss and you lose speed. It's simple but deeply satisfying.
What We Learned
- Lens Studio's Animation System – Learned how to work with AnimationPlayer, handle bone transforms, and cancel root motion to prevent animation-driven Y-axis drift.
- Bitmoji Integration – Discovered the importance of pivot offsets when rotating characters. Setting the rotation center at the character's center of mass (hips) rather than feet makes flips look natural.
- Mobile Touch UX – Implemented gesture detection (tap vs. swipe up/down) for flip direction control while keeping the core gameplay accessible with simple taps.
- Persistent Storage – Used Snap's GeneralDataStore to save best heights, flip records, and goal progress — essential for longform engagement.
- Leaderboard Integration – Navigated different API patterns (direct methods,
.apiproperty, global module) to ensure score submission works across Lens Studio preview and live Snap. - Physics Tuning – Spent significant time finding the right gravity balance to make jumps feel both rewarding and responsive.
What's Next for TrampoWin
If I had more time, I'd love to add:
- Trick combos – Chain specific flip sequences for bonus points
- Cosmetic unlocks – New trampolines, particle effects, or celebration animations
- Daily challenges – "Land 3 perfect double flips today"
- Multiplayer race – Real-time competition using Snap's Connected Lenses
Built With
- javascript
- lensstudio
- typescript
Log in or sign up for Devpost to join the conversation.