Prozedurale Generierung

LEVELGENERIERUNG DURCH KONDENSATION

Eige­nen­twick­lung — eigenes Pro­dukt, kein Kun­den­pro­jekt.
Rund eine Mil­liarde Lev­el bräuchte es, um alle Kom­bi­na­tio­nen aus Spiel­erzahl,
Schwierigkeit und Ein­stel­lun­gen von Hand abzudeck­en. Stattdessen wach­sen sie:
Lev­el­erzeu­gung als Kon­den­sa­tion­sprozess, Spielablauf als Geschäft­sprozess.
Prozedural generiertes Level
Warum ein Gen­er­a­tor
Bee on a Roll ist ein Puz­zle­spiel: Eine Kugel rollt über ein Sech­seck­git­ter aus Gleis­teilen, die Spiel­er leg­en koop­er­a­tiv die Strecke. Das Spiel ist hier nur der Anwen­dungs­fall — inter­es­sant ist der Algo­rith­mus, durch den die Lev­el entste­hen. Das Spiel ist hochgr­a­dig kon­fig­urier­bar: Bis zu vier Spiel­er arbeit­en zusam­men, und jed­er bringt einen eige­nen Schwierigkeits­grad und andere Ein­stel­lun­gen mit. Handge­fer­tigte Lev­el — man bräuchte unge­fähr eine Mil­liarde Stück, um die gesamte Kom­bi­na­torik abzudeck­en — schei­den daher als Lösung aus.
Lev­el­erzeu­gung als Kon­den­sa­tion
Der Gen­er­a­tor arbeit­et wie ein Kon­den­sa­tion­sprozess. Kleine, handge­baute Frag­mente dienen als Keimzellen. An ihnen lagern sich weit­ere Gleis­teile an, ges­teuert von einem Zufall­san­teil, der die Rolle der Tem­per­atur übern­immt: ohne ihn wären alle Lev­el gle­ich­för­mig und ihre Lösung vorherse­hbar. Die gewach­se­nen Tropfen fließen am Ende zu einem einzi­gen Lev­el zusam­men.
Erhal­ten bleibt dabei die Schwierigkeit — sie ist die Massen­bi­lanz des Ver­fahrens. Das Gesamt­bud­get wird zu Beginn auf die Keimzellen verteilt, mit ein­er Rück­stel­lung für die Verbindungsstreck­en, die erst beim Zusam­men­fließen entste­hen. Jedes fer­tige Lev­el wird simuliert, bevor es aus­geliefert wird.
Spielablauf als Geschäft­sprozess
Im Koop-Modus zer­fällt das Lev­el in Arbeitspakete: abgeschlossene Teil­rät­sel, die jew­eils für sich lös­bar sind und zusam­men die Gesamt­strecke ergeben. Die Zuteilung läuft nach dem Pull-Prinzip — kein Paket gehört von vorn­here­in einem Spiel­er, son­dern wird erst zugeschnit­ten und vergeben, wenn jemand frei wird, und zwar passend zu dessen Leis­tung­spro­fil.
Die Vorteile sind diesel­ben wie in der Fer­ti­gungss­teuerung. Nie­mand wartet, weil sich die Zuteilung an der tat­säch­lichen Bear­beitungs­geschwindigkeit ori­en­tiert statt an ein­er Planan­nahme: Wer schnell ist, zieht häu­figer; wer länger braucht, bekommt kleinere Pakete. Und der Ablauf bleibt robust, wenn die Spiel­stärken weit auseinan­der­liegen — statt Leer­lauf auf der einen und Über­forderung auf der anderen Seite wan­dert der Eng­pass mit.
Der Betrieb­spunkt
Vier Größen ziehen dabei gegeneinan­der: wie genau ein Lev­el seine Zielschwierigkeit trifft, wie dicht es gepackt ist — dichte Lev­el sind die inter­es­san­teren —, wie schnell es entste­ht und wie zuver­läs­sig der Gen­er­a­tor über­haupt ein gültiges liefert. Enger tre­f­fen heißt mehr Ver­i­fika­tion­släufe; dichter pack­en heißt mehr Fehlschläge. Gesucht war deshalb kein Max­i­mum, son­dern der Betrieb­spunkt, an dem alle vier gle­ichzeit­ig tra­gen — bes­timmt über Mess­rei­hen, nicht über Plau­si­bil­ität.
Was über­trag­bar ist
Die Analo­gien sind kein Selb­stzweck; dahin­ter ste­hen Arbeitsmuster: eine weiche Ziel­größe mess­bar machen und kalib­ri­eren; ein Gesamt­bud­get unter Erhal­tungs­be­din­gung auf Teil­prob­leme verteilen; Arbeit dynamisch nach Kapaz­ität zuteilen statt nach Plan; und Para­me­ter, die nicht daste­hen, weil sie plau­si­bel klin­gen, son­dern weil ein Mess­lauf die Alter­na­tive aus­geschlossen hat.