A fully playable arcade game collection built entirely in Microsoft Excel VBA! Battle through classic Pong with dynamic barriers and cracking walls, then unlock a bonus Flappy Bird game through an epic egg-hatching cutscene.
This project was created for Hack&Roll 2026 (24-hour hackathon) and showcases the unexpected power of Excel as a gaming platform. No external libraries, no game enginesโjust pure VBA magic!
- Pong - Classic paddle game with modern twists
- Flappy Bird - Navigate through pipes with pixel-perfect collision
- Animated Cutscene - Smooth transition animation between games
- ๐ Classic Paddle Mechanics - Move up/down to keep the ball in play
- ๐งฑ Dynamic Barriers - Obstacles spawn and degrade over time
- 2-4 cell variable lengths
- Horizontal & vertical orientations (80% vertical spawn rate)
- Health-based color degradation
- ๐งฑ Breakable Wall System - Hit the wall 5 times to break through
- Progressive crack visualization
- 2-cell thick wall with individual cell damage
- ๐จ Ball Trail Effect - Smooth motion trail behind the ball
- ๐ Difficulty Scaling - Ball speed increases over time
- ๐ Pixel Art Dragon - Hand-drawn boss behind the wall
- ๐ฆ Smooth Flight Mechanics - Gravity + flap physics
- ๐จ Custom Pipe Design - Hand-drawn pipe pixel art (replicated from template)
- ๐ Score Tracking - Points for each pipe passed
- โก Adjustable Difficulty - Configurable gap size, speed, and spawn rate
- ๐ฎ One-Button Control - Simple flap button gameplay
- ๐ฅ Egg Hatching Sequence:
- Ball flies to center stage
- Ball grows into egg (1x1 โ 2x2 โ 3x3 โ oval)
- Cracks appear progressively
- Egg shakes and explodes
- Bird emerges and flies
- ๐ฅ Wall Explosion - Wall pieces fly outward with physics (gravity + velocity)
- ๐ฌ Smooth Frame Animation - Cell-based flipbook animation
- Open
PongGame.xlsmin Microsoft Excel (macros enabled) - Go to the Menu sheet
- Click "Start Game" to begin Pong
- Up Button (or click cell) - Move paddle up
- Down Button (or click cell) - Move paddle down
- Objective: Hit the wall 5 times to break through and win!
- FLAP Button - Make the bird jump
- Objective: Navigate through pipes and get the highest score!
Menu โ Pong โ Wall Breaks โ Explosion Animation โ
Egg Hatching โ Bird Emerges โ Flappy Bird โ Game Over โ Menu
PongGame.xlsm
โโโ Sheets
โ โโโ Menu (Game selection)
โ โโโ Pong (Main game board)
โ โโโ FlappyBird (Bonus game board)
โโโ VBA Modules
โโโ Module1 (Pong game logic)
โโโ Module2 (Cutscene animations)
โโโ Module3 (Flappy Bird logic)
- VBA (Visual Basic for Applications) - All game logic
- Excel Cells as Pixels - Visual rendering system
- Timer-Based Game Loop -
Application.OnTimefor smooth animation - RGB Color Manipulation - Custom color palettes and effects
- Cell Interior Colors - Graphics rendering
' Pong runs at 0.5 seconds per tick
' Flappy Bird runs at 0.15 seconds per tick
Application.OnTime GameTimer, "GameTick"- Pong: Ball vs Paddle, Ball vs Barriers, Ball vs Walls
- Flappy Bird: Bird vs Pipes, Bird vs Ground, Bird vs Ceiling
- Pixel-perfect hitbox calculations
- Frame-based animation using DoEvents loops
- Physics simulation (gravity, velocity, friction)
- Particle system for wall explosion
- Accessibility - Everyone has Excel, no installation needed
- Challenge - Pushing Excel beyond its intended use
- Visual Grid - Perfect for pixel art and retro games
- Hackathon Novelty - Unique approach for a 24-hour sprint
Application.ScreenUpdating = Falseduring rendering- Efficient cell range clearing (batch operations)
- Minimal redraw operations (only changed cells)
- Timer-based game loop (non-blocking)
โ ๏ธ Laggy on older computers (Excel isn't optimized for gaming!)โ ๏ธ Animation framerate depends on CPU speedโ ๏ธ Large number of active timers can cause slowdown
โ ๏ธ Application.OnTimecan sometimes queue multiple callbacksโ ๏ธ Macros must be enabled (security warning)โ ๏ธ Doesn't work in Excel Online (desktop only)
โ ๏ธ Flappy Bird collision could be more forgivingโ ๏ธ No sound effects (VBABeepis too basic)โ ๏ธ No high score persistence across sessions
- ๐ Sound System - Use Windows API for better audio
- ๐พ High Score Tracking - Save to hidden sheet or external file
- ๐จ More Pixel Art - Additional enemy sprites
- ๐ฎ Power-ups - Speed boost, shield, multi-ball
- ๐ Achievement System - Unlock skins, modes
- ๐ฅ Two-Player Mode - Competitive Pong
- ๐ Visual Effects - Screen shake, particle explosions
- ๐ฑ Touch Controls - Better macro button placement
- Separate rendering engine from game logic
- Implement proper game state machine
- Add configuration file for easy tuning
- Create reusable animation framework
- โ VBA advanced techniques (timers, user-defined types, modules)
- โ Game loop architecture and timing
- โ Collision detection algorithms
- โ Animation and physics simulation
- โ Excel object model deep dive
- โ Balancing difficulty curves
- โ Player feedback systems (visual cues)
- โ Progressive challenge design
- โ Importance of playtesting
- โ Scope management in time-limited projects
- โ Rapid prototyping and iteration
- โ Creative problem-solving with constraints
- โ Making unconventional choices that stand out
- NUS Hackers - For hosting an amazing hackathon
- Classic Arcade Games - Inspiration from Pong (1972) and Flappy Bird (2013)
- Excel Community - For VBA documentation and examples
Created in 24 hours for Hack&Roll 2026
Proving that Excel is not just for spreadsheets! ๐โก๏ธ๐ฎ