Zum Inhalt springen
Pipfold

Das Konfetti hat ein halbes Jahr lang niemand gesehen

· spiel · gestaltung

Ein zugeklappter Kasten ist das einzige Ereignis, das dieses Spiel kennt. Es gibt keine Punkte zu sammeln, keine Stufen, keinen Fortschritt — nur neun Klappen, die am Ende liegen oder eben nicht. Bis zu diesem Tag war genau dieser Moment die schwächste Stelle im ganzen Spiel: ein Tipp zu viel, ein unsichtbarer Effekt, ein geliehener Klang.

Der Kasten wartete im Siegmoment

Kombinationen bestätigt man mit einem Tipp auf die Würfel. Das ist richtig, solange man sich noch korrigieren könnte. Beim letzten Zug kann man das nicht mehr — er räumt den Kasten leer, es gibt nichts zu überlegen.

Der Kasten stand also im Siegmoment mit zwei aufrechten, goldenen Klappen da und wartete auf eine Bestätigung, deren einzige Alternative das Nichtstun war.

KlappenRegeln.ist_schlusszug() entscheidet das jetzt im Kern: gültig und deckt die letzten offenen Klappen. Das Brett führt ihn sofort aus — auch als Kombination, auch bei „plus und minus“ mit zwei Zielzahlen.

Und dann suchte ich das Konfetti

Im Code stand _ende_konfetti(): zwölf ColorRect, die über den Kasten fallen. Geschrieben irgendwann im Frühjahr. Ich habe eine Runde gewonnen, um es mir anzusehen, und nichts gesehen. Zweite Runde, drittes Mal. Nichts.

Es war dreifach kaputt:

  1. Die Rechtecke hingen an _ende_overlay — und _ergebnis_spaeter() setzt genau dieses Overlay in der Zeile darauf auf unsichtbar und zeigt es erst 2,4 Sekunden später. Die Tweens liefen 1,5 Sekunden und räumten sich selbst weg. Alles hinter einem unsichtbaren Elternknoten.
  2. Das Overlay ist ein VBoxContainer. Der überschreibt jede gesetzte position — die Rechtecke wären ohnehin dort gelandet, wo der Container sie hinlegt, nicht dort, wo sie hinsollten.
  3. Gerechnet wurde gegen die volle Bildgrösse. Das Overlay ist ein schmaler Streifen am unteren Rand.

Jeder dieser drei Fehler allein hätte gereicht. Zusammen haben sie ein halbes Jahr überlebt — weil ein Effekt, den man nicht sieht, sich nicht von einem bescheidenen Effekt unterscheiden lässt. Niemand hat je gedacht „da fehlt was“. Man denkt „ach, dezent“.

Nicht repariert — ersatzlos gestrichen. Konfetti sind fremde bunte Rechtecke, die über ein Holzbild fallen. Sie haben mit diesem Spiel nichts zu tun; sie wären austauschbar. Jedes Spiel hat Konfetti.

Gefeiert wird jetzt mit dem Kasten selbst

Kasten3D.siegwelle() lässt alle Klappen der Reihe nach 42° hochkommen und zurück ins Holz schlagen — eine Welle von der 1 zur höchsten, die dort umkehrt und zurückläuft. Achtzehn Schläge, rund 1,9 Sekunden.

Umkehr · hier setzt die Melodie ein 123 456 789 987 654 321 Hinweg — baut sich auf Rückweg — voll, und lauter
Balkenhöhe ist der Hub. Der Hinweg beginnt bei 55 % und erreicht bei der letzten Klappe die volle Höhe; der Rückweg läuft durchweg voll und schlägt lauter. Die Welle kommt schwerer zurück, als sie hingelaufen ist.

Keine neue Geometrie, keine fremden Rechtecke über dem Bild: dieselben Scharniere und dieselbe Bewegung wie beim Zuklappen, nur grösser und hintereinander.

Zutat war schon da für tut jetzt zusätzlich
Klappen-Scharniere Zuklappen, Auswahl, Tipp die Welle hin und zurück
Fall-Tween mit Aufprall eine fallende Klappe achtzehn, im Takt
KlappenKlang.holz() der Anschlag beim Zug Tonleiter hinauf und herunter
der Synth in klang.gd Klappe und Würfel eine dritte Stimme: der Marimba-Stab

Im Bild ist nichts neu ausser der Reihenfolge. Im Ton ist eine einzige Stimme dazugekommen, und die entsteht mit demselben Verfahren wie der Anschlag, nur mit Tonhöhe: ein Marimba-Stab, Teiltöne 1 : 3,9 : 10,4. Alle zehn Noten sind ein synthetisierter Stab, über pitch_scale versetzt — das kürzt die hohen Töne von selbst und verlängert den Bass unter dem Schlusston.

Die Schläge der Welle laufen davor eine Dur-Pentatonik hinauf: die Klappen sind der Anlauf, der erste Ton die Landung. Sie setzt am Umkehrpunkt ein, der Rückweg trommelt unter ihr mit. Weil der Rückweg dieselben Klappen rückwärts nimmt, fällt die Tonleiter von selbst wieder ab — ein Bogen, kein Rutscher.

Bei „ruhige Bewegung“ bleibt der Kasten still, die Schläge kommen trotzdem. Der Rhythmus ist die Feier, nicht das Zappeln.

Wie oft das überhaupt vorkommt

Bevor entschieden war, wie gross die Feier sein darf, musste feststehen, wie selten sie ist. 20 000 simulierte Partien je Aufstellung, gespielt nach der Strategie, die auch der Tipp benutzt:

Aufstellung Sieg ≤ 2 Punkte Median
1–9 · 2 Würfel 6,8 % (1 von 14) 12 % 10
1–10 · 2 Würfel 3,9 % (1 von 25) 6 % 16
1–12 · 3 Würfel 6,2 % (1 von 16) 10 % 12
1–12 · 2 Würfel 0,37 % (1 von 270) 0,6 % 35

Etwa alle vierzehn Runden fällig. Selten genug für etwas Grosses, häufig genug, dass es nicht im Weg stehen darf. Deshalb dauert die Feier zwei Sekunden und keine fünf. Ohne diese Tabelle wäre das eine Geschmacksfrage geblieben.

Die Prüfungen wurden absichtlich rot gemacht

Alle drei neuen Zusicherungen sind gebrochen worden, bevor sie stehen bleiben durften: Regel zurückgedreht → „Schlusszug fiel nicht von selbst“; siegwelle() entkernt → „0 Schläge statt 18“; Hub auf 0,4° gedreht → „Klappen hoben sich kaum“.

Zwei Feinheiten, die dabei herauskamen:

Das ist die Lehre, und sie ist unangenehm allgemein: ein Riegel, der sich am eigenen Sollwert misst, prüft gar nichts. Er ist immer grün, auch wenn der Sollwert auf null steht.

Der Prüfstein für jede weitere Idee an dieser Stelle lautet deshalb nicht „sieht das gut aus?“, sondern „könnte der Gegenstand das?”

← Devlog