$ merge-conflict-mayhem

// docs / spielprinzip

Spielprinzip & Hintergrund

Eine vollständige Tour: Rollen mit echten Stärken, persönliche Aufgaben pro Spieler, Coffee als Team-Ressource, Sabotagen die wie normale Arbeit aussehen, und ein Meeting-Screen, der euch Diskussionsstoff liefert — aber niemals Beweise.

Stand 2026-04-27 Tier 0–3.7 live ~10 min / Runde 4–12 Spieler

Vision — warum das Spiel existiert

Wir wollten ein Spiel haben, das man in der Mittagspause mit dem ganzen Team starten kann — ohne Download, ohne Account, ohne 20 Minuten Tutorial. Among Us hat das Format perfektioniert; uns hat aber gefehlt, dass die Tasks und Sabotagen sich nach unserem Alltag anfühlen.

> Stell dir Among Us vor — aber statt Raumstation ein Software-Büro mitten im Release. Statt „Schalter umlegen“ reviewst du Pull Requests, fixst CI/CD und holst Kaffee. Statt „Lichter aus“ setzt jemand heimlich die Pipeline rot.

Die Spannungsquelle ist dieselbe: du weißt nicht, wer auf deiner Seite ist. Aber die Witze sind unsere — PRs, Standups, Slack-Outages, Hotfixes auf main. Und weil wir eine KI-Firma sind, zieht sich AI-Theming durch das ganze Spiel: der prominenteste Chaos-Agent heißt Vibe Coder, der Eventfeed klingt wie ein müder Senior-Engineer im Incident-Channel, und der Endscreen- Postmortem ist LLM-styled.

Wie eine Runde abläuft

  1. Lobby. 4–12 Spieler joinen mit einem 4-stelligen Raumcode. Jeder kann optional eine Wunschrolle wählen — der Server respektiert best-effort. Chaos-Wünsche werden silently ignoriert (Geheimhaltung).
  2. Role-Intro. Beim Rundenstart bekommt jeder ein Modal mit Rolle, Stärken, aktiver Fähigkeit und drei persönlichen Aufgaben. Release-Spieler sehen echte Tasks, Chaos-Spieler bekommen plausible Tarn-Aufgaben.
  3. Spielen (15 min Default). Bewegung mit WASD, Tasks mit E, Vents mit V (nur Chaos), Sabotage-Buttons rechts unten (nur Chaos), Ability-Button für aktive Rollen. Eigene Coffee-Energy tickt runter und beeinflusst Geschwindigkeit.
  4. Body & Meeting. Force-Reboots hinterlassen Bodies. Wer einen Body findet, kann reporten → Meeting. Im War Room kann jeder einmal pro Runde ein Emergency-Meeting auslösen, auch ohne Body. Der Scrum Master kann zusätzlich via Standup-Ability ein Meeting auch außerhalb triggern.
  5. Win-Conditions (first-to-fire): Pipeline kollabiert → Chaos gewinnt. Alle Chaos ausgevoted → Release gewinnt. Release-Progress 100 % → Release gewinnt. 15 min abgelaufen → Chaos gewinnt.
  6. Endscreen. Rollen-Reveal, Per-Player-Stats, Awards (Pipeline Whisperer, Vibe of the Round, Held der Kaffeemaschine, …) und ein AI-styled Postmortem-Text als Diskussionsfutter.
Lobby mit Wunschrolle-Picker
Lobby mit Wunschrolle — "will: DevOps" als Tag am Spieler.

Rollen — 5 Release + 3 Chaos

Jede Rolle hat Stärken (× 1.35 Task-Speed in passenden Kategorien), Schwächen (× 0.75), ein Coffee-Profil (Decay-Rate + Max-Energy) und meist eine aktive Fähigkeit (1× pro Runde).

Release-Team

Developer

Code-Spezialist • PRs & Tests

  • Stark: Code (PRs, Tests, Release-Notes)
  • Schwach: Support-Tasks
  • Coffee: normaler Decay
  • Fähigkeit:

DevOps Engineer

Infra-Spezialist • Pipeline & Deploys

  • Stark: Infra (CI/CD, Logs, Deploy)
  • Schwach: Code, Scope
  • Coffee: hohe Abhängigkeit (1.5× Decay)
  • Fähigkeit: Rollback — +18 Pipeline
  • max 1× pro Runde

QA Lead

Test-Spezialistin • Logs & Repro

  • Stark: Code, Legacy
  • Schwach: Infra
  • Coffee: stabil (0.6× Decay)
  • Fähigkeit: Reproduce Bug — flagged letzte Aktion
  • max 1× pro Runde

Scrum Master

Process-Lead • Scope & Standup

  • Stark: Scope
  • Schwach: Infra
  • Coffee: leicht reduziert (0.8×)
  • Fähigkeit: Standup — ruft Meeting (auch außerhalb War Room)
  • max 1× pro Runde

Caffeine Collector

Support • Coffee Run

  • Stark: Support (Kaffee)
  • Schwach: Code, Infra
  • Coffee: sehr stabil (0.5×), max 130
  • Fähigkeit: Coffee Run — +35 Coffee an alle in 220 px
  • max 1× pro Runde

Chaos-Agenten

Alle drei Chaos-Varianten sehen für Außenstehende identisch aus — "Chaos-Agent" steht nur im eigenen Role-Intro. Sie unterscheiden sich nur in den verfügbaren Sabotagen.

Vibe Coder

AI-Chaos • Code, CI, Vibe

Committet direkt auf main, schmückt Tests mit Hallucinations, lässt die Pipeline "atmen" — auf seine Art.

  • Sabotagen: ci_cd_red, flaky_tests, merge_conflict_storm, fake_customer_request

Rogue Consultant

Process-Chaos • Meetings, Scope

Erfindet Customer Requests, zieht Leute in unnötige Meetings, wird dafür bezahlt, alles zu blockieren.

  • Sabotagen: mandatory_meeting, fake_customer_request, coffee_outage, merge_conflict_storm

Shadow Admin

Infra-Chaos • Outages

Hat root, kappt Slack, killt die Beleuchtung, lässt das Pager-System brennen.

  • Sabotagen: lights_out, comms_outage, ci_cd_red, mandatory_meeting
Role-Intro-Modal für Vibe Coder
Das Role-Intro-Modal zeigt deine Rolle, Theme und drei persönliche Aufgaben — für Chaos sind das plausible Tarn-Tasks.

Persönliche Tasks & Coffee-Energy

Nicht jeder Spieler kann alle Tasks gleich gut. Beim Rundenstart bekommt jeder 3 persönliche Aufgaben:

  • Release-Team: 2 Tasks aus den Stärke-Kategorien der Rolle + 1 freie. Im HUD mit ★ markiert. Andere Tasks dürfen auch erledigt werden, aber langsamer.
  • Chaos-Agenten: 3 Fake-Tasks passend zur Tarn-Persona. Beobachter sehen denselben Busy-State wie bei echter Arbeit.

> Das ist der eigentliche Trick: Persönliche Tasks erzeugen Alibis ("Ich war im Server Room, weil ich Deployment fixen musste") und Verdacht ("Warum war der Scrum Master beim CI-Terminal?") — ohne dass das Spiel jemandem sagt, wer wirklich Chaos ist.

In-Game HUD mit persönlichen Tasks und Coffee-Pille
HUD im Spiel: links die persönliche Task-Liste mit ★, oben Stats inkl. "DU 44"-Pille (eigene Coffee-Energy), rechts die Sabotage-Buttons mit Object-Type-Hints für Chaos.

Coffee-Energy — warum die Kitchen plötzlich wichtig ist

Jeder Spieler hat eigene Coffee-Energy (0..max). Decay 1.4/s × Rolle-Modifier. Effekt:

Coffee-Level Effekt
≥ 80 Task-Bonus (schneller arbeiten)
15..79 normal
< 15 Speed-Penalty + Movement-Slowdown (Pille pulsiert rot)

Refill-Optionen:

  • refill_coffee-Task in der Kitchen → eigene Energy auf max + +15 für Nachbarn in 180 px (kleiner Splash am Tisch).
  • Coffee Run (Caffeine-Collector-Ability) → +35 Coffee an alle in 220 px.
  • coffee_outage-Sabotage setzt globalen Team-Coffee auf 0 und halbiert alle Spieler auf 40 % ihrer Max-Energy.

Sabotagen — an Themen-Objekte gebunden

Acht Sabotagen, jede mit eigenem Cooldown. Aber wichtig: Chaos kann sie nicht von überall triggern. Jede Sabotage hat einen Object-Type-Anchor — und der ist derselbe Anchor, den auch das Release-Team für die zugehörige Task nutzt.

> Wäre der Trigger-Spot ein eigenes "Sabotage-Terminal", wäre jeder, der dort steht, sofort verdächtig. Same Anchor → Beobachter sehen "X arbeitet am CI-Terminal" und müssen raten, ob das eine Repair, eine echte Task oder eine Sabotage ist. Genau diese Ambiguität trägt die Diskussion.

Sabotage Effekt Object-Type Trigger-Ort (Default-Map)
CI/CD Rot Pipeline -20 ci_console Server Room (an repair_deployment)
Flaky Tests Incidents +30 qa_terminal Open Space (an fix_unit_tests)
Merge Conflict Storm Pipeline -10, Incidents +25 git_terminal Open Space (an review_pr)
Coffee Outage Team-Coffee = 0; alle auf 40 % Max-Energy coffee_machine Kitchen (an refill_coffee)
Mandatory Meeting 5 s alle langsam meeting_screen Meeting Room (an reduce_scope)
Fake Customer Request Release -15 release_console / meeting_screen Meeting Room
PagerDuty-Storm Sicht reduziert auf 150 px Radius monitoring_panel Server Room (an analyze_logs)
Slack-Down Tasks + andere Sabotagen blockiert monitoring_panel / ci_console Server Room

PagerDuty-Storm und Slack-Down haben zusätzlich Repair-Panels mit 50 px Reichweite, an denen jeder Lebende sie reparieren kann.

Vents (chaos-only) bieten Tunnel zwischen Open Space, Server Room und Legacy Basement. Force-Reboot ist der Take-Down, mit 25 s Cooldown und im War-Room gesperrt.

Meetings — Hinweise statt Beweise

Wenn ein Body reportet wird oder jemand ein Emergency ausruft, friert die Runde ein und der Meeting-Screen kommt hoch. Er zeigt Kontext, aber keine Beweise:

  • Reporter — wer hat Body gefunden / Meeting ausgelöst
  • Body-Ort — z. B. "Body von Anna im Server Room"
  • Letzte 6 Events — Sabotagen, Repairs, Reports der letzten Sekunden
  • Voting-Liste der Lebenden + Skip-Option

Jeder Lebende hat eine Stimme (Re-Vote überschreibt). Nach 60 s oder wenn alle voted haben → höchste Anzahl wird eliminiert (Skip oder Tie → niemand). Geister dürfen nicht voten oder reporten — sie können aber weiter Tasks erledigen und damit dem Release-Team auch nach dem Tod helfen.

Endscreen — Awards & AI-Postmortem

Nach Spielende werden Rollen aufgedeckt und der Server liefert ein final_summary:

  • Per-Player-Stats: Tasks erledigt, Sabotagen ausgelöst, Coffee am Ende, Ability genutzt, lebt/tot.
  • Awards kuratiert aus Stats: Pipeline Whisperer (meiste Tasks), Vibe of the Round (meiste Sabotagen), Held der Kaffeemaschine (höchste End-Coffee-Energy), Most Suspicious Innocent (Release-Spieler, der ausgevoted wurde).
  • AI-Postmortem: mehrzeiliger LLM-styled Text. Liest sich wie "Generated by Claude (vibes-only mode). Das Release-Team hat es über die Linie gebracht. Knapp, mit viel Kaffee und weniger Würde als erhofft."

Das ist der Moment, in dem Leute lachen und "noch eine Runde" sagen.

AI-Flavor durchgehend

Wir sind eine KI-Firma — entsprechend zieht sich AI-Theming durch das ganze Spiel:

  • Vibe Coder als prominente Chaos-Rolle — Karikatur des "AI Pair Programmer", der direkt auf main pusht.
  • Sabotage-Eventfeed-Texte mit LLM-Vibes:
    • "CI hatte einen Hallucinations-Anfall."
    • "main ist rot. Vermutlich ein 'kleiner Refactor'."
    • "Kaffeemaschine meldet 418: I'm a teapot."
    • "Slack ist down. Productivity steigt kurz."
  • Postmortem-Generator spuckt Incident-Reports im AI-Stil aus (procedural mit reichen Templates, später optional via echter LLM-Call).

Tech & Architektur

> Architektur-Nordstern: Python entscheidet, der Client zeigt nur an. Nichts an Spiellogik im Frontend.

Map-Editor
Der Map-Editor unter /editor — reines Client-Tool, exportiert JSON nach docs/maps.md-Schema.
ready — press enter

$ ./join_prod_is_lava_round

→ Sweet-Spot 6–10 Spieler, mindestens 4.
→ ~10 min pro Runde.
_

Spielen jetzt →