M1c: Gleichschritt im Netz #9
Reference in New Issue
Block a user
Delete Branch "m1c-gleichschritt-im-netz"
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?
Mit diesem Branch wird Grovewright ein Koop-Spiel für bis zu vier Spieler. Ein Spieler öffnet seine Welt als Host, die anderen treten über die Adresse bei und kommen und gehen, wann sie wollen. Jeder Rechner rechnet die ganze Welt selbst (Gleichschritt); übers Netz gehen nur die Befehle. Umgesetzt nach dem Plan
docs/superpowers/plans/2026-10-01-m1c-gleichschritt-im-netz.md.Was drin ist
Kern (
core/)Regel-Kennung (
rules.rs): Sie leitet sich aus den Endzuständen eingefrorener Skripte ab. Aufzeichnungen in Version 3 tragen sie; Aufzeichnungen mit anderen Regeln werden abgelehnt. Fremde Aufzeichnungen sind auf 30 Tage Spielzeit begrenzt.Protokoll (
protocol.rs):Der Anfang des Grußes und die ganze Ablehnung ändern sich nie, damit Spiele jeder Version einander noch sagen können, dass sie nicht zusammenpassen.
Host (
host.rs):Gast (
guest.rs): hat keine eigene Uhr und rechnet jeden empfangenen Takt nach. Er vergleicht die Prüfsumme, meldet Abweichungen und behält die Aufzeichnung der abgewichenen Welt.Brücke (
bridge/)GwSessiontreibt Host oder Gast überdriver.rs. Der Panik-Wächter ist in reinem Rust getestet. Ein Gast startet aus dem Snapshot des Hosts.Hülle (
game/)net_link.gd(ENet, Port 24680): Kernnachrichten gehen zuverlässig über Kanal 0, Figuren unzuverlässig, aber geordnet über Kanal 1 und ohne Drosselung. Eine stille Verbindung gilt nach etwa acht Sekunden als verloren.session_link.gdverbindet Sitzung und Netz und reicht Figuren weiter, gebunden an die Verbindung, von der sie kommen.--profile=NAME) für zwei Fenster auf einem Rechner, dazu--name,--solo,--host,--portund--join.Drumherum
play.batgibt Argumente an das Spiel weiter.play-zweites-fenster.batstartet ein zweites Fenster mit eigenem Profil.CLAUDE.mdbeschreibt die gemeinsame Welt im Netz, die Netzwerkregeln und das Vertrauensmodell.docs/playtests/m1c.mdsagt auch, was die Rechner der Mitspieler brauchen.Prüfung
test_two_instances.gdstartet einen zweiten Godot-Prozess als Gast und prüft, dass beide Welten nach 150 Takten gleich sind.Entscheidungen während der Umsetzung
Co-Authored-Byein, nicht das Modell aus dem Plan.core/tests/host_guest.rstreibt Host und Gast von Hand: Rückstand, verlorener Takt und Beitritte an den Grenzen. Der Produktivcode bleibt unverändert.NetLinksendet nichts an schließende oder fehlende Verbindungen und schickt jedes Paket einzeln. Sonst meldete Godot Engine-Fehler.--storage=führt nie in den echten Spielerordner.CLAUDE.mdsind an den Code angeglichen: Statuszeile oben rechts, Aufzeichnungen und Logs, Pausenregel. Das zweite Startskript reicht weitere Argumente weiter.Für Steven
CLAUDE.mdbestätigen oder verwerfen. Danach prüft nur die Hülle die Reichweite, und jeder Gast kennt die Schlüssel aller Spieler. Sie steht nicht indocs/KONZEPT.md, sondern stammt aus dem Plan; sie steht auch in #8.Verschoben
join_refusedaus #5 ist nach #8 übernommen.Spieltest
play.batim Hauptordner doppelklicken, dann den Fragebogendocs/playtests/m1c.mdausfüllen. Für zwei Spieler auf einem Rechnerplay-zweites-fenster.batdazunehmen.Closes #7
🤖 Generated with Claude Code