Flappy Bird: Retrogaming und Künstliche Intelligenz

Spieleprogrammierung
Trinket
Retrogaming
Künstliche Intelligenz
Autor:in

Jörg Kantel

Veröffentlichungsdatum

31. März 2023

Zum Zehnjährigen: Obwohl eigentlich noch recht jung (von 2013) ist Flappy Bird wegen seines riesigen Erfolgs sehr schnell ein Computerspielklassiger geworden, der mittlerweile in unzähligen Versionen nachprogrammiert wurde und nicht nur für die Ausbildung der Spieleprogrammierer, sondern auch als Forschungsobjekt im Bereich Künstliche Intelligenz herhalten muß.

So ist es einfach folgerichtig, daß Flappy Bird auch mein nächstes Trinket-Projekt werden soll (es drängelt sich als Nachfolgeprojekt zu Pizza Plane geradezu auf). Daher habe ich zur Einstimmung ein paar Video-Tutorials zusammengestellt, die Lust auf das Projekt machen sollen.

Den Anfang macht die Playlist »Create Flappy Bird in Processing von Allen Thoe, die in sechs etwa zehnminütigen bis viertelstündigen Videos eine klassische Version von Flappy Bird implementiert.

Etwas mehr Phantasie bezüglich der Spielegestaltung und auch eine größere Nähe und Verbindung zu meinem kleinen, grünen Pizzaflieger zeigt die Implementierung »Tappy Plane Game in Python and Pygame von Click Clack Code. Es nutzt die freien Tappy Plane Assets von Kenney.nl (die ihrer Website frisch ein Redesign gegönnt habe) und kommt – wie alles von Click Clack Code – ohne störende Kommentare aus, nur Code pur.

Doch der eigentlich Klassiker ist natürlich Daniel Shiffman, der schon vor sechs Jahren seine Version von Flappy Bird in P5.js programmierte und online stellte. Kurz darauf folgte noch Clappy Bird, wo er den Vogel mit Händeklatschen steuerte.

Der Höhepunkt ist jedoch seine Coding Challenge 100: Neuroevolution Flappy Bird, Part 1, Part 2, Part 3, Part 4 und Part 5, in der er seine eigene JavaScript-Neural-Network-Bibliothek und einen ebenfalls selbst geschriebenen Genetischen Algorithmus nutzt, um dem Vogel künstliche Intelligenz beizubringen.

Es folgte noch eine Version, in der er seine eigene Bibliothek durch TensorFlow ersetzte. Und alles dies – und mehr – hat er in seiner Playlist The Nature of Code, Part 11: Neurovolution zusammengefaßt.

Natürlich gibt es unzählige ähnliche Implementierungen. Eine der wie ich finde interessantestens findet Ihr in der Playlist »Arcade Games with Genetic Algorithms and Neural Net AI, in der eine Implementierung allgemein ohne Bezug auf eine spezielle Programmiersprache erklärt wird.

Das alles sollte Material genug sein, um mich auf mein Vorhaben einzustimmen. Still digging!