JUL 2, 1993

Dead District

A one-against-many survival horror game. I programmed the entire objective layer in C# - generator repair with progress regression, a timing skill-check built on delegate callbacks, randomized objectives, and a RaycastPro detection layer that interrupts work the moment you move.

Video only No in-browser build - the clip below is the full playthrough.

Dead District
EngineUnity
LanguageC#
ArchitectureEvent-Driven
DetectionRaycastPro
AIAnimator FSM
TuningInspector
Systems Built
  1. 01
    Repair Loop Generator Repair & Regression

    Built a hold-to-repair loop that accrues progress only while the player is in range and regresses at a separate, Inspector-tunable rate when abandoned, with repair time, regression speed, and skill-check penalties and bonuses all exposed as serialized percentages. Generator.cs

  2. 02
    Skill Check Timing Minigame

    Programmed a timing skill-check where a needle sweeps randomized success and "great" zones, driven entirely by System.Action success / great / fail callbacks so any interactable can request a check and react to the result without the minigame knowing the caller. SkillCheck.cs

  3. 03
    Objectives Generator Manager

    Wrote a manager that spawns a random, non-repeating subset of generators from a larger pool of spawn points, tracks completions as they report in, and unlocks the exit levers once survivors clear the threshold. GeneratorManager.cs

  4. 04
    Escape Exit Gate Levers

    Built hold-to-open exit levers that stay disabled until the objective manager powers them, build progress on a timer, and save partial progress when the player is interrupted so they can resume. ExitLever.cs

  5. 05
    Detection Range Detection & Interrupts

    Integrated a RaycastPro RangeDetector that routes each detected collider to the correct interactable through event listeners, plus an interrupt layer that cancels an active repair the instant the player moves, sprints, crouches, or attacks - leaving jump and interact free. PlayerDetection.cs

  6. 06
    Animation Idle State Behaviour

    Wrote a custom StateMachineBehaviour that counts idle time inside an Animator state and blends in randomized idle animations once the player holds still long enough, driven from animation state rather than gameplay code. BoredBehaviour.cs