# DEAD AGAIN — PROJECT HISTORY THROUGH 1.25 GOLD CANDIDATE

Developer: **fisheggs**
Project: retro browser puzzle-platformer inspired by the simplicity and immediacy of Dangerous Dave, but built around a unique mechanic: each death leaves a replaying prior Dave that can become part of the solution.

This document exists to preserve the design/development history for future work.

## Origin

The brief was a browser-based retro game that should feel simple, addictive, difficult to fully complete, and at home both on a phone used like a handheld and on a computer used like an old DOS game.

The selected concept became **DEAD AGAIN**: Dave's previous lives replay their inputs in the current room, allowing death itself to become a puzzle resource.

Developer identity was fixed as **fisheggs**. The supplied Fisheggs logo became part of the website identity and an in-game Easter egg.

## Early build and presentation

The game became a static GitHub Pages build suitable for `deadagain.fisheggs.au`.

Two shells were developed:
- desktop: battered VGA/CRT DOS-machine presentation
- mobile: dedicated Fisheggs handheld with touch controls

The real-user feedback that shaped subsequent work was important:
- touch buttons worked
- movement was smooth and not laggy
- the original Level 1 was impossible
- landscape phone presentation was too small/awkward
- the original protagonist read too much like Pac-Man rather than a human

That led to the explicit rule: **do not casually change the movement/input feel that already works; repair level geometry and presentation around it.**

## Human Dave

The protagonist was redesigned as a tiny human silhouette with head, face/nose, torso, arms, separate legs and oversized boots. He gained readable run/jump/fall/landing/victory poses while remaining deliberately chunky at 320x200.

Ghosts use the same human silhouette so a room full of previous lives reads as accumulated dead Daves rather than arcade mascots.

## Solvability crisis and adversarial QA

Level 1 exposed a major problem: authored geometry had been designed against an imagined jump envelope rather than the actual engine physics.

The actual movement constants were audited and the campaign received conservative human-margin rules. Static adversarial reviewer swarms then attacked:
- spawn safety
- objective bounds
- switch/door/platform references
- jump margins
- buried hazards
- moving-platform bounds
- campaign/secret structure

The project deliberately distinguished simulated reviewer personas from real human testers.

## Robot Dave

Static audits were not enough, so **Robot Dave** was built as a headless executable player that imports and drives the actual `Game` class rather than a fake physics clone.

Robot Dave grew several solving strategies:
- heuristic platforming
- deliberate Ghost Anchor planning
- moving-platform boarding/riding
- support-aware routing
- bunny-hop traversal
- evolutionary macro search
- beam/state-space search
- timing-aware world-state search

Robot Dave uncovered defects static review could not:
- physically unoccupiable switches
- ghost-required levels accidentally bypassable with zero deaths
- teaching machinery with overly tight boarding windows
- incorrect PERFECT death counts
- pressure plates hidden under architecture
- a self-locking door dependency in BACKWARDS
- anchors exposed to enemy patrol lanes
- machinery displacing its own power anchor
- moving-platform travel corridors intersecting static solids
- search/timing distinctions involving enemies, electrics, crushers and ghosts

The campaign was repeatedly repaired and re-certified.

## 45 / 45 certification

By 1.16, Robot Dave had executable real-engine solutions for **all 45 levels**.

The certification standard became:
- actual engine inputs
- required ghost interactions execute
- machinery can actually be used
- key is collected
- exit is entered
- PERFECT claims are demonstrated or corrected

This was not represented as mathematical proof of minimum deaths; it was executable solvability proof.

## Speedrunner Dave / Time Attack

Robot Dave then attacked the designer rather than merely proving solvability.

Speedrunner mode searched for:
- fewer-death solutions
- sequence breaks
- skipped switches
- machinery exploits
- alternate routes

Some boring skips that destroyed the intended lesson were patched. Some clever world-consistent skips were deliberately canonised rather than sterilised.

Time Attack introduced:
- PERFECT TIME: fastest run at best-known death count
- ANY% TIME: fastest completion regardless of deaths

Robot benchmark runs became visual race ghosts.

## Ghost Race and Rival Mode

Robot Dave's benchmark traces were added as non-physical visual ghosts so they cannot press switches, attract enemies, collect objects, alter doors or interfere with player ghosts.

Rival Mode then allowed a qualifying player's clean PB trajectory to become a personal ghost.

Race order became:
OFF -> ROBOT -> RIVAL -> OFF (when a Rival exists).

Robot and Rival ghosts were visually distinct.

## Critics' Cut

A simulated specialist panel reviewed the game aesthetically:
- DOS/shareware platformer critic
- pixel-art critic
- game-feel critic
- mobile critic
- chiptune critic
- sound-design critic

Their implemented conclusions included:
- restore/strengthen the battered CRT and handheld website shells
- reduce the obstructive level-intro banner
- make exit locked/live state legible
- stronger pre-telegraphing for electric floors and crushers
- sparse procedural music identities for each zone
- tighter SFX and persistent mute control
- preserve movement physics

## Second Critics' Council and Critics Deathmatch

A larger second panel warned that **feature accretion** had become the biggest risk.

A 21-critic editorial deathmatch forced competing proposals to survive objections from other specialists.

The strongest implemented decision was UI austerity:
- Robot/Rival/PB systems remain
- permanent stats/medal-dashboard presentation was reduced
- race information appears contextually
- the playfield remains primary

Ideas killed in the deathmatch included more music layers, more saturated UI, animation for animation's sake, speculative level redesign, new meta-controls and movement-physics changes.

Editorial rule established:

> New work must either remove friction, improve comprehension, or deepen atmosphere without obscuring play.

## Story Deathmatch

Twenty simulated narrative critics reviewed all 45 level names/hints, secrets, mechanics, zones, visual/audio language and ending.

Their winning internal model:

**The facility can repeatedly instantiate Dave, but cannot completely discard a previous execution. A death ends that Dave's active run; another starts while the previous one remains as a replay. The machinery was built around this property. Dave escapes because the machine cannot forget him.**

This is designer knowledge, not exposition.

The five-act reading became:
- THE ESCAPE: death changes from failure to usefulness
- THE WORKS: death becomes labour; the machine expects prior Daves
- THE MIRROR: identity, manipulation and sacrifice
- THE BLACK: death has become routine; hints disappear
- THE BELOW: accumulated selves become the subject
- ALIVE AGAIN: survival becomes extraordinary again

Environmental continuity was added without changing collision geometry. THE BELOW intentionally recombines earlier visual languages incorrectly.

The ending was revised to:

ALIVE.
AGAIN.

EVERY DEATH REMEMBERED.
EVERY MISTAKE USEFUL.

THIS ONE IS YOURS.

No lore logs, scientists, corporations, narrator, simulation reveal, clone exposition or story boss were added.

## 1.25 — The Undertakers / Gold Candidate

The final simulated release-review panel was forbidden from proposing features. Findings were limited to FIX, CUT, SIMPLIFY, LEAVE ALONE, or EXTERNAL RELEASE GATE.

Implemented release fixes:
- compact Rival trajectory persistence with backward-compatible save loading
- core progress protected ahead of optional Rival replay data under storage pressure
- corrected 404 redirect behaviour
- added `CNAME` for `deadagain.fisheggs.au`
- bumped service-worker cache
- separated clean public shipping package from full development archive

Full current-engine campaign regression: **45 / 45 executable**.

The only intentionally unresolved release gate is real physical-device and blind-human testing. Simulated critics and Robot Dave are not represented as substitutes for that.

## Persistent design principles

1. Dave is a little human, not a mascot blob.
2. Movement/touch feel that real users liked should not be changed casually.
3. Difficulty should come from reasoning, choreography and execution—not unreadable rules or microscopic standing precision.
4. Fun, world-consistent exploits can survive.
5. The 320x200 playfield outranks surrounding UI.
6. Story is carried by mechanics, level sequence, names, environment, silence and implication—not exposition.
7. Robot Dave proves executability; humans decide whether a level feels good.
8. Fisheggs is the developer identity.
9. The game should remain small, strange, mean and comprehensible.
10. Once Gold is reached, new features require unusually strong justification.
