DOOM को वायरलेस ईयरबड्स पर पोर्ट किया गया
(doombuds.com)- 1993 के क्लासिक गेम DOOM को वायरलेस ईयरबड्स PineBuds Pro पर चलाने के लिए पोर्ट किया गया एक प्रोजेक्ट, जिसे वेब के ज़रिए रिमोट रूप से खेला जा सकता है
- यह serial server, web server, static webpage, और DOOM port — इन चार घटकों से बना है, जो ईयरबड्स और वेब को जोड़ते हैं
- UART कनेक्शन के ज़रिए लगभग 2.4Mbps बैंडविड्थ हासिल की गई, और MJPEG stream के माध्यम से वीडियो भेजकर सैद्धांतिक रूप से अधिकतम 27FPS प्रदर्शन प्राप्त किया गया
- CPU को 100MHz से 300MHz तक overclock किया गया, और JPEG encoding की सीमाओं के बीच वास्तविक प्रदर्शन लगभग 18FPS तक पहुँचा
- RAM·FLASH सीमाओं को optimization और हल्के Squashware WAD file से हल किया गया, जिससे open source firmware आधारित हार्डवेयर प्रयोगों की संभावनाएँ दिखाई गईं
प्रोजेक्ट अवलोकन
- 1993 में रिलीज़ हुए DOOM को PineBuds Pro ईयरबड्स पर चलाने के लिए पोर्ट किया गया
- PineBuds Pro का उल्लेख ऐसे एकमात्र वायरलेस ईयरबड्स के रूप में किया गया है जो open source firmware को सपोर्ट करते हैं
- वेबसाइट विज़िटर queue में शामिल होकर गेम को रिमोट रूप से खेल सकते हैं
- प्रोजेक्ट चार हिस्सों में बना है
- ईयरबड्स पर चलने वाला DOOM port
- ईयरबड्स और वेब सर्वर को जोड़ने वाला, और MJPEG stream को Twitch में बदलने वाला serial server
- assets उपलब्ध कराने, queue प्रबंधन, key input भेजने, और stream दिखाने का काम करने वाला web server
- browser display और server communication संभालने वाली static webpage
हार्डवेयर और कनेक्शन संरचना
- ईयरबड्स में डिस्प्ले नहीं है, इसलिए डेटा का आदान-प्रदान Bluetooth या UART contact pads के ज़रिए होता है
- Bluetooth लगभग 1Mbps पर धीमा है, इसलिए UART(2.4Mbps) अधिक उपयुक्त है
- DOOM का framebuffer 320×200 resolution और 8-bit color में लगभग 96KB का है
- UART बैंडविड्थ के आधार पर लगभग 3FPS ट्रांसमिशन संभव है
- इसे बेहतर बनाने के लिए MJPEG stream तरीका अपनाया गया
- JPEG encoder के रूप में bitbank2/JPEGENC का उपयोग किया गया
- औसत JPEG frame आकार 11~13.5KB
- सैद्धांतिक अधिकतम FPS लगभग 22~27FPS
CPU प्रदर्शन समायोजन
- डिफ़ॉल्ट firmware का CPU clock 100MHz था, जिसे 300MHz तक बढ़ाया गया और low-power mode को बंद किया गया
- Cortex-M4F(300MHz) DOOM चलाने के लिए पर्याप्त है, लेकिन JPEG encoding में bottleneck पैदा होता है
- वास्तविक frame rate लगभग 18FPS के स्तर पर रहा
मेमोरी (RAM) optimization
- डिफ़ॉल्ट रूप से उपलब्ध RAM 768KB है, और सहायक प्रोसेसर को disable करने पर 992KB तक मिलती है
- DOOM को 4MB RAM चाहिए, इसलिए कई optimization किए गए
- lookup table pre-generation, const variables को flash में स्टोर करना, caching system disable करना, अनावश्यक variables हटाना आदि से मेमोरी बचाई गई
फ्लैश (FLASH) क्षमता की समस्या
- DOOM 1 की मूल WAD file 4.2MB की है, जो ईयरबड्स की 4MB स्टोरेज सीमा से अधिक है
- fragglet के हल्के संस्करण Squashware WAD(1.7MB) का उपयोग करके समस्या हल की गई
- सभी assets को flash के भीतर समायोजित किया जा सका
open source और accessibility
- प्रोजेक्ट कोड दो GitHub repositories में सार्वजनिक है
- DOOMBuds: ईयरबड्स के लिए DOOM port
- DOOMBUDS-JS: browser और ईयरबड्स के बीच interaction को सपोर्ट करता है
- वेबसाइट queue-आधारित तरीके से चलती है, और 5वें स्थान से Twitch stream low-latency MJPEG stream में बदल जाता है
5 टिप्पणियां
"यहाँ DOOM चलता है"
DOOM के उस्ताद सच में... कमाल हैं।
वाह, ये तो थोड़ा... गज़ब है, डरावना
हे भगवान
Hacker News की राय
जब भी मैं किसी साधारण डिवाइस पर DOOM चलता देखता हूँ, तो सोचने लगता हूँ कि यह software की जीत है या फिर सस्ता dedicated hardware न बना पाने की आर्थिक विफलता
ANC Bluetooth earbuds कोई साधारण प्रोडक्ट नहीं हैं, और noise cancelling के लिए लगातार बहुत जटिल computation करनी पड़ती है
तेज MCU सिर्फ फिजूलखर्ची नहीं है; इससे low latency और बेहतर power management का लाभ मिलता है
एकदम परफेक्ट ASIC बनाने की बजाय, update किए जा सकने वाले general-purpose MCU वाला ढांचा रखना कहीं ज़्यादा व्यावहारिक है
आखिरकार, साबित हो चुके MCU को बड़े पैमाने पर खरीदना custom chip बनाने से कहीं ज़्यादा किफायती है
custom chip को डिज़ाइन और प्रोड्यूस करने में लगने वाला manpower, testing, training, और low-volume production cost उल्टा ज़्यादा महंगा पड़ता है
material cost से कहीं बड़ा हिस्सा business process cost का होता है
earbuds में DOOM चलने वाली दुनिया में इसे नकारात्मक रूप से देखने की कोई वजह नहीं है
स्पेक्स ज़रूरत से ज़्यादा हैं, लेकिन यह सब कान के अंदर फिट हो जाता है, यही हैरत की बात है
मैंने DOOM को PineBuds Pro पर port किया है
इंटरनेट के ज़रिए कनेक्ट करें तो आप मेरे earbuds पर DOOM खेल सकते हैं
ज़्यादा जानकारी और GitHub लिंक मेरी साइट पर हैं
थोड़ा अफसोस होता है कि हमेशा DOOM ही port किया जाता है
पहले simple लेकिन addictive games बहुत हुआ करते थे, लेकिन आजकल के गेम इतने बड़े और जटिल हैं कि उन्हें छोटे platforms पर ले जाना मुश्किल है
लगता है कि industry, indie को छोड़कर, दिशा खो चुकी है
पुराने Master of Orion 1 जैसे गेम सरल थे, लेकिन बार-बार खेलने लायक थे
आजकल के गेम वीडियो जैसे हो गए हैं, जिनमें कम interaction और XP grinding ज़्यादा है, इसलिए दिलचस्पी कम हो जाती है
यह अब लगभग एक परंपरा बन चुका है
अब ज़्यादातर users storage या performance की उतनी चिंता नहीं करते
जब consumers का रवैया “बस ठीक से चलना चाहिए” जैसा हो गया, तो optimization की value कम हो गई
फिर भी indie scene में छोटे और stylish games अब भी बहुत हैं
बस वे अक्सर छोटे फिल्मी अनुभव जैसे होते हैं, इसलिए बड़ा प्रभाव छोड़ना कठिन होता है और वे कम जाने जाते हैं
DOOM ports की सूची Wikipedia page पर देखी जा सकती है
मुझे लगता है कि यह PineBuds Pro के लिए शानदार publicity है
सोच रहा हूँ क्या Fairbuds पर भी यह संभव होगा
लेकिन जब इतने सारे डिवाइस पर DOOM चल जाता है, तो फिर यह अभी भी 386 पर smoothly क्यों नहीं चलता
DOOM 3 के बाद एक interview में John Carmack ने कहा था कि engine इतने जटिल हो गए थे कि वह अब सारा code अकेले नहीं लिख सकते थे
आज के AI era में वह क्या सोचते होंगे, यह जानने की जिज्ञासा है
मुझे व्यक्तिगत रूप से लगता है कि वह AI के प्रति सकारात्मक होंगे
और “Masters of Doom” सच में बहुत अच्छी किताब है, मैं इसकी सिफारिश करता हूँ
क्या किसी ने PineBuds Pro इस्तेमाल किए हैं
Pine64 IRC में इससे जुड़ा चैनल नहीं था, इसलिए पूछना मुश्किल था
fit या sound quality के बारे में नहीं कह सकता, लेकिन Pine64 Discord channel में Pinebuds के लिए अलग कमरा है
मैंने जानबूझकर ANC-रहित firmware इंस्टॉल किया, लेकिन Bluetooth earbuds के रूप में यह अपना काम ठीक से कर लेता है
कुछ साल बाद, अगर earbuds में RAM थोड़ा और बढ़ जाए, तो शायद उन पर local Kubernetes cluster भी चलाया जा सके
मैं उस पोस्ट का इंतज़ार कर रहा हूँ: “DOOM को disposable vape chip पर port कर दिया” 😄
अगर Moore’s law चलती रही, तो शायद करीब 10 साल बाद यह संभव हो सके
earbuds से सीधे जुड़ा standalone viewer मोबाइल पर भी काम करता है
demo video देखें
touch controls नहीं हैं, और सिर्फ intro loop चलता है