Inspiration

Nestbound started with Vineel being bored.

We both love multiplayer games, but finding something fun to play together can be surprisingly hard. Sometimes there is a paywall, a steep learning curve, or hardware you do not have. Sometimes you have simply played the same maps enough times that the excitement is gone.

That led us to a question: with coding agents and tools like SpacetimeDB making multiplayer development more accessible, why keep complaining about being bored when we could build something ourselves?

Our answer was a shower thought: what if we raced birds?

We took inspiration from Mario Kart’s friendly competition, Minecraft’s procedural worlds, and the simplicity of slowroads.io and browser racers. Birds gave us something different to explore: racing with the freedom to move vertically. Why just steer around a corner when you could dive into it, bank through it, or catch an updraft?

We wanted something playful, beautiful, and easy to jump into with friends.

What it does

Nestbound is a multiplayer bird racing game that runs in your browser. Pick a bird, join your friends, and race through forests, canyons, rainforests, and glowing caverns.

Flight is about momentum. Diving builds speed, climbing trades speed for height, and boosts, wind currents, and narrow shortcuts give you opportunities to pull ahead. Procedurally generated, seeded courses keep the routes fresh while letting friends race under the same conditions.

You can also chase your best run’s ghost or try the daily challenge. Our goal was simple: give someone with a keyboard, a screen, and a few spare minutes something worth getting excited about.

How we built it

We built the game in Three.js, pushing beyond our previous experiments with web visuals to create a complete 3D racing experience. The worlds combine procedural terrain, low-poly scenery, weather, animated birds, and music that responds to your speed.

SpacetimeDB powers the multiplayer backend, including race rooms, player profiles, live positions, and race results. Its real-time subscriptions synchronize race data between players, while SpacetimeAuth handles sign-in and Maincloud hosts our backend.

We used coding agents throughout development to help us iterate across gameplay, graphics, and networking. Having those tools let us attempt a much more ambitious game, but we still had to make the pieces feel like one coherent experience.

Challenges we faced

Giving players the freedom to fly also made designing races harder. A road tells a driver where to go. In the sky, we needed terrain, rings, landmarks, and camera movement to make the route readable without taking away that freedom.

Procedural generation added another challenge: a course needs to be more than different. It needs to be flyable, understandable, and fun. Terrain, obstacles, shortcuts, and checkpoints all have to work together.

We also had to balance visual ambition with browser performance. We wanted worlds people would enjoy looking at while keeping the game accessible, which meant paying attention to rendering costs, scenery detail, and quality settings.

What we learned

We learned that making a game technically work and making it feel good are very different milestones. Small changes to flight controls, camera movement, and visual feedback can completely change how enjoyable a race feels.

We also learned how much a shared seed can offer. It gives us new courses without losing the ability to replay a favorite route, compare times, or challenge a friend.

Most of all, we learned that modern tools make building your own multiplayer game a realistic response to “I wish this existed.”

What’s next

We want to add more world themes, course variety, and new surprises to discover in flight. Procedural generation gives us a foundation, but keeping the game interesting means expanding what those worlds can offer.

Nestbound began as a way to kill our own boredom. We hope it becomes a small source of joy for anyone looking for something fun to play with their friends.

Built With

Share this project:

Updates

Submission history