Osegi
सॉफ़्टवेयर·2 मिनट में पढ़ें

Telegram मैसेज में चला Doom, हर फ्रेम सिर्फ 1,024 बाइट का

एक डेवलपर ने Telegram के एक ही मैसेज के अंदर Doom चला दिया। इंजन Mac पर चलता है और हर फ्रेम को बॉट के 1,024 बाइट के जवाब में समाना पड़ता है।

A tiny low-resolution Doom hangar frame with a door and muzzle flash shown inside a Telegram chat message with six control buttons.
छवि: Хабр

एक डेवलपर ने Telegram के मैसेज के भीतर ही Doom खेलने लायक बना दिया है। गेम इंजन उसके अपने Mac पर चलता है, जबकि चैट में सिर्फ स्क्रीन की तस्वीर और छह बटन दिखते हैं। "दाएं" दबाने पर उसी मैसेज में अगला फ्रेम आ जाता है। बॉट के पूरे जवाब के लिए सिर्फ 1,024 बाइट मिलते हैं।

बटन दबाने से फ्रेम तक

मैसेज में आगे-पीछे चलने, मुड़ने, गोली चलाने और दरवाजा खोलने के बटन हैं। दाएं मुड़ने पर विजेट TelegramWidget.request("right") कॉल करता है। बॉट गेम सेशन ढूंढकर ViZDoom को टर्न बटन भेजता है, और इंजन सिमुलेशन को पांच टिक आगे बढ़ाता है। इस दौरान खिलाड़ी मुड़ता है, दुश्मन चलते हैं और प्रोजेक्टाइल उड़ते हैं। फिर दुनिया रुक जाती है।

बॉट स्क्रीन बफर से फ्रेम लेकर answerWidgetQuery से लौटाता है, और विजेट उसी img एलिमेंट का सोर्स बदल देता है। इसलिए दर्जनों चाल के बाद भी चैट में गेम का एक ही मैसेज रहता है। जवाब आने तक नए क्लिक अनदेखे किए जाते हैं, और दो रिक्वेस्ट के बीच कम से कम 1010 मिलीसेकंड का अंतर रहता है।

768 बाइट की सीमा

ViZDoom 320 × 200 का RGB फ्रेम देता है, जो संपीड़न से पहले 192,000 बाइट का है। नतीजे में Base64 स्ट्रिंग जानी है, जहां हर तीन बाइट चार अक्षर बन जाते हैं। इसलिए WebP के लिए अधिकतम 768 बाइट बचते हैं।

लेखक WebP की क्वालिटी स्थिर रखता है और हर फ्रेम का रिज़ॉल्यूशन बदलता है: पहले चौड़ाई 120 पिक्सेल, फिर 96, 80, 64, 48 और 32। जांच एन्कोडिंग के बाद उसी स्ट्रिंग पर होती है जो Telegram को मिलेगी। छोटी तस्वीर में दूर का दुश्मन मुश्किल से दिखता है, पर दरवाजा खोलकर पीछे देखा जा सकता है। टक्कर, दरवाजे और हिट इंजन ही तय करता है।

टेस्ट और सेटअप

Telegram for macOS में शुरुआती हॉल से दरवाजे तक का रास्ता, मुड़ना और गोली चलाना जांचा गया। पूरा लेवल अलग से लोकल ViZDoom में उन्हीं छह बटनों और पांच टिक प्रति चाल के साथ परखा गया: निकास स्विच तक 537 चालें लगीं, 48% हेल्थ बची और छह दुश्मन मारे गए।

खुद चलाने के लिए Python 3.12, अपने बॉट का टोकन और Doom Shareware 1.9 की मूल DOOM1.WAD चाहिए, जो रिपॉज़िटरी में शामिल नहीं है। गेम बॉट एक साथ छह सेशन रखता है और दस मिनट निष्क्रिय रहने पर उन्हें छोड़ देता है। इसी के साथ Awesome Telegram Widgets कैटलॉग बना है, जिसमें @awesomewidget_bot पर Doom, Pacman, कैलकुलेटर, मौसम डेमो और अन्य विजेट मिलते हैं।

देखने लायक ऐप्स

SUMO: नंबर पज़ल

सही खाने चुनें, जोड़ें, लक्ष्य तक पहुँचें। सीखना आसान, महारत मुश्किल। मुफ़्त, हर उम्र के लिए।

Dialo: बोलकर भाषाएँ सीखें

AI बातचीत साथी से बात करें; हर वाक्य सुधरकर आपकी भाषा में समझाया हुआ लौटता है। 9 भाषाएँ, A1 से C2 तक।

giftdetect: मिनटों में सही तोहफ़ा

चुनें किसके लिए, किस मौके पर और कैसा स्वभाव। सर्च इंजन स्थानीय दुकानों के उत्पाद विवरण पढ़कर सबसे उपयुक्त विकल्प ऊपर रखता है। मुफ़्त, बिना साइन-अप।

टैग:doomtelegramvizdoomtelegram widgetswebpbots

इसी दिन की और ख़बरें

सभी देखें →

और पढ़ें:: सॉफ़्टवेयर

सभी देखें →
Telegram मैसेज में Doom: हर फ्रेम 1,024 बाइट · Osegi