Pizza Express: Drone Delivery in the blackholes.store Universe
Inspiration
I've always loved pizza — cooking it, eating it, everything about it. Earlier this year I launched my own little universe at blackholes.store, a place that will eventually hold a bunch of mini-games. I wanted to kick it off with something fun and personal, so I combined my pizza obsession with my passion for cutting-edge tech: a drone-delivery game called Pizza Express.
The idea was simple — let players feel the rush of grabbing a hot pizza, hopping into a drone, and racing through a virtual city to deliver it, all while sharing that joy through VR, mobile, and desktop browsers.
What It Does
Pizza Express is a browser-based WebXR drone delivery game with a simple but addictive gameplay loop:
- Accept an order
- Walk/grab the pizza from the shop
- Load it onto your drone
- Fly through the city and deliver
- Earn (or lose) tips based on speed and care
- Rank up or down, unlock badges, climb the leaderboard, repeat
To keep it engaging and funny, I added:
- Comedy rage quotes from angry customers when you're late or drop the pizza
- Negative wages possible — drop an expensive pie and you actually owe the shop
- Asymmetric XP (you lose progress faster than you gain)
- Ranks from Trainee → Rookie Pilot → Delivery Driver → all the way to Pizza God (5500+ XP, where you get 50% bonus tips)
How I Built It
I built the entire experience as a browser-based WebXR game so anyone can jump in without downloads.
Key technologies:
- Three.js (r158+) for the 3D engine
- React 18 + Vite + Rollup for the build pipeline
- Native WebXR Device API for VR entry
- WebXR Hand Input and Gamepad API for natural controls and hand tracking
- XR standard mapping + persistent local storage for saving progress, badges, and leaderboard ranks
I tuned performance hard so it runs smoothly on everything — Meta Quest 3 in full VR, old Android phones, iPads, and desktop browsers. I tested live on all of them, constantly tweaking the drone physics, camera angles, and render settings until the controls felt snappy no matter the device.
Challenges I Ran Into
The biggest gut punch: I once pushed to GitHub wrong and lost the entire source code. Had to rebuild everything from scratch — layout, drone physics, game loop, the works.
Other tough parts:
- Making drone flight feel intuitive and smooth across VR hand tracking, gamepads, touch, and mouse/keyboard
- Optimizing so older phones don't choke on particles and city geometry
- Debugging environment mapping so the world loads fast but still looks alive
Accomplishments That I'm Proud Of
When the competition started, blackholes.store had zero mini-games. I created Pizza Express completely from scratch during the comp window — concept, code, art, testing, leaderboard, badges, everything you see today was built in this timeframe.
I'm proud that the game runs smoothly across such a wide range of devices and that the drone controls feel natural whether you're using VR hand tracking, a gamepad, or just a mouse and keyboard.
What I Learned
Different devices need different love, but making one experience feel native everywhere is the future of gaming. Adapting to new tools (WebXR, hand tracking, passthrough possibilities) and pushing browser limits taught me how fast ideas can become real when you just dive in and iterate.
What's Next for Pizza Express VR - Drone Delivery Simulation
- Multiple drone types with different speeds and handling
- Purchasable power-ups and debt-free passes
- Full Horizon Worlds integration (re-writing the loop in TypeScript for Meta's engine)
- Mixed-reality passthrough mode: anchor the pizza shop to your real table, drop delivery zones around your actual room, fly the drone through your own living room with the virtual city overlaid
Pizza Express is just the first slice — can't wait to keep expanding the blackholes.store
Built With
- 3d
- buildvite
- enginethree.js
- frameworkreact
- gamepadapi
- modulecontrollerswebxr
- persistencelocalstorage
- rollup
- trackingwebxr
- vitexr
- webxr


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