Inspiration
The viral bottle flip challenge that captivated millions inspired us to create a digital version that captures the satisfying physics and skill-based gameplay of the real thing. We wanted to bring this addictive, simple-yet-challenging concept to Reddit's gaming community, where users could compete, share custom levels, and experience the perfect blend of physics simulation and social gaming that makes bottle flipping so compelling.
What it does
Battle Flip is a physics-based skill game where players swipe to flip a bottle across increasingly challenging platforms. The game features:
Solo Challenge Mode: Endless survival with progressive difficulty scaling Realistic Physics: Bottom-heavy bottle simulation with torque-based rotation Dynamic Difficulty: Platforms get narrower and further apart as you progress Mobile-Optimized: Touch controls with visual feedback and responsive design Social Features: Leaderboards and score sharing within Reddit communities Level Editor: Create and share custom challenges with the community Battle Arena: Compete on community-created levels Players must master timing, power, and trajectory to land bottles upright on shrinking targets, creating an addictive "just one more flip" experience.
How we built it
We built Battle Flip using Reddit's Devvit platform with a modern web technology stack:
Frontend: Phaser.js for 2D physics and rendering, TypeScript for type safety, mobile-first responsive design Backend: Express.js server with Redis for data persistence via Devvit APIs Physics Engine: Arcade Physics with custom bottle dynamics, realistic center-of-mass simulation Build System: Vite for fast development and optimized production builds Architecture: Modular component system with separate physics, input, audio, and visual effect managers
The game uses a sophisticated physics system that simulates a bottom-heavy bottle with realistic rotation, bounce, and landing mechanics. We implemented progressive difficulty scaling, comprehensive visual feedback systems, and mobile-optimized touch controls.
Challenges we ran into
Physics Complexity: Creating realistic bottle physics that felt satisfying required extensive tuning of mass distribution, angular velocity, and landing detection. We went through multiple physics engines before settling on a custom Arcade Physics implementation.
Mobile Optimization: Ensuring smooth performance and intuitive touch controls across different mobile devices required careful optimization of rendering, input handling, and UI scaling.
Failure State Management: Designing a failure system that felt fair rather than punishing took multiple iterations. We implemented a three-stage failure sequence with visual feedback and smooth checkpoint resets.
Platform Generation: Creating procedurally generated platforms that scale difficulty appropriately while remaining achievable required complex algorithms for positioning, sizing, and reachability validation.
Reddit Integration: Working within Devvit's constraints while maintaining rich gameplay features required creative solutions for data persistence and user interaction.
Accomplishments that we're proud of Realistic Physics: We achieved bottle physics that genuinely feel like flipping a real bottle, with proper weight distribution and satisfying landing mechanics.
Progressive Difficulty: Our algorithm creates a perfect difficulty curve that challenges players without frustrating them, scaling from beginner-friendly to expert-level precision.
Mobile-First Design: The game works flawlessly on mobile devices with intuitive swipe controls and responsive UI that adapts to any screen size.
Visual Polish: Every interaction has satisfying feedback - from dynamic swipe trajectories to particle effects, screen shake, and smooth animations.
Performance Optimization: Despite complex physics and visual effects, the game runs smoothly at 60fps on mobile devices through careful optimization.
Community Features: Integration with Reddit's social features creates a natural sharing and competition environment.
What we learned
Physics Programming: Gained deep understanding of 2D physics simulation, particularly around rotational dynamics and collision detection systems.
Mobile Game Design: Learned the importance of immediate feedback, clear visual communication, and touch-optimized interfaces for mobile gaming.
Progressive Difficulty: Discovered how to create engaging difficulty curves that keep players in the "flow state" - challenged but not overwhelmed.
Reddit Platform Development: Mastered Devvit's capabilities and constraints, learning to build rich interactive experiences within Reddit's ecosystem.
User Experience Design: Understood how small details like screen shake, particle effects, and audio feedback dramatically impact player satisfaction and engagement.
Performance Optimization: Learned advanced techniques for optimizing web-based games, including object pooling, efficient rendering, and memory management.
What's next for Battle Flip
Enhanced Social Features:
Real-time multiplayer battles Tournament systems with brackets Community challenges and events Spectator mode for watching top players Content Expansion:
Themed level packs (space, underwater, etc.) Special bottle types with unique physics Environmental hazards and moving platforms Boss levels with complex multi-stage challenges Advanced Features:
Replay system to share amazing flips AI-powered level generation Achievement system with unlockable content Cross-platform leaderboards and progression Community Tools:
Advanced level editor with scripting Community voting and featured levels Creator monetization through Reddit's systems Modding support for custom bottle skins and effects Platform Expansion:
Integration with other Reddit gaming communities Mobile app version for broader reach VR mode for immersive bottle flipping Accessibility features for inclusive gaming Battle Flip represents the future of social gaming on Reddit - combining skill-based gameplay with community features to create lasting engagement and viral sharing potential.
Built With
- devvit
- kiro
- phaserjs

Log in or sign up for Devpost to join the conversation.