A Hand?
A downloadable game for Windows
**A hand?** is a physically-driven co-op climbing prototype for two
players. There's no auto-grab, no climbing-as-platforming — each hand is
controlled independently and has to actually be holding something for your
body to stay on the wall.
**Independent per-hand grabbing.** Left mouse button controls your left
hand, right mouse button controls your right. Hold the button and the hand
reaches toward whatever you're aiming at; it latches on the instant
anything reachable comes into range, so you never have to time a click
precisely.
**Every hold costs you.** Each hand tracks its own fatigue. A hand tires
while it alone is carrying your weight, and recovers when it's free or
sharing the load with your other hand. Push a hand too far and it gives out
on its own — you'll feel it coming, but pushing your luck is part of the
climb.
**Grab your partner, not just the wall.** Every player has grab-points on
both hands, their belt, and their back. Your partner can catch a ride on
your back without occupying your hands, or hang off your belt to rest —
and if either of you falls, the other can catch you out of the air. Reach
is forgiving mid-fall: a falling player grabs rather than aims, and so does
whoever's trying to catch them. Catching someone isn't free, though — it's
a sudden jolt of fatigue to the hand doing the catching, and if that hand
was already exhausted, the catch can rip it straight back off the wall.
Belaying a tired partner is a real risk, not a free save.
**A rope that actually swings.** The rope is simulated along its full
length, not just a weight on a string — push in the direction you're
looking to build swing momentum Tarzan-style, and both players can ride
different points of the same rope at once, feeling each other's pushes
through the chain.
This is a **mechanical prototype**, not a finished game: there's no art,
no level progression, no scoring — just one hand-built climbing route up a
tall wall, ending at a marked finish. It exists to test whether the core
two-hand-fatigue-and-rescue loop is fun with a real second player. Go in
expecting a physics sandbox with training wheels off, not a polished
product.
| Action | Input |
|---|---|
| Move | WASD |
| Look | Mouse |
| Grab / release, left hand | Hold / release Left Mouse Button |
| Grab / release, right hand | Hold / release Right Mouse Button |
| Jump (off the ground, or off whatever you're holding) | Space |
| Release mouse cursor | Escape |
| Host a session | H |
## Requirements
- **Windows** (64-bit). No installer — unzip and run `climb.exe`.
- **Steam must be running and logged in** on both machines before
launching — this game uses Steam's networking layer to connect the two
players, even though it isn't sold or launched through Steam itself.
- **Two players**, each on their own machine, connected over the internet
or a LAN. There's no solo mode and no matchmaking — one of you hosts,
the other joins directly (see Known Issues below for how).
- A mouse and keyboard each. No controller support.
## ⚠️ This is an early prototype
Built to test the core mechanics, not to be a finished release. Expect
rough edges, and please don't expect it to be feature-complete — see Known
Issues below for what's already known and not being treated as a surprise.
## Known issues
- **The rope can visibly clip through the wall** during a hard, fast swing
— the rope's own physics doesn't currently collide with the wall
geometry, only with the players' grabs on it.
- **No reconnect.** If a player disconnects or loses connection mid-session
(crash, alt-tab issue, network drop), there's no way back into that same
session — you'll need to start a new one from the main menu.
- **Joining only works via manual lobby ID right now.** The host's status
line shows a lobby ID; the joining player types it into the field next
to "Join by ID" and connects directly through Steam's API. Steam-overlay
invites and the Friends-list "Join Game" button are not reliably wired up
yet — use the manual ID field, it always works. (This build also runs
under Valve's shared test AppID 480, not a real Steam App ID — expected
for a prototype, not something to report.)