BannerImage

Inspiration

Gorillass! I love cute and quirky animals, and a gorilla felt like the perfect one to build a game around. The first idea was the obvious one, a gorilla swinging on vines, but that alone felt too simple. So I made him swing around poles instead, spinning like a gymnast on a high bar. You don't steer him. You just decide when to let go.

                                                   Milo Spinning

Somewhere underneath it all there's a bit of Donkey Kong, and a lot of Getting Over It with Bennett Foddy, because I wanted a game that is hard, but never mean about it. When you fall, the gorilla's face fills the screen in pure terror and he screams. That's the whole tone: challenging, funny, and cute. I'm really happy with how the style came out.

Jungle Swing is built to be easy for anyone to pick up. The entire game is one button. But it still leaves a very high skill ceiling for the people who want to chase a perfect run.

What it does

Hook: Swing, spin, release!

Grab a pole and the gorilla (Milo) starts spinning around it automatically. The catch: the spin direction is randomised on every grab, so you can never just memorise one perfect release. You have to read which way you're rotating and time the release to get to the next pole. The longer you hold, the more spin power you get, from low, medium, and high. How you play changes how you score. Full-power launches send Milo flying over whole sections, landing far trickshots that skip poles for big bonus points. Quick low-power releases keep him at a steady rhythm instead, stacking a QUICK SHOT bonus that keeps growing as long as you hold the pace. Or combine both far and quick shots for the most points, but be warned, it's not easy! A trajectory preview traces exactly where you'll fly, so every death is entirely your own fault.

One tap. That's the whole game, but with depth.

                                                   Gameplay gif 1

Retention Mechanic: One jungle a day. Everybody swings the same one

A fresh daily level drops every day at 13:00 UTC as its own Reddit post. Every single player gets the exact same course, generated from the same seed, so when someone brags about clearing it in 4 deaths, you know precisely what they beat.

Miss a day? The DAILY LEVELS archive lets you jump back into any past challenge and clear it after.

                                                   Daily Levels Showcase On Reddit

Every daily level is 100% beatable

This is the part I'm quietly proudest of. The level generator doesn't just place poles and hope. It runs the game's real physics simulator on every single transition, from every release angle, in both spin directions, at every power tier. It only accepts a jump if there's a comfortable window of angles that lands it, including a window for an impatient first-spin quick shot.

If a level can't prove itself clearable, it gets thrown away and regenerated. You will never, ever open a level that is impossible. When you die, that's on you.

                                                   generated daily course, zoomed out to show the whole path

User Contribution #1: Your fallen rivals haunt the course

Every death in the daily leaves a ghost: a translucent purple gorilla, frozen at the exact spot you fell, tagged with your username. When you load today's level, you see everyone else's.

And you can leave them a message. Sixty characters, right after you die, floating in a speech bubble over your corpse for every player who comes after you. The hardest jump in every level becomes a wall of purple gorillas and increasingly unhinged commentary. Deaths stop being failure and start being content.

                                                   Death Message & Ghosts

Compete for first place!

The daily leaderboard ranks by fewest deaths, with time as the tiebreaker. You can only complete a daily level once; that way scores are more valuable. After that, you can play previous levels, endless mode, or build your own!

                                                   Leaderboards UI

Endless mode: how far can you get?

An infinite, procedurally-generated jungle that never stops. Score points for bananas, for skipping poles entirely, and for pulling off QUICK SHOTS. Chain them together, and a Balatro-style combo bank builds up beside your score, glowing yellow, then red, then bursting into flames before it drains into your total.

                                                   Endless Mode Gameplay

The jungle fights back

Not every platform is your friend:

  • Wood poles spin at normal speed
  • Vines sway, so you have to wait for the right moment, and your grip slips down the rope
  • Honey poles make you sluggish and sticky
  • Moss poles spin you dangerously fast
  • Bamboo poles wobble, crack, and snap if you hold on too long
  • Ice poles freeze your power at the speed you flew in with, no charging up
  • Mushrooms bounce you sky-high
  • Wind birds blow an updraft that throws you hardest when you dive deepest into it
  • Enemy birds orbit their pole and kill you instantly

                                                   Platforms Montage

Play anywhere, mobile and desktop

Full support for both. Pinch to zoom (right into the gorilla's face, if you want), drag to look around, and tap to swing. Since Reddit locks the webview to portrait, Jungle Swing ships its own forced landscape mode so you can play it properly on a phone.

                                                   Daily Menu and Level Example

User Contribution #2: Create your own levels!

Players can also create their own levels to showcase their creativity with the community. Add any platform or obstacle in the game, test your level, and get upvotes after you share it! Every upvote will give the level creator a banana (in-game currency). All of the community levels are easily accessible through the levels button.

                                                   Daily Menu and Level Example

Toon 3D Assets hand-built from scratch

Everything you see is real 3D: three.js and WebGL, cel-shaded with hand-rolled black outlines. There isn't a single imported 3D model in the game. The gorilla, the poles, the bananas, the birds, the ghosts, the crystals and butterflies and fireflies in the background: all of it is procedural geometry, assembled out of spheres and cylinders and cones in code.

                                                   Triangles Of Models Made By Code

How we built it

Reddit Devvit Web, Three.js, TypeScript, Hono, Redis, the Web Audio API, and a truly unreasonable amount of physics tuning.

The key architectural decision: the physics simulator lives in shared code. The exact same integration loop runs in the browser during play, on the server when it generates the daily level, and in an offline audit script that mass-verifies hundreds of seeds. A jump the generator proved possible is byte-for-byte the jump you actually fly.

Challenges we ran into

                                                   Milo Death Animation

Proving levels are fair. It's easy to generate a jungle. It's hard to generate one you can guarantee is clearable, especially when the spin direction is randomised every time you grab. The level has to work in both directions, and a player who releases on their very first spin still has to make the jump. Getting the verification model right took far longer than the gameplay did.

Verification is expensive. Running that same verifier live in endless mode caused 40-260ms frame hitches every time it generated a new segment. The fix was to spread the search across frames: one attempt per frame, with a guaranteed cheap fallback hop once the budget runs out. Buttery smooth, no stalls.

Reddit's webview is portrait-locked. Landscape had to be faked by rotating the entire game 90Β° in CSS, which promptly broke every pointer coordinate in the game. Remapping touch input at the prototype level fixed it without touching a single gesture handler.

Accomplishments that we're proud of

Shipping a full 3D physics game for Reddit with zero imported assets, a mathematically verified level generator, a daily competitive mode, an endless mode, a level builder, and a social ghost system.

What we learned

Less is more. The ideas were endless: more modes, more menus, more mechanics. Most of it never made the cut, and the game is better for it. A clean UI and one-button gameplay that still hides real depth beats a screen full of features.

Playtest dozens of times. No amount of looking at code tells you whether a game is fun. Playing it does. We ran the game constantly while building it, and that's where the bugs showed up and where the tuning happened, from spin speeds to camera framing. If something felt off after ten runs, it got changed.

What's next for Jungle Swing!

More obstacle types and hazards. A house/cave for your gorilla. Replays, so you can watch the top runs. A shop, gorilla cosmetics to actually spend all those bananas on, and more mysteries that you'll discover from the jungle!

                                                   Loading Screen

Built With

Share this project:

Updates