Co-op

Playing together

Every game runs on a server, including solo play, where the game quietly starts one on your own machine. To play with friends, one of you hosts:

ToRun
Play solocargo run --release -p emberdeep
Host a gamecargo run --release -p emberdeep -- --host 5000 (prints the address to share)
Join a friendcargo run --release -p emberdeep -- --connect IP:5000
Run a dedicated servercargo run --release -p server -- --bind 0.0.0.0:5000

Add --name NAME to choose the name others see. Over the internet the host needs to forward UDP port 5000 to their machine, or run a dedicated server with a public address; there is no matchmaking or relay yet. Debug keys such as spawning hordes only work if the host started with --cheats.

What the party shares

  • The depth. When any living player steps into the portal, the whole party moves to the next depth together.
  • Experience and flask charges. Every kill gives its full experience and flask charges to each living player within 30 tiles.
  • The monsters. Each monster goes for the nearest living player.
  • Death. A fallen player can get back up at the start of the depth. If everyone is down, the depth is generated again.

Loot is yours

Each living player within 30 tiles of a kill rolls their own drops, using their own item rarity, and only they can see or pick them up. Nobody races for loot. See Drops. This runs on the server today; sending items to clients is the next step.

Under the hood

The server runs the game 30 times a second and is the only authority: clients send inputs and draw what the server sends back. Each client predicts its own movement so walking feels instant, and shows everyone else about 100 ms in the past, smoothly blended between server updates. Updates are compressed against what each client already has; in a 2,000-monster fight a client receives about 60 to 75 KB per second. Maps are never sent: every client rebuilds the cave from the same seed.