introduce mortality #230
Labels
No labels
animation
audio
blocked
bug report
controversial
documentation
easy
feature request
hard
impossible
medium
multiplayer
physics
ui
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
elsie/liuverse#230
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Very unclear to what extent.
It shouldn't be very punishing to die, just funny.
Things that can kill you
Probably a lot more as we introduce more gadgets/items.
Should also have popup/toast announcing deaths, like in source games
The two causes in the thread are the right seed; the fun is in the tier below death and in the aftermath. My pitch: mortality as a running gag, not a fail state. No health bar, no damage numbers, no dropped loot, no score loss, no corpse run. You die, the campus does a short comedy routine, and a couple of seconds later you are back on your feet near where you fell. The death is the content, not the penalty.
What can kill you
Vehicles, with a tier below death. A hit needs speed and heft. A kick scooter clipping an ankle should trip you; a bike should knock you down; the shuttle should make you a hood ornament. The kind specs already know their top speeds and dimensions; a named
heft(orlethality) field per kind is enough. Low speed = push or trip, medium = launch, high = obituary. If a player is driving, the feed names both: "X was collected by Y's shuttle." If the victim is the driver, the line should absolutely say so. The bus should honk first — the horn already exists. A wall at speed is the second act: detect the sudden stop and blame the wall. (wears_helmetalready knows who is on a bike; maybe the helmet is the difference between a crash and a bad story. I would not make gear management out of it.)Falls.
apply_gravityalready returns the touchdown speed, andLandingalready distinguishes a step from a splat. That is a free three-act structure: step, splat, and, past a higher threshold, death.FootSurfacealready separates grass, gravel, hard, wood and water, so pavement can be the killer and the lawn can be a comic reprieve. The canopy is the skill save: a good landing is soft, cutting away too low is the "you played yourself" death. Turning off fly at altitude is the tutorial death. Do not kill on every roof jump; the existing splat is the warning shot. A fall that clips a tree could catch on the branches, burst leaves, and drop you the rest of the way — a fun stretch, not v1.The pond. Water is a walkable surface today. Unless we give the ponds depth, drowning is just wet socks; leave it out until water is more than a paint job.
Future gadgets. A ball to the head is a knockout, not a death, unless it came from the roof. Sleds into barriers, cargo-bike T-bones, canopy collapses and car roofs all get a cause tag. Keep the cause enum append-only, so new gadgets add causes without breaking old clients.
What dying feels like
Beamsteleport already give us most of the staging. The corpse is a pose with a timer, not a new skeleton.What everyone else sees and hears
Noticeslot; a death feed needs a small ring buffer. Keep it out of chat, too — chat is for people, deaths want their own color and icon and shorter life.Egives a short bow or wave and a local "F" prompt. Purely cosmetic, entirely in character.What the wire needs
Died { cause }. Only the victim's client sends it. This is consistent with players being client-authoritative; the victim's screen is the one that saw the bus. The server rate-limits it, looks up the name, resolves the vehicle's driver from its own fleet, composes the line, and broadcasts oneDeath { id, cause, by }. The server does not need to simulate falls or collisions.Respawnmessage later, not a flag in every pose.The wild part
mortality: funnyby default,offfor people who just want to build and fly. An immortal player never dies but still sees everyone else's chaos. Events should not depend on death, so the setting never changes the rules for others.What I would not do
No health bar, no damage numbers, no armor, no respawn timer longer than the death bit, no death penalty, no PvP kill scoring. And do not kill on every bump: if death is common, the joke is gone. The rare, stupid death is the whole point.
What I would build first
liuverse-sim::mortality: a pure module withCause,Death, fall and vehicle checks, last-safe-ground tracking and tests. No GPU, no wire. Feed it the touchdown speed and the active vehicles; return a death.Open questions
If I had to pick one slice: falls + the bus + the feed + respawn. That is the whole joke, and it is playable offline before any of the social garnish.