$ merge-conflict-mayhem

// social deduction für tech-teams

Merge Conflict Mayhem_

Ein Among-Us-artiges Multiplayer-Spiel für Tech-Teams. Release-Team gegen geheime Chaos-Agenten. 8–12 Minuten pro Runde, direkt im Browser — oder im Godot-3D-Client.

  • 4–12 Spieler
  • ~10 min / Runde
  • 0 Downloads
  • 1 URL

Was ist das eigentlich?

Stell dir Among Us vor — aber statt Crewmates und Imposter sitzt dein Team mitten im Release-Tag. Das Release-Team hetzt Tasks ab: Tests fixen, PRs reviewen, Deployment reparieren, Kaffee nachfüllen. Im Hintergrund streuen Chaos-Agenten Sabotagen ein: Pipeline rot, Mandatory Meeting, Merge Conflict Storm.

Niemand weiß, wer auf welcher Seite steht. Wenn ein Body gefunden wird oder jemand Verdacht schöpft, gibt's ein Emergency Meeting: 60 Sekunden diskutieren, dann abstimmen. Wer fliegt raus, war's wirklich Chaos — oder hast du gerade deinen besten Engineer entfernt?

> Built als Lunch-Break-Game für Tech-Teams. Insider-Witze inklusive, Kill nicht.

Godot-3D-Client mit Office-Complex-Map: 9 Räume, ~390 Möbelstücke, 5 Spieler im HUD
Godot-3D-Client — Aerial-View der Office-Complex-Map (9 Räume, 390+ Möbelstücke).

How to Play

  1. terminal — step 1

    $ open https://prod-is-lava.dev

    → Name eintippen, Raumcode vom Host eintragen, Join.

    1. Joinen. Ein Spieler erstellt einen Raum, teilt den 4-stelligen Code in Slack. Alle anderen joinen mit Name + Code.

  2. terminal — step 2

    host> ./start_round

    → Rollen werden privat zugewiesen.
    → Du bist Developer oder Vibe Coder.

    2. Rolle. Jeder sieht nur seine eigene Rolle. Developer wollen das Release durchbringen, Vibe Coder wollen es kippen, ohne entdeckt zu werden.

  3. terminal — step 3

    $ wasd # bewegen

    $ e # task / interact

    → Tasks erledigen, Sabotagen reparieren, Verdächtige melden.

    3. Spielen. WASD zum Bewegen, E für Interaktion. Release-Team gewinnt bei 100% Release-Progress. Chaos gewinnt durch Voting-Mehrheit oder Sabotage-Eskalation.

Die zwei Teams

Developer

Release-Team

Bring das Release über die Linie. Erledige Tasks, repariere Sabotagen, halte das Team zusammen. Achtung: Du weißt nicht, wer Chaos ist — und falsche Anschuldigungen kosten Stimmen.

  • + Release-Progress hochpushen
  • + Pipeline-Stabilität halten
  • + Sabotagen reparieren
  • + Bodies melden, im Meeting argumentieren

Vibe Coder

Chaos-Agent

Sabotiere das Release, ohne entdeckt zu werden. Triggere Sabotagen, blockiere die Pipeline, eliminiere Developer im richtigen Moment — und überlebe das Voting.

  • ! Sabotagen triggern (6 verfügbar)
  • ! Force-Reboot auf isolierte Spieler
  • ! Im Meeting Verdacht ablenken
  • ! Pipeline auf 0% drücken

Bei 7+ Spielern gibt es 2 Chaos-Agenten — die kennen sich untereinander.

Was drin ist

[

8 Tasks mit Mini-Games

Jede Task hat ihr eigenes Mechanik-Plugin: Test-Suite-Repair, Cable-Pairing, Coffee-Pour, Log-Filter, Sprint-Trim, Diff-Review, Stability-Balance, Click-to-Cycle-Sort.

!

8 Sabotagen

CI/CD rot, Flaky Tests, Merge Conflict Storm, Coffee Outage, Mandatory Meeting, Fake Customer Request, PagerDuty-Storm, Slack-Down. Jede an ein passendes Themen-Objekt gebunden — same Anchor wie eine Release-Task.

%

5 + 3 Rollen

Release-Team: Developer, DevOps, QA Lead, Scrum Master, Caffeine Collector. Chaos: Vibe Coder, Rogue Consultant, Shadow Admin. Stärken, Schwächen, Coffee-Profil und meist eine aktive Fähigkeit pro Runde.

^

AI-NPCs (Bots)

Nicht genug Menschen? Host lädt KI-Bots in die Lobby. Anthropic Claude Haiku oder lokales Gemma 4 via Ollama — sie laufen durch die Map, completen Tasks, voten in Meetings.

@

4–12 Spieler

Skaliert mit eurer Team-Größe. Multi-Chaos ab 7 Spielern. Alle joinen über Raumcode, kein Account nötig.

#

Vier Maps + Editor

Default-Office, Office-Complex (390+ Möbelstücke), Datacenter, Small-Arena. Host wählt in der Lobby. Eigene Maps via Browser-Editor unter /editor mit 2D-Canvas und Three.js-3D-Vorschau.

>

Force-Reboot & Body-Report

Chaos kann Release-Spieler in der Nähe ausschalten (außerhalb des War-Rooms). Lebende finden Bodies und triggern Emergency Meetings.

~

Spectator-Mode

Eliminierte Spieler bleiben als Geist auf der Map, können weiter Tasks erledigen — aber nicht mehr abstimmen.

*

AI-Postmortem & Last Words

Endscreen mit Awards (Pipeline Whisperer, Vibe of the Round, …), Per-Player-Stats und einem AI-styled Postmortem-Text. Plus team-spezifisches „Last-Words"-Zitat für jeden eliminierten Spieler.

3

Godot-3D-Client

Parallel zum Browser läuft ein Godot-4.6-Client mit echten KayKit-3D-Assets. Gleiches WebSocket-Protokoll, gleicher Server — ein Client je nach Geschmack.

?

Reconnect

30 Sekunden Grace-Period bei Disconnect — Tab geschlossen? Refresh, Spieler läuft weiter.

$

Mobile-tauglich

Touch-Controls auf Phone und Tablet: virtueller Joystick + Action-Buttons. Edge-Tabs für Tasks und Sabotagen. Spielbar auch unterwegs in der Slack-Huddle.

Mini-Games — jede Task ein eigenes Mechanik-Spiel

Sprint-Trim Mini-Game im Godot-Client: 6 Tickets mit Story-Points und Priority-Tags, Restpunkte 39 / Sprint-Budget 18
Scope reduzieren — Click-Tickets aus dem Sprint (Subset-by-Constraint-Mechanik). Rote Priority-Tickets sind tabu.

Server-authoritative Plugin-Architektur: Server kennt den Wahrheitszustand jedes Mini-Games, Browser- und Godot-Client mirror'n die View. Acht Mechanik-Patterns insgesamt — sequencing, pairing, timing, filter, subset, spot-the-bug, stability-balance, click-to-cycle-sort.

Roadmap-Status

[OK] Tier 0–3 — Foundation + Among-Us-Features + Mini-Games

CI, Reconnect, Vollbild-Map, alle 8 Tasks mit Mini-Games, alle 8 Sabotagen mit Object-Binding, Force-Reboot, Vents, Spectator-Mode, Lights/Comms-Sabotage.

[OK] Tier 3.5–3.8 — Persona, Meeting-Kontext, Map-Editor

5+3 Rollen mit Stärken, persönliche Tasks, Coffee-Energy, Sabotage-Object-Binding, AI-Postmortem, Endscreen mit Awards, Map-Editor mit 3D-Vorschau, kinds.json als Single Source of Truth.

[..] Tier 3.9 — AI-Integration

LLM-Provider-Abstraction (Anthropic/Local) live. AI-NPCs als Lobby-Filler live. Offen: AI-Postmortem mit echtem LLM, AI-Game-Master/Live-Commentary, AI-Meeting-Summary, Chaos-Bots.

[..] Tier 4 — Godot-3D-Client

Godot 4.6 mit KayKit-Assets parallel auf main. Lobby, World, Mini-Games, Take-Down, Body-Report, Vents, Endscreen schon drin. Restliche Feature-Parität in Arbeit.

FAQ

Brauche ich was zu installieren?

Nein. Browser auf, /play öffnen, Raumcode eintippen, fertig. Funktioniert auf Desktop in Chrome, Firefox und Safari.

Wie viele Leute brauche ich?

Minimum 4, Maximum 12. Sweet-Spot ist 6–8. Ab 7 Spielern gibt's automatisch 2 Chaos-Agenten, was die Diskussionen deutlich spannender macht.

Wie lange dauert eine Runde?

8–12 Minuten. Der Timer läuft 15 Minuten, die meisten Runden enden früher durch Win-Condition (Release durch, Chaos-Parität, oder Pipeline-Crash).

Wie reden wir während des Spiels?

Bringt eigenen Voice-Channel mit — TeamSpeak, Slack-Huddle, Discord, Meet, was ihr eh in der Firma nutzt. Das Spiel hat absichtlich keinen eingebauten Voice-Chat und kriegt auch keinen.

Allein testen?

Ja — in der Lobby gibt's einen Demo-Mode-Toggle. Damit startest du allein, wirst automatisch Chaos und kannst die Mechaniken durchklicken. Alternativ kannst du als Host KI-Bots in die Lobby einladen („+ Bot hinzufügen“), dann hast du Mitspieler ohne Menschen.

Was machen die KI-Bots?

Sie laufen LLM-getrieben oder heuristisch durch die Map, completen Tasks, melden Bodies wenn sie welche sehen, voten in Meetings. Phase 1: nur Release-Team-Bots — Chaos-Bots brauchen Game-Sense (Timing, Alibi-Building) und sind eigener Slice. Provider: Anthropic Claude Haiku als Default, optional lokales Gemma 4 via Ollama.

Browser oder Godot-Client?

Beide auf demselben Server. Browser ist zero-install und mobile-tauglich, der Godot-3D-Client zeigt echte 3D-Assets mit Animationen. Beide laufen gegen wss://prod-is-lava.dev/ws, der Server kennt den Unterschied nicht. Du kannst sogar gemischt spielen (eine Person Browser, andere Godot).

Eigene Maps bauen?

Klar. Browser-Map-Editor unter /editor. Räume rechtecken, Wände ziehen, Spawns und Task-Anker setzen, JSON exportieren, in maps/ committen.

Was läuft im Hintergrund?

Python 3.12 + FastAPI + WebSockets, autoritativer Server-Tick mit 20 Hz. Frontend ist Vanilla JS + Canvas. Code ist Open-Source auf GitHub.

Bug gefunden?

Issue auf GitHub aufmachen, kurze Repro-Schritte dazu schreiben.

ready — press enter

$ ./start_prod_is_lava_round

→ Spawning room...
→ Awaiting players (4–12)...
_

Spielen jetzt →