GOOH! Get Out of Here!
Vision OS Game
A Tiny UFO Rescue Game for Apple Vision Pro
Building a Native Vision Pro Game: Lessons from Gooh
When Apple's "PRESS START" event showcased Vision Pro's gaming potential, something clicked. I knew I wanted to build something that truly leveraged what makes spatial computing special. Not a port, not a proof-of-concept, but a real game designed from the ground up for the platform. That spark of inspiration became Gooh!—a 3D helicopter rescue game that uses hand tracking, volumetric windows, and immersive spaces in ways that feel natural.
The Vision
The core idea is simple: pilot a UFO to rescue stranded aliens across 9 unique worlds, from tropical beaches to volcanic wastelands. But the execution required solving problems I hadn't encountered before. How do you make hand gestures feel responsive without being jittery? How do you render a 3D scene that works both in a floating window and full immersion? How do you maintain 90 FPS with complex physics and dozens of entities?
The Architecture
I built Gooh using an Entity-Component-System (ECS) architecture with RealityKit—33 components and 28 systems that handle everything from flight physics to spatial audio. This wasn't just for organization; it was a performance decision. By separating data from logic and processing entities in batches, I could hit consistent frame rates even with complex scenes.
The game runs in two modes: a volumetric window (2×1.8×1.8 meters) that floats in your space, and a full immersive mode that replaces your environment. The challenge was making both feel great with the same codebase. Different input sensitivities, different bounds, different lighting setups—but the same core gameplay.
Technical Highlights
Hand Tracking: The game uses Vision Pro's spatial gestures for all controls. Pinch and drag with your left hand to move, lift to throttle. Getting the feel right took weeks of tweaking deadzones, smoothing algorithms, and input scaling. The result is controls that feel natural, not like you're fighting the system.
Lighting System: Each of the 9 stages has its own Image-Based Lighting (IBL) environment, fill lights, and ambient colors. I implemented a dual-world lighting system to prevent the portal window from over-lighting gameplay entities, and vice versa. It's one of those "invisible" features that makes everything look better.
Spatial Audio: The UFO engine sound uses RealityKit's spatial audio with beam directivity, so it sounds like it's actually coming from the craft. Audio volume scales with throttle, and each stage has its own background music that loops seamlessly.
Performance: With 65 levels, procedural generation after that, and complex physics, performance was always a concern. I implemented LOD systems for distant aliens, cached game state to avoid expensive queries, and used static EntityQueries that RealityKit can optimize. The game maintains 90 FPS for critical systems like flight physics, while throttling less critical updates.
What I Learned
Building for Vision Pro taught me that spatial computing isn't just about 3D graphics—it's about designing interactions that feel natural in physical space. Hand tracking isn't a mouse replacement; it's a fundamentally different input method that requires rethinking how players interact with games.
The ECS architecture paid off in ways I didn't expect. Adding new features became straightforward: create a component for data, a system for logic, register both, and it works. The modular design made it easy to iterate on gameplay mechanics without breaking existing systems.
The Result
Gooh features 65 hand-crafted levels across 9 unique stages, each with distinct visuals, music, and difficulty curves. The game uses native Vision Pro features throughout—volumetric windows, immersive spaces, spatial audio, hand tracking—without feeling like a tech demo. It's a complete game that happens to showcase what's possible with Apple's latest platform.
Building this project deepened my understanding of performance optimization, spatial computing design, and how to structure large Swift projects. More importantly, it reminded me why I love building games: there's something magical about creating an experience that feels natural and fun, even when you're working with cutting-edge technology.
Tech Stack: Swift, SwiftUI, RealityKit, visionOS
Architecture: Entity-Component-System (33 components, 28 systems)
Platform: Apple Vision Pro
Status: Complete with 65 levels, 9 stages, dual rendering modes