Ein ganzes Videospiel auf einem QR Code?
In vorherigen Blog-Posts haben wir bereits erläutert, was mit einem QR Code alles möglich ist: Neben simplem Text ("Hallo") und einfachen URLs ("https://qrcover.de"), ist es eben auch problemlos möglich, eine digitale Visitenkarte, einen Standort, ein Kalendereintrag, WLAN Zugangsdaten oder eine vorgefertigte E-Mail, SMS oder WhatsApp Nachricht in Form eines QR Codes zu kodieren.
Der Technik Youtuber MattKC ist in einem Video allerdings einen Schritt weiter gegangen und hat sich gefragt, ob es eigentlich rein technisch möglich wäre, ein ganzes Computerspiel in einem QR Code zu kodieren, welches dann von einem Smartphone gelesen und abgespielt werden kann.
Was ein QR Code kann. Und was eigentlich nicht.
Angesichts der inhärenten Kapazitätsgrenze von QR Codes und der eher umfangreichen Komplexität des Quellcodes für Computerspiele erscheint dieses Ziel zunächst sehr ambitioniert bis unmöglich. QR Codes können zwar verschiedene Größen annehmen und neben Text eben auch binäre Daten von bis zu 2,88 Kilobytes kodieren, dennoch sind QR Codes vom Design her eigentlich darauf ausgelegt, kleinere Datenmengen schnell und unkompliziert für Maschinen lesbar zu machen.
Um das ganze einmal in Perspektive zu setzen: 1 Kilobyte (KB) entspricht in etwa ein halben Din A4 Seite Text. Ein mit dem iPhone aufgenommenes Bild im JPEG-Format hat hingegen etwa 2 MB - also 2000 KB - weshalb man auch nur über Umwege ein Bild in einem QR Code verstecken kann.
Doch zurück zum Computerspiel: Die Herausforderung ist also, den Code für ein simples Videospiel unter knappen 3 KB zu halten. Obwohl es definitiv möglich ist, sehr grundlegende Videospiele mit sehr wenig Code zu schreiben, muss gesagt werden, dass es für ein derartiges Vorhaben unabdingbar ist, den Quelltext für das Videospiel in einer maschinennahen Programmiersprache wie C oder sogar Assembly zu schreiben.
Wie MattKC Snake in einen QRCode programmiert.
Im besagten Video von MattKC versucht der Autor also, den Handyspielklassiker Snake in C nachzuprogrammieren und dabei die Größe der ausführbaren Datei unter dem besagten Limit von 2,88 KB zu halten.
Dabei ist anzumerken, dass MattKC, auf Grund der Restriktionen und Funktionsweise der Betriebsysteme, bewusst keine Android oder iOS Applikation, sondern eine reine ausführbare Windowsdatei (sog. Executable oder .exe) programmiert. Diese soll dann eben in ihrer binären Form in einem QRCode kodiert werden und über ein Bild oder idealerweise die Webcam eines Computers eingelesen und ausgeführt werden können.
Ohne zu sehr auf die technischen Feinheiten beim Schreiben und Kompilieren von C-Code einzugehen, schaffte es der YouTuber schlußendlich, ein vollfunktionsfähiges, wenn auch grafisch eher einfach gehaltenes Snake-Spiel (aber hey, das ist ja grade das Markenzeichen von Snake ;) zu schreiben und unter 2,88 KB Dateigröße zu kompilieren.
Mittels dem Kommandozeilenprogramm qrencode konnte er dann auch relativ simpel ein QR Code generieren, welcher eben den Quelltext des Spiels enthält:

Zusammenfassend sehr beeindruckend, wie MattKC die technischen Details hinter QRCodes, ausführbaren Dateien und QRCode Leseprogrammen erläutert und Limitierungen gekonnt umgeht. Sicherlich ist es nicht Sinn und Zweck von QR Codes, als Speichermedium für Dateien zu fungieren, dennoch ist das Projekt von MattKC ein spannendes Diskurs für alle, die sich für technische Spielereien und Feinheiten interessieren.

Wie kann eine Handyhülle von QRCover deinen Alltag verbessern?
Probier doch selbst einmal aus, was man mit einem QR Code auf einer Handyhülle alles machen kann, und welche alltäglichen Probleme man so beispielsweise lösen könnte! Mit unserem Handyhüllenkonfigurator mit integriertem QRCode Generator kannst Du dir eine individuelle Handyhülle für iPhone oder Samsung gestalten und drucken lassen.
Den gesamten Artikel über das Projekt von MattKC findet ihr hier.