इस प्रोजेक्ट के बारे में

singedTerra एक ब्राउज़र-आधारित, टर्न-आधारित आर्टिलरी गेम है जिसे TypeScript में शुरू से लिखा गया है, जो Wendell Hicken के Scorched Earth (1991) को श्रद्धांजलि के रूप में प्रस्तुत किया गया है। यह क्लासिक लूप को बनाए रखता है: एक कोण चुनें, हवा की दिशा पढ़ें, पावर सेटिंग तय करें और फायर करें, जबकि इलाके (terrain) पर इसके परिणाम दर्ज होते हैं। इसे एक ही ब्राउज़र में 2-4 खिलाड़ी हॉट-सीट मैच के रूप में या सार्वजनिक और निजी Supabase रूम्स के माध्यम से ऑनलाइन खेला जा सकता है। मुख्य मैकेनिक्स। इलाके (Terrain) एक प्रति-पिक्सेल बिटमैप हैं: विस्फोट वास्तविक छेद करते हैं, बिना सहारे वाली जमीन ढह जाती है, टैंक गड्ढों में समा जाते हैं, और मिट्टी-प्रकार के हथियार नया कवर बना सकते हैं। प्रत्येक राउंड सीडेड होता है और प्रत्येक टर्न को एक नियतात्मक (deterministic) विंड वेक्टर मिलता है, ताकि हर क्लाइंट एक ही उड़ान पथ को हल करे। सोलह हथियार डायरेक्ट फायर, एयरबर्स्ट, बाउंसिंग एक्सप्लोसिव्स, नेपल्म, इलाके निर्माण, टनलिंग और डिफेंस को कवर करते हैं। मूवमेंट में ईंधन खर्च होता है, और क्षति से क्रेडिट मिलते हैं जिन्हें मल्टी-राउंड मैचों में गोला-बारूद, शील्ड, बैटरी और ईंधन के बीच विभाजित करना होता है। प्रस्तुति में ऑथर्ड टैंक, गोधूलि युद्धक्षेत्र, बैलिस्टिक उपकरण, इम्पैक्ट लाइटिंग, स्क्रीन शेक और सिंथेसाइज्ड ऑडियो शामिल हैं। टैंक गैरेज। प्रत्येक सीट के पास एक गैरेज होता है: खिलाड़ी Foundry, Ranger, Bulwark या Jackal चेसिस से शुरू करते हैं और मोबिलिटी, हल, बुर्ज और बैरल पार्ट्स को एक कस्टम सिलुएट में मिलाते हैं, जो रोस्टर प्रीव्यू में दिखाई देता है और मैच में साथ जाता है। मोड्स और नेटकोड। कंप्यूटर-नियंत्रित सीटें मानव खिलाड़ियों के समान नियतात्मक भौतिकी (deterministic physics) का उपयोग करती हैं, और हॉट-सीट और ऑनलाइन मोड अलग-अलग भौतिकी का उपयोग नहीं करते हैं। हॉट-सीट HotSeatClient के माध्यम से ब्राउज़र में सीधे साझा इंजन चलाता है। ऑनलाइन प्ले के लिए, प्रत्येक ब्राउज़र उसी इंजन की अपनी कॉपी चलाता है: Supabase रूम क्रियाओं को मान्य करता है, सीक्वेंस नंबर असाइन करता है, क्रमबद्ध लॉग स्टोर करता है और Realtime के माध्यम से कमिटेड पंक्तियों को प्रसारित करता है। कैनोनिकल ऑनलाइन मैच एक सीड और एक क्रमबद्ध एक्शन लॉग है; गेम स्टेट को टिकिंग सर्वर से स्ट्रीम करने के बजाय स्थानीय रूप से पुनर्निर्मित किया जाता है, जिससे फिक्स्ड टाइमस्टेप्स, सीडेड रैंडमनेस और रिप्ले पैरिटी डिज़ाइन कॉन्ट्रैक्ट का हिस्सा बन जाते हैं। कंट्रोल्स। एरो कीज़ बैरल का लक्ष्य निर्धारित करती हैं और पावर को बढ़ाती या घटाती हैं; A और D मूव करते हैं और ईंधन खर्च करते हैं; Q चयनित हथियार को बदलता है; Space या Enter फायर करता है या चयनित शील्ड को सक्रिय करता है; G ट्राजेक्टरी गाइडेंस को टॉगल करता है; M सिंथेसाइज्ड ऑडियो को म्यूट या रिस्टोर करता है; F दबाकर रखने से वर्तमान शॉट स्थानीय रूप से फास्ट-फॉरवर्ड हो जाता है। टच लेआउट कीबोर्ड डेक को एक ग्रुप्ड कमांड डेक से बदल देता है जिसमें Aim, Power और Drive शामिल हैं, जबकि Weapon और Menu यूटिलिटीज हैं और Fire, Store, fuel और Arsenal टैक्टिकल रेल में रहते हैं। डेस्कटॉप पर, सक्रिय टैंक से बाहर की ओर ड्रैग करने से फायर किए बिना कोण और पावर सेट हो जाती है। चलाना और सत्यापित करना। प्रोजेक्ट के लिए Node 24 LTS लाइन के भीतर Node 24.15 या नया, और npm आवश्यक है; npm install के बाद npm run dev localhost:5173 पर Vite क्लाइंट सर्व करता है, और हॉट-सीट प्ले के लिए किसी बैकएंड कॉन्फ़िगरेशन की आवश्यकता नहीं होती है। ऑनलाइन प्ले के लिए client/.env में VITE_SUPABASE_URL और VITE_SUPABASE_ANON_KEY की आवश्यकता होती है; anon key के पब्लिक क्लाइंट में शिप होने की उम्मीद है, जबकि Row-Level Security और Edge Function सत्यापन सर्वर-साइड डेटा की रक्षा करते हैं। सत्यापन कमांड में npm run check (टाइपचेक और नियतात्मक इंजन हार्नेस), npm run test:client (Vitest क्लाइंट और DOM टेस्ट), npm run check:edge (Supabase Edge Functions के लिए Deno टेस्ट), npm run test:e2e (प्रोडक्शन Chromium लेआउट और गेमप्ले चेक) और npm run build शामिल हैं। CI हर पुल रिक्वेस्ट पर समान कोर गेट्स चलाता है, और shared/src/engine/ के तहत बदलावों को नियतात्मक रिप्ले को सुरक्षित रखना चाहिए। रिपॉजिटरी लेआउट और दस्तावेज़ीकरण। client/ में Vite ऐप, Canvas रेंडरर्स, HTML HUD, इनपुट और लॉबी है; shared/ में नियतात्मक इंजन, रिप्ले लॉजिक और साझा प्रकार हैं; supabase/ में Postgres माइग्रेशन और स्टेटलेस Edge Function रेफरी हैं; scripts/checks/ में नियतात्मक इंजन और कॉन्ट्रैक्ट हार्नेस हैं; e2e/ में प्रोडक्शन-ब्राउज़र गेमप्ले और लेआउट गार्डरेल्स हैं; docs/ में खिलाड़ी, आर्किटेक्चर, डेवलपमेंट और प्रोजेक्ट रिकॉर्ड्स हैं। दस्तावेज़ीकरण में खेलना, आर्किटेक्चर, डेवलपमेंट और ऑपरेशन्स, UI सिस्टम और वर्तमान स्पेसिफिकेशन शामिल हैं। प्रोजेक्ट MIT लाइसेंस के तहत जारी किया गया है और यह मूल Scorched Earth लेखकों से संबद्ध नहीं है और न ही उनके द्वारा समर्थित है।