Doom läuft in einer Telegram-Nachricht – Frames in 1.024 Byte
Ein Entwickler spielt Doom in einer einzelnen Telegram-Nachricht. Die Engine läuft auf einem Mac, jeder Frame muss in eine 1.024 Byte große Bot-Antwort passen.

Ein Entwickler hat Doom in einer einzelnen Telegram-Nachricht spielbar gemacht. Die Engine bleibt auf seinem Mac, im Chat erscheinen nur ein kleines Bild und sechs Buttons: vor, zurück, links drehen, rechts drehen, schießen und Tür öffnen.
Drückt man einen Button, ruft das Widget etwa TelegramWidget.request("right") auf. Der Bot findet die Spielsitzung und gibt die Eingabe an ViZDoom weiter, das die Simulation um fünf Ticks voranbringt. Der Spieler dreht sich, Gegner bewegen sich, Geschosse fliegen – danach steht die Welt wieder still. Den Frame holt der Bot aus dem Bildschirmpuffer und liefert ihn über answerWidgetQuery zurück. Das Widget tauscht die Bildquelle im selben Element aus, sodass der Chat auch nach Dutzenden Zügen nur eine Spielnachricht enthält.
Das 1.024-Byte-Limit
ViZDoom liefert einen RGB-Frame mit 320 × 200 Pixeln, unkomprimiert 192.000 Byte. Die gesamte Antwort darf nur 1.024 Byte groß sein und muss das Bild als Base64-String enthalten. Weil aus je drei Bytes vier Zeichen werden, bleiben für das WebP höchstens 768 Byte.
Der Autor hält die WebP-Qualität konstant und passt stattdessen die Auflösung pro Frame an. Zuerst versucht er 120 Pixel Breite, dann 96, 80, 64, 48 und 32; die Höhe skaliert proportional. Geprüft wird der fertig kodierte String. Eine leere Wand und ein Raum mit Gegner können daher in unterschiedlicher Auflösung ankommen. Ferne Gegner sind kaum zu erkennen, dafür lässt sich eine Tür öffnen und nachsehen, wer dahinter steht. Während eine Antwort unterwegs ist, ignoriert das Widget neue Eingaben; zwischen Anfragen liegen mindestens 1.010 ms. Da das Spiel rundenbasiert ist, rücken Monster in dieser Zeit nicht näher.
Test und Einrichtung
In Telegram für macOS prüfte der Autor den Weg vom Startraum zur Tür, Drehen und Schießen. Das gesamte Level spielte er separat in lokalem ViZDoom mit denselben sechs Buttons und fünf Ticks pro Zug: Bis zum Ausgangsschalter waren es 537 Züge, am Ende blieben 48 % Gesundheit und sechs getötete Gegner.
Für den eigenen Betrieb braucht man Python 3.12, ein eigenes Bot-Token und die originale DOOM1.WAD aus Doom Shareware 1.9, die nicht im Repository liegt. Der Pfad wird über DOOM_WAD gesetzt. Der Spielbot hält bis zu sechs Sitzungen und gibt sie nach zehn Minuten Inaktivität frei.
Aus dem Projekt entstand Awesome Telegram Widgets. Im @awesomewidget_bot gibt es Doom, rundenbasiertes Pacman, Taschenrechner, Demo-Wetter, Routenwahl und Demo-Mail, mit Kategorien, Suche und Links zu den Originalprojekten. Eigene Widgets können Entwickler für den Katalog einreichen.
Apps, die sich lohnen
Tippe die richtigen Felder, addiere, triff das Ziel. Leicht zu lernen, schwer zu meistern. Kostenlos, für jedes Alter.
Sprich mit einem KI-Gesprächspartner; jeder Satz kommt korrigiert und in deiner Sprache erklärt zurück. 9 Sprachen, A1 bis C2.
EDIFACT- und X12-Nachrichten öffnen, jedes Segment verständlich erklärt, in JSON/XML umwandeln, als PDF und Excel exportieren. Läuft lokal, kein Upload.
Wähle, für wen es ist, den Anlass und die Persönlichkeit. Die Suchmaschine liest Produktbeschreibungen lokaler Shops und sortiert, was passt. Kostenlos, ohne Anmeldung.
Mehr von diesem Tag
Alle anzeigen →
Steam zeigt durchschnittliche Bildrate für das Steam Deck an

QuantumDiamonds: Diamant-Sensoren sollen Fehler in Computerchips finden

Parloa baut OpenAI-Partnerschaft aus und erhält frühen Modellzugang

Paribu startet KI Paribu Intelligence und kostenloses Terminal
Mehr aus: Software
Alle anzeigen →
WhatsApp-Chef Kunal Shah plant einfachere App mit mehr KI

VORA AI DOCS: Linkbricks startet kostenloses Office für HWP

Asahi Linux wechselt zu Copyleft: Schutz vor Code-Übernahmen
