TRAKTORSIM

2026-11-12

Ein Fehler, der genau wie das Ergebnis aussah

Devlog 2 — warum unser Gras sechsunddreißigmal zu weit umfiel und es trotzdem wochenlang niemand sah

Es gibt eine Kleinigkeit, an der man merkt, ob jemand schon einmal über eine Wiese gefahren ist: man sieht, wo man gefahren ist.

Nicht als Reifenspur im Dreck — das ist das Offensichtliche. Sondern das Gras daneben, das sich gelegt hat und erst nach Minuten wieder aufsteht. Wer ein Feld gemäht oder ein Grünland befahren hat, kennt den Anblick der eigenen Bahn. Für ein Traktorspiel ist das kein Effekt, sondern der Beweis, dass man etwas getan hat.

Seit einiger Zeit kann TraktorSim das. Eine Karte um den Spieler merkt sich je Zelle, wie weit der Halm gebogen und wie weit er geknickt ist, und die Shader lesen daraus. Gebogen kommt in Sekunden zurück, geknickt bleibt Minuten — genau wie bei echten Pflanzen, die elastisch federn, bis die Fasern brechen.

Das sah gut aus. Es war trotzdem kaputt.

Eine Zeile, ein Kommentar, ein falscher Bezug

Der Grasshader legt den Halm um, indem er jeden Eckpunkt zur Seite zieht — umso weiter, je höher er über dem Boden liegt. Ein Hebel, wie bei einem Stock, den man am oberen Ende anfasst.

Die Zeile dafür las die Höhe direkt aus dem Netz:

lever = v.vertex.y * mask;

Daneben stand ein Kommentar, der erklärte, warum das geht: das Büschelnetz steht achsenparallel zur Welt. Das stimmt auch — für links/rechts und vorn/hinten.

Für die Höhe stimmt es nicht. Ein Grasbüschel wird auf das Gelände gesetzt, und sein Fußpunkt bekommt dabei die Geländehöhe; die Kachel selbst liegt auf null. Am echten Netz gemessen:

Halmfuß    13,55 m     ← das ist die Geländehöhe
Halmspitze 13,94 m
Halmhöhe    0,39 m
Hebel      13,94 m     sechsunddreißigfach

Unter vollem Druck wanderte eine Halmspitze damit 20,2 Meter zur Seite und 11,4 Meter in den Boden.

Warum es niemand gesehen hat

Das ist der eigentlich interessante Teil, und er hat uns mehr gelehrt als der Fehler selbst. Drei Dinge kamen zusammen, und jedes allein hätte gereicht:

In den Wettbewerbsanlagen passiert gar nichts. Deren Boden liegt auf null — Schlammgrube, Zugbahn und Bergauf werden flach eingeebnet. Höhe null heißt Hebel null. Dort legte sich kein einziger Halm um, und eine frühere Messung von uns („am Berg 27 bis 48 Prozent umgelegt") maß in Wahrheit die Karte, nicht das, was man sieht.

Im Freiland sah es aus wie das, was es sein sollte. Ein Halm, der elf Meter in den Boden sinkt, ist weg. Und weggesunkenes Gras ist aus Fahrerhöhe nicht von plattgefahrenem zu unterscheiden.

Ein Fehler, der wie das Ergebnis aussieht, wird nie gemeldet.

Und die sichtbare Wiese war ohnehin nicht betroffen. Was man für Gras hält, sind zum größten Teil einzeln gesetzte Pflanzen, und deren Ursprung liegt am Fuß — dort war die Rechnung immer richtig. Betroffen waren nur die Büschelnetze, eines je Quadratmeter, und der Getreidebestand der Ernte.

Die Reparatur, und was sie verschenkt hat

Der Fußpunkt steht jetzt mit im Netz, und die Höhe über dem Fuß ist die Differenz:

h = v.vertex.y - foot;

Das löst nicht nur den Hebel. Es löst nebenbei ein Problem, das sonst als nächstes gekommen wäre: seit demselben Umbau bricht ein Halm ab, wenn oft genug darüber gefahren wird. Von den drei gekreuzten Flächen eines Büschels bleibt eine als kurzer Stumpf stehen, die anderen legen sich flach daneben.

Ein abgebrochenes Stück liegt damit auf Fußhöhe — und hat von selbst keinen Hebel mehr. Es wird nicht noch einmal umgelegt, ohne dass irgendwo eine Zeile steht, die es ausnimmt. Die richtige Rechnung macht die Sonderregel überflüssig, die wir sonst hätten schreiben müssen.

Gemessen im Freiland, zwanzig Sekunden Fahrt über eine Wiese: 91 Halme abgebrochen, dazu drei Zweige an drei Büschen.

Und wie es überhaupt aufgefallen ist

Nicht beim Hinsehen. Wir haben eine Gesamtprobe gebaut, die fünfzehn Prüfungen in einer Sitzung fährt und je Prüfung den Unterschied zum letzten Stand nennt. Der Satz „Zeile für Zeile identisch" ist dabei das stärkste Zeichen, dass eine Änderung nichts kaputtgemacht hat.

Der Hebelarm stand wochenlang falsch da, weil jede einzelne Probe etwas anderes maß und keine von ihnen diesen einen Wert ansah.

Was niemand laufen lässt, schützt nichts. Das gilt für Tests, und wie wir inzwischen wissen, auch für die eigene Aufmerksamkeit.


TraktorSim — zehn Reviere, in denen die Teile für den eigenen Schlepper verstreut liegen, eine Werkstatt, die daraus eine Maschine macht, und ein Jahr, das weiterläuft. Von zwei Brüdern, die 2006 bei Fendt angefangen haben.

kuhbuckelstudios.itch.io/traktorsim · traktorsim.com

Alle Devlogs