26.03.2014

Mit dem Autopiloten gegen die Wand

Ich habe mich entschieden Argh! Earthlings! um eine Autopilot-Funktion anzureichern, die dafür sorgen soll, dass fehlerhafte Änderungen am Plot in einer Art Integrationstest schnellstmöglich gefunden sowie beseitigt werden können. Doch leider macht der Code nicht mit.

What happend

Der Plot von Argh! Earthlings! steht bereits seit einiger Zeit fest. Ich habe mir aber vorgenommen noch an der Spieltiefe zu feilen. Um dies so effizient wie es nur geht machen zu können, wird eine Art Integrationstest nötig sein. Ich habe mir zudem überlegt, dass dieser “Autopilot” auch den Walkthrough, also die Komplettlösung, abhaken soll. Und, ich will messen, ob meine selbst gesteckten Ziele der Spielzeit eingehalten werden oder nicht. Schließlich möchte ich ja als Spieler einige Zeit mit Rätseln und Knobeleien beschäftigt werden.

Das Konzept des Autopiloten steht, das passende Script in der Version “shortest walkthrough” steht im Groben. Zeit also für die Referenzimplementierung…

Nach einigem Hinundher habe ich mehrere potenzielle Stellen im Code gefunden, die die Aufgabe scheinbar schnell erledigen könnten. Doch Pustekuchen. Race-Conditions sind eine fiese Ausgangssituation für diese Herausforderung. Ein Zeichen für suboptimalen Code.

Nach mehreren Stunden wiederholten Fehlerfindens, war das Fazit ernüchternd: So einfach kann ich die Funktion nicht einbauen. Ein Refactoring muss her, das die begangenen Code-Sünden ausbügelt und den Weg frei macht für den Autopiloten.

Ironischerweise will ich einen Test erzeugen, den ich zuvor mit einem Test sichern will. Gibt es den? Nein… wieder ein Bad Smell, der mich sicherlich etliche Stunden Schlaf, Gesundheit oder/und Freizeit kosten wird…

Lessons Learned

Next Steps


26.03.2014