मेरा परफेक्ट टेट्रिस
प्रोजेक्ट का GitHub रिपॉज़िटरी
यह क्या है
टेट्रिस एक леген्डरी खेल है और एक ऐसा खेल है जिसे मैं बहुत पसंद करता/करती हूँ। मुझे यह गेम वास्तव में पसंद है और मैं इसे खेलना आनंद लेता/लेती हूँ। यह एक बेहतरीन तनाव-रिलिवर है। एक मज़ेदार वीकेंड प्रोजेक्ट के लिए, मैंने इसे ब्राउज़र गेम/ऐप के रूप में बनाया जो डेस्कटॉप और मोबाइल दोनों के लिए डिज़ाइन किया गया है, और यह वाइब कोडिंग के सिद्धांतों का उपयोग करता है। इस संस्करण के मोबाइल पक्ष को प्ले-टेट्रिस से प्रेरणा मिली थी, जो अपने स्वाइप-आधारित नियंत्रणों के साथ एक बहुत ही अच्छा मोबाइल सेटअप प्रदान करता है। मेरा टेट्रिस कार्यान्वयन यहां देखें और खेलें यहाँ, यह वही है जिसे मैं सबसे “परफेक्ट” टेट्रिस मानता/मानती हूँ।
कोड से परे
मैंने इसे किसी पोर्टफोलियो प्रोजेक्ट के रूप में या कुछ नया सीखने के लिए बनाने का इरादा नहीं किया था। मैंने इसे इसलिए बनाया क्योंकि मुझे सचमुच इसकी ज़रूरत थी। जब मैं तनाव में होता/होती हूँ, चाहे वह काम का कठिन सप्ताह हो या बस ज़िन्दगी का बोझ बढ़ना, टेट्रिस उन कुछ स्वस्थ चीज़ों में से एक है जो वास्तव में मुझे रिसेट करने में मदद करती हैं। जब मैं तनाव में होता/होती हूँ तो मैं अक्सर बहुत खा लेता/लेती हूँ, जो समय के साथ जोड़ता है, इसलिए मेरे लिए ऐसी कोई चीज़ होना जो बिना किसी नुकसान के काम करे बहुत मायने रखता है। सिर्फ 10 से 30 मिनट ब्लॉक्स गिराने से मेरा दिमाग कुछ हद तक साफ़ महसूस करता है। मेरे लिए यह सिर्फ आकस्मिक आराम नहीं है, बल्कि तनाव को किसी साधारण और केंद्रित चीज़ में डालने का एक तरीका है। यहां तक कि कुछ दिलचस्प शोध भी दिखाते हैं कि टेट्रिस कैसे मस्तिष्क पर दखल देने वाली यादों और तनाव को प्रभावित कर सकता है, उदाहरण के लिए ट्रॉमा फिल्म प्रयोगों में, वास्तविक दुर्घटनाओं के बाद उपचारित लोगों में, और थेरपी के पूरक के रूप में मापनीय मस्तिष्क परिवर्तन के साथ। मैं इस गेम को मेडिकल ट्रीटमेंट में बदलने की कोशिश नहीं कर रहा/रही हूँ, लेकिन यह देखना अच्छा है कि शायद वास्तविक विज्ञान मेरे अनुभव का समर्थन करता है, कि टेट्रिस सचमुच लोगों को तनाव से निपटने में मदद कर सकता है।
तो मैंने खेलने के लिए एक अच्छा टेट्रिस संस्करण खोजने की कोशिश की, और समस्या यह थी कि वहाँ कुछ भी वास्तव में वैसा नहीं था जैसा मैं खेलना चाहता/चाहती था। iOS App Store पर मोबाइल ऐप्स विज्ञापनों और माइक्रोट्रांज़ैक्शंस से भरे होते हैं। वेब संस्करण फोन पर लैगी या खराब महसूस होते थे। क्लासिक एनईएस संस्करण शानदार है लेकिन उसे एमुलेटर और अतिरिक्त हार्डवेयर की ज़रूरत होती है। मैंने यहां तक कि एक मियू मिनी भी खरीदी सोचकर कि यह समस्या हल कर देगा, और अंततः मैंने जो किया वह सिर्फ टेट्रिस खेलने के लिए एक दूसरा डिवाइस साथ लेकर चलना था। किसी बिंदु पर मुझे एहसास हुआ कि मैं सही संस्करण ढूँढने में इतना समय खर्च कर रहा/रही था जितना कि बस एक बना देने में लग जाता।
मॉडर्न ब्राउज़र्स, LLM टूल्स जैसे Claude Code, और वाइब कोडिंग जैसी वर्कफ़्लो के साथ, अंततः ऐसा लगा कि अब अपना स्वयं का टेट्रिस बनाने का सही समय है। तेज़, न्यूनतम, बिना विज्ञापनों के, बिना अकाउंट के, बिना ऐप स्टोर के। बस एक ब्राउज़र गेम जो मेरे फोन और लैपटॉप पर काम करे और जिसे मैं पूरी तरह नियंत्रित कर सकूँ। लगभग एक दिन में मेरे पास एक काम करने वाला संस्करण था, और लगभग एक सप्ताह के बीच-बीच के काम के बाद इसे मजबूत करने और दोनों डेस्कटॉप व मोबाइल पर फ़ील सही करने में मैं खुश था।
मैं इसे बाँट रहा/रही हूँ क्योंकि अगर यह किसी और व्यक्ति को भी उसी तरह तनाव कम करने में मदद करता है जैसा यह मुझे करता है, तो मुझे वास्तव में बहुत खुशी होगी। यह एक छोटी चीज़ है, लेकिन कभी-कभी एक छोटी चीज़ वही होती है जिसकी आपको ज़रूरत होती है।
विशेषताएँ
- क्लासिक 10x20 टेट्रिस बोर्ड
- डेस्कटॉप पर पूर्ण कीबोर्ड नियंत्रण और मोबाइल पर टच जेस्चर नियंत्रण
- मानक सात-बैग पीस रैंडमाइज़र
- होल्ड पीस और अगला पीस पूर्वावलोकन
- घोस्ट पीस प्रोजेक्शन जो दिखाता है कि टुकड़े कहाँ उतरेंगे
- लेवल-आधारित स्पीड कर्व के साथ डायनेमिक लॉक डिले
- स्कोर, लाइन्स, लेवल, और हाई स्कोर ट्रैकिंग लोकल स्टोरेज में स्थायी
- सॉफ्ट ड्रॉप और हार्ड ड्रॉप स्कोरिंग
- इन-गेम मेनू जिसमें जारी रखें, पुनः आरंभ, बाहर निकलें, संगीत/एसएफएक्स म्यूट करें, और स्रोत कोड लिंक शामिल हैं
- लाइन क्लियर फ़्लैश ऐनिमेशन के साथ साउंड इफेक्ट
- iOS सेफ एरिया सपोर्ट (डायनामिक आइलैंड, नॉच, होम इंडिकेटर)
- सर्विस वर्कर के माध्यम से ऑफ़लाइन सपोर्ट (पहले विज़िट के बाद इंटरनेट के बिना काम करता है)
- PWA के रूप में इंस्टॉल करने योग्य (iOS/Android पर होम स्क्रीन में जोड़ें ऐप जैसा अनुभव)
कंट्रोल्स
डेस्कटॉप (कीबोर्ड)
| क्रिया | कुंजियाँ |
|---|---|
| स्थानांतरित | ← → or A D |
| सॉफ्ट ड्रॉप | ↓ or S |
| हार्ड ड्रॉप | Space |
| घड़ी की दिशा में घुमाएँ | ↑ W X |
| घड़ी के विपरीत घुमाएँ | Z |
| होल्ड | C or LShift |
| मेन्यू | Esc or M |
| स्रोत कोड | G (शीर्षक स्क्रीन) |
मोबाइल (टच)
| क्रिया | जेस्चर |
|---|---|
| मूव | बाएँ / दाएँ स्वाइप |
| सॉफ्ट ड्रॉप | होल्ड करें और नीचे ड्रैग करें |
| हार्ड ड्रॉप | तेज़ नीचे फ़्लिक |
| घड़ी की दिशा में घुमाएँ | टैप |
| होल्ड | तेज़ ऊपर फ़्लिक |
कठिनाई वक्र
इस संस्करण में स्पीड कर्व और लॉक डिले को क्लासिक और आधुनिक टेट्रिस गेम्स द्वारा कठिनाई प्रगति को कैसे संभाला जाता है इस पर शोध के उपयोग से ट्यून किया गया था। मूल एनईएस टेट्रिस में, ग्रैविटी लेवल 29 पर प्रति फ्रेम एक रो तक पहुँच जाती है, जो प्रसिद्ध “किल स्क्रीन” बन जाती है जहाँ गेम अधिकांश मनुष्यों के लिए प्रभावी रूप से खेलना बंद कर देता है। वह वास्तव में डिज़ाइन किया गया अंत नहीं था, यह हार्डवेयर और यह कि DAS (Delayed Auto Shift) ड्रॉप स्पीड के साथ ताल नहीं मिला, का साइड इफ़ेक्ट था। विलिस गिब्सन ने 2024 में इसे सिद्ध किया जब उसने इसे पार किया और लेवल 157 पर गेम क्रैश कर दिया।
आधुनिक गेम्स जैसे TGM (Tetris: The Grand Master) ने इसे अलग तरह से हल किया। केवल यह नहीं कि टुकड़े तेजी से गिरते रहें जब तक कि गेम टूट न जाए, TGM ने ग्रैविटी को 20G (इंस्टैंट ड्रॉप) पर कैप कर दिया और फिर लॉक डिले और DAS जैसे अन्य टाइमिंग विंडोज़ को कसकर कठिनाई बढ़ाई। Tetris Guideline मानक 500ms लॉक डिले का उपयोग करता है जिसमें 15 तक मूव रीसैट होते हैं, जिसका यह संस्करण पालन करता है। TGM2 डेथ मोड और TGM3 Shirase पर शोध ने दिखाया कि प्रतिस्पर्धी खेल के लिए व्यावहारिक न्यूनतम लगभग 250ms लॉक डिले के आसपास है तेज़ DAS के साथ, जबकि 133ms से नीचे विशेषज्ञ क्षेत्र है।
इन सबके आधार पर, यहां स्पीड कर्व ग्रैविटी को प्रति रो 33ms पर कैप करता है (जो एनईएस लेवल 19 से 28 के समान है) बजाय इसके कि इंस्टैंट ड्रॉप तक जाए, और DAS उच्च लेवल पर 170ms से घटकर 100ms तक स्केल होता है ताकि आप लॉक डिले के दौरान बोर्ड पर यात्रा कर सकें। लक्ष्य यह था कि उच्च स्तर बर्बर रूप से तेज़ महसूस हों लेकिन फिर भी फ़ेयर रहें, मूल एनईएस दृष्टिकोण की तुलना में जहां केवल कच्ची गति आपके इनपुट से आगे निकल जाती है, यह Tetris 99 और TGM के एंडगेम कठिनाई को अधिक करीब लाने की कोशिश है।
आंतरिक विवरण
- डेस्कटॉप और मोबाइल (पोर्ट्रेट) दोनों के लिए अनुकूलित रेस्पॉन्सिव डिज़ाइन
- प्रदर्शन के लिए प्री-रेंडर्ड ब्लॉक स्प्राइट्स और ग्रिड बैकग्राउंड
- पीस रोटेशन के लिए सुपर रोटेशन सिस्टम (SRS) स्टाइल वॉल किक्स का उपयोग
- विश्वसनीय फ्लिक बनाम ड्रैग भेद के लिए वेग-आधारित टच जेस्चर डिटेक्शन
- ग्रैविटी स्पीड और लॉक डिले के लिए लेवल-आधारित टाइमिंग सिस्टम
- हाई स्कोर और ऑडियो सेटिंग्स
localStorageके साथ स्थायी रूप से सहेजी जाती हैं - बैकग्राउंड म्यूज़िक स्रोत NmCCQxVBfyM
- लाइन क्लियर साउंड इफेक्ट स्रोत UMViM2tHrOk
- प्रोजेक्ट पूरी तरह से ओपन-सोर्स है MIT License के तहत
- निम्नलिखित AI टूल्स के साथ बनाया गया:
- Claude Code CLI - coding/development
- Gemini CLI - coding/development
- Cha CLI - coding and writing
- xAI Grok - logos and icons
- Perplexity - researching bugs
- Google Search - finding SVGs and other assets
- YouTube + yt-dlp - sourcing audio clips
- FFmpeg - editing audio files
अंतिम विचार
यह उन प्रोजेक्ट्स में से एक था जहाँ प्रेरणा तकनीकी नहीं बल्कि व्यक्तिगत थी। मैं बस टेट्रिस का एक ऐसा संस्करण चाहता था जो उसी तरह काम करे जिस तरह मैं चाहता था, बिना विज्ञापनों के, बिना अतिरिक्त हार्डवेयर के, और बिना किसी और के उस ऐप पर निर्भर किए जिसके गायब होने या किसी भी समय बदल जाने का खतरा हो। इस बात से कि मैं आधुनिक एआई टूल्स और वाइब कोडिंग का उपयोग करके लगभग एक सप्ताह के बीच-बीच में काम करके विचार से एक परिष्कृत गेम तक पहुँच गया, सॉफ़्टवेयर विकास की वर्तमान स्थिति के बारे में बहुत कुछ कहता है।
इसे बनाने के बाद से मैं लगभग रोज़ाना इस संस्करण का उपयोग कर रहा हूँ, और यह अभी भी बिल्कुल वही करता है जिसकी मुझे ज़रूरत है। यह मुझे उन चीज़ों से दूर जाने में मदद करता है जो मुझे तनाव दे रही हैं, कुछ मिनटों के लिए किसी सरल चीज़ पर ध्यान केंद्रित करने में मदद करता है, और साफ़ दिमाग के साथ वापस आने में मदद करता है। अगर आप इसे आज़माते हैं और यह आपके लिए भी वही करता है, तो यह मेरे लिए सबसे अच्छा परिणाम होगा जिसकी मैं कामना कर सकता था। और अगर आप इसे फोर्क करना चाहते हैं, स्पीड कर्व को समायोजित करना चाहते हैं, नियंत्रण बदलना चाहते हैं, या इसके ऊपर कुछ बनाना चाहते हैं, तो बेझिझक आगे बढ़ें। अगर आपको कोई बग मिलता है या कोई सुझाव है, तो बेझिझक गिटहब रिपॉज़िटरी पर एक इश्यू खोलें। यही इसे ओपन-सोर्स बनाने का पूरा उद्देश्य है।