Mattis Kolbe hat in Bremen ein kleines Kurierspiel geschrieben: ein Fahrrad, eine Stadt, die von rechts hereinläuft, Pakete, die abgeworfen werden. Auf seinem Laptop lief es mit 60 Bildern in der Sekunde und ließ sich sauber steuern. Auf dem Bildschirm eines Freundes, der 165 Bilder schafft, war das Fahrrad in einem Drittel der Zeit am Bildrand und jede Ausweichbewegung schoss über die Lücke hinaus.
Nichts daran war zufällig und nichts war kaputt. Er hatte die Bewegung in Pixeln je Bild geschrieben, und wie viele Bilder es gibt, entscheidet die Maschine.
Dieser Fehler ist die Tür zu diesem ganzen Thema. Ein Spiel ist kein Programm, das läuft und fertig wird. Es ist ein Programm, das sechzig oder mehr Mal in der Sekunde gefragt wird, wie die Welt jetzt aussieht.
Die Schleife, und das Budget daraus
Die Schleife ist Eingabe, Aktualisieren, Zeichnen, und sie läuft immer. Das Eingabegerät lesen, die Welt um eine Zeitscheibe weiterdrehen, ein Bild auf den Schirm legen, von vorn. Eine Textverarbeitung wartet auf eine Taste. Ein Spiel wartet auf nichts, und ein Bild, in dem niemand etwas getan hat, kostet trotzdem einen ganzen Durchlauf.
Dieser Durchlauf hat eine harte Decke. Bei 60 Bildern in der Sekunde bleiben 16,7 Millisekunden für alles: die Physik, die Gegner, die ihre Entscheidung treffen, der Ton, das Zeichnen. Wer darüber kommt, liefert ein spätes Bild, und der Spieler liest das nicht als Zahl, sondern als Ruckeln. Auf dem Bildschirm des Freundes mit 165 Bildern sind es 6,1 Millisekunden, und dasselbe Spiel hat auf der besseren Maschine also weniger Zeit je Bild, nicht mehr. Diese Rechnung macht Spielprogrammierung zu einem anderen Fach als das gewöhnliche Programmieren, in dem eine Funktion mit 30 Millisekunden schnell ist.
Zwei Zeilen, und der Sprung stimmt wieder
Die Reparatur ist einer der übertragbarsten Gedanken in Spielen. Delta-Zeit: jede Bewegung mit den Sekunden seit dem letzten Bild multiplizieren. Das Fahrrad bewegt sich also nicht um 5 Pixel je Bild, sondern um 320 Pixel je Sekunde, mal der Dauer, die das letzte Bild wirklich gebraucht hat.
x = x + speed * dtmitspeedgleich 320- bei 60 Bildern ist
dt0,0167 und die Zeile ergibt 5,3 Pixel - bei 165 Bildern ist
dt0,0061 und dieselbe Zeile ergibt 1,9 Pixel
Das Fahrrad braucht jetzt auf beiden Maschinen gleich lange über den Bildschirm, und im Code steht keine versteckte Annahme über Hardware mehr.
Eine zweite Hälfte trifft Anfänger später und schmerzhaft. Physik überlebt es nicht, mit ungleichen Zeitscheiben gefüttert zu werden: Ein Bild, das ungewöhnlich lange braucht, lässt ein schnelles Objekt glatt durch eine Wand, weil es in keinem einzigen Rechenschritt jemals darin war. Die Antwort sind feste Zeitschritte für die Physik, veränderliche fürs Zeichnen, also eine Simulation in gleich großen Scheiben und ein Zeichner, der dazwischen malt. Das ist mehr Maschinerie, als es klingt, und deshalb machen Engines es für einen.
Wofür eine Engine da ist
Eine Engine ist keine Abkürzung zu einem Spiel. Sie ist die Antwort auf alles an einem Spiel, was nicht das Spiel ist: das Fenster, das Eingabegerät, die Tonmischung, der Weg der Assets hinein, die Physik, der Export auf fünf Plattformen. Engines ist genau benannt, und die Benennung ist der Punkt. Was sie nicht liefert, ist der Grund, aus dem jemand spielt, und der ist der gesamte Inhalt von Spieldesign.
Mattis wäre in einer Engine schneller fertig gewesen, und er hätte weder die Delta-Zeit noch das Zeitschrittproblem getroffen, was für ein erstes Projekt ein Argument in beide Richtungen ist. Eine Engine entscheidet außerdem viel, ohne sich als Entscheidung anzukündigen: wie die Welt im Speicher liegt, was eine Szene ist, und wo die Naht zwischen seinem Code und ihrem liegt. Die Engine später zu wechseln ist keine Portierung, sondern eine Neufassung von allem außer der Grafik und der Idee.
Die Uhr reicht bis in die Grafik hinein, und das Budget setzt die Engine und nicht die Person, die zeichnet. Ein Modell mit 8.000 Dreiecken sieht aus wie eines mit 80.000 und kostet ein Zehntel von den 16,7 Millisekunden, jedenfalls in der Größe, in der ein Spieler es wirklich sieht. Deshalb steht Spielgrafik unter einem Programmierthema und nicht unter einem gestalterischen: Die Schranke ist eine Rechnung, und sie steht vor jeder Frage nach Geschmack.
Ein Spiel
Vier Teile, und ohne eines davon ist es eine Demo
Das sind keine Phasen und keine Abteilungen. Eines wegzunehmen macht kein kleineres Spiel, sondern ein unfertiges.
- 01Die SystemeDie Regeln, die Schleife und der Code, der 16,7 Millisekunden hat, um sie auszuführen
- 02Der Grund weiterzuspielenWorüber der Spieler entscheidet, und warum die nächste Minute etwas wert ist
- 03Die Assets, auf Budget8.000 Dreiecke statt 80.000, entschieden durch eine Rechnung vor jedem Geschmack
- 04Die letzten zehn ProzentMenüs, Speicherstand, Einstellungen, der Store-Build und die Alterskennzeichnung
Die Teile sind nicht gleich viele Stunden. Das vierte braucht regelmäßig so lange wie die anderen drei und fehlt in fast jedem abgebrochenen Projekt. In Deutschland sitzt darin außerdem eine Stelle, die Fragen stellt.
Der Stillstand: die USK gehört zum Spiel
Der bekannte Stillstand ist der Umfang, und er gilt hier wie überall: Das erste Projekt ist eine Idee, für die ein Studio vier Jahre bräuchte, und aufgegeben wird sie genau dann, wenn der interessante Teil fertig ist und der Rest aus Menüs, Speicherstand, Einstellungen und vierzehn unlustigen Dingen besteht.
In Deutschland steht in diesem Rest eine Stelle, die anderswo in dieser Form fehlt, und das ist der Stillstand, der hier eigens genannt gehört. Seit der Novelle des Jugendschutzgesetzes vom 1. Mai 2021 bewertet die Unterhaltungssoftware Selbstkontrolle nicht mehr nur den Inhalt, sondern auch die Nutzungsrisiken, und die stehen als Zusätze neben der Altersangabe. Ein Chat im Spiel ist ein Nutzungsrisiko und ändert die Alterskennzeichnung. Dasselbe gilt für Käufe im Spiel und für die Weitergabe des Standorts.
Praktisch heißt das: Einen Chat oder einen Shop nachträglich einzubauen ist keine Funktion, sondern eine neue Kennzeichnung und ein neuer Eintrag im Store. Wer das vorher weiß, entscheidet es im Entwurf und nicht in der Woche vor der Veröffentlichung. Was sonst noch in diesen Rest gehört, steht unter Veröffentlichung, und dort ist nichts davon eine Überraschung für jemanden, der es einmal gemacht hat, und alles davon eine Überraschung beim ersten Mal.
Werkzeuge, und was sie kosten
Godot ist die freie Möglichkeit ohne Umsatzbedingung, der Quelltext ist offen, und es hat seit 2023 einen großen Teil der zweidimensionalen Arbeit übernommen, nachdem sein kommerzieller Hauptrivale eine Gebühr je Installation angekündigt und wieder zurückgezogen hatte. Unity ist nach Stellenzahl und Plattformumfang weiterhin die breiteste Möglichkeit und unterhalb einer Umsatzschwelle kostenlos. Unreal ist die Antwort für aufwendige dreidimensionale Arbeit und nimmt oberhalb einer Schwelle eine Beteiligung statt einer Lizenzgebühr.
Alle drei haben abgelöst, selbst eine Engine zu schreiben, was ein Spieleprojekt vor ungefähr 2010 bedeutet hat und was heute eine bewusste Entscheidung ist, diese Schicht zu lernen, statt einer Voraussetzung. Für ein erstes Spiel ist fast immer die Wahl richtig, die den kürzesten Weg zu etwas Spielbarem hat.
Das vierte Werkzeug ist kein Programm. Die Alterskennzeichnung läuft für ein Onlinespiel über einen Fragebogen im Store, der an das internationale Verfahren angeschlossen ist und aus dem für Deutschland eine USK-Angabe herauskommt. Er kostet nichts und dauert eine halbe Stunde, und er stellt genau die Fragen, deren Antworten im Entwurf festgelegt wurden. Für einen Datenträger im Regal ist es dagegen eine Prüfung mit Gebühren und Vorlauf.
Was auf einem Telefon davon anders ist, nämlich der Akku, die Unterbrechung und ein zweiter Store mit eigener Prüfung, steht unter App-Entwicklung. Und was keine dieser Zeilen entscheidet, ist, ob die Sache gut ist. Das lässt sich nicht herleiten, sondern nur ansehen, in einem Raum, über die Schulter von jemandem, und dabei nichts sagen.