Puzzle · Physics

Descensus 2

Guide a falling ball to the ground by dragging a physics bar to deflect it past spinning saws, moving snakes, and seesaws in a procedurally generated descent.

Overview

Dragging a solid bar through the play field is the only tool you get. In Descensus 2, a blue ball drops from a thousand meters up under real 2D physics, and your job is to shepherd it down to the ground without letting it touch a spinning saw. You cannot move the ball directly; you move the world around it, swiping to place a heavy wooden bar that bats the ball aside each time it threatens to drift into a blade. The terrain is procedurally generated every run by a Mersenne Twister-seeded builder, so no two descents line up the same way: seesaws tilt, segmented snakes slither across the shaft, free saws roll, and the layout keeps reshaping itself around the fall. Built by Tom W Hall in TypeScript on the p2.js physics engine with Pixi.js rendering, and released under the MIT license, it is a precision game that appeals to anyone who liked marble-run toys or tilt-maze puzzles but wants the stakes of a timer and a finite stock of lives.

How to Play

The objective is to land the ball on the ground at the bottom of the shaft, starting from a height of one thousand meters. There are no keys: click and drag with the mouse, or touch and drag on a phone, to position the bar, and the ball physically bounces off it, so you steer by interception rather than by pushing. Each run gives you five lives, and touching a saw, saw-snake, or any fatal terrain object costs one life while granting a few seconds of invincibility on respawn. Every hundred meters of descent is a checkpoint, and you have thirty seconds to reach the next one or you lose a life, with a ticking clock sounding when time is almost out. Reaching the ground ends the run with your total time and remaining lives shown on the win panel.

Tips & Strategy

Read the drop below before you place the bar. The ball inherits momentum from every deflection, so a swipe that sends it sideways into a clear channel is usually better than a frantic correction directly under a saw. Treat the bar like a bat, not a wall: short glancing placements change the angle of fall without rocketing the ball across the shaft, while parking it flat underneath kills vertical speed and burns checkpoint time. Prioritise a clean line through clustered saws over grabbing plus-one-life pickups, because the extra life is not worth a fatal bounce and a single bad ricochet through a snake or saw-spinner ends a run faster than the timer ever will. When the clock starts ticking, commit to the fastest available vertical path rather than the safest, since running out of time costs a life just like a blade does.

Controls

Keyboard
None — the game is pointer-driven, no key bindings
Mouse
Click and drag anywhere in the play field to place and move a solid physics bar; the falling ball bounces off it, so you steer by interception.
Touch
Touch and drag to position the bar — identical to mouse, designed for one finger.

Features

  • Guide a falling ball from 1000m down to the ground using real 2D p2.js physics
  • Drag a heavy bar to bat the ball past spinning saws, saw-snakes, saw-spinners, and moving snakes
  • Procedurally generated terrain reseeded every run via a Mersenne Twister
  • Five lives with brief invincibility after each fatal collision, plus collectible extra-life pickups
  • 30-second checkpoint timer per 100m of descent keeps every run urgent
  • Seesaws, spinners, girders, and bricks that tilt and shift around the falling ball