गाइड

मिनी गोल्फ़ गेम सोर्स कोड: 30 होल, फ़िज़िक्स और 3D कोर्स मैप

Puttide पैकेज अपने 30 होल कैसे रखता है, Three.js और Rapier कहां बैठते हैं, और खरीदार अपना होल कैसे जोड़ता है।

Puttide का आर्टवर्क: एक गोल्फ़ गेंद पत्थर के खंडहरों और ताड़ के पेड़ों के बीच हरे मैदान पर लाल झंडे की ओर लुढ़कती है, पीछे समुद्र में छोटे द्वीप।

मिनी गोल्फ़ गेम सोर्स कोड एक ही काम पर टिका है: एक होल जोड़ना। जो खरीदार ब्रांडेड कोर्स, मौसमी लेवल या क्लाइंट का लोगो हरे मैदान पर चाहता है, वह पहले लेवल फ़ाइलें खोलेगा, और अगर कोई होल इंजन के कोड में दबा हो, तो प्रोजेक्ट रुक जाता है। हमारे 3D मिनी गोल्फ़ टेम्पलेट Puttide में हर कोर्स की अपनी होल फ़ाइल सादे JavaScript में है, और मैनुअल एक होल जोड़ने का तरीका बताता है।

यह गाइड पैकेज को उसी तरह देखती है जैसे एक डेवलपर उसे पहली बार खोलता है: फ़ोल्डर, लाइब्रेरी, कोर्स फ़ाइलें, बदलावों का क्रम, होस्टिंग और लाइसेंस। फ़ाइलों के नाम गेम के साथ आने वाली खरीदार गाइड से लिए गए हैं।

जल्दी वालों के लिए छोटा जवाब: Puttide फ़ॉर्मेटेड JavaScript है, जिसमें ड्राइंग के लिए Three.js और गेंद की फ़िज़िक्स के लिए Rapier है, दोनों साथ बंडल। कोई बिल्ड स्टेप नहीं, कोई CDN नहीं और कोई सर्वर कोड नहीं।

मिनी गोल्फ़ गेम सोर्स कोड में क्या है

Puttide पांच द्वीप कोर्स पर 30 होल वाला एक तैयार गेम है: Sunlit Ruins, Lantern Pier, Frost Peaks, Cloud Garden और Volcano Forge, हर एक में छह होल। रैंप, पोर्टल, बंपर और पवनचक्कियां होल को छोटी पहेलियों में बदलती हैं। हर होल तीन स्टार देता है (खत्म करना, par या उससे बेहतर, और छिपा हुआ सिक्का), और कांस्य, रजत और स्वर्ण पदक सबसे अच्छे राउंड का इनाम देते हैं।

कोर्स के ऊपर एक दैनिक चुनौती है जिसमें एक मोड़ होता है (हवा वाली, बर्फ़ीली हरियाली, भारी गेंद, उछलती दीवारें, सिक्कों की दौड़ या birdie की खोज), एक Locker जहां सिक्कों से गेंदें, ट्रेल और दूसरे कॉस्मेटिक खरीदे जाते हैं, और एक डिवाइस पर दो से चार खिलाड़ियों के बारी-बारी वाले राउंड। इंटरफ़ेस 14 भाषाओं में आता है।

  • game/: तैयार बिल्ड, एकमात्र फ़ोल्डर जिसे आप प्रकाशित करते हैं।
  • source/: वही गेम एक डेवलपर संस्करण के रूप में, README और package.json के साथ।
  • documentation/: एक चित्रित गाइड, अंग्रेज़ी और पुर्तगाली में।
  • THIRD-PARTY-LICENSES/: लाइब्रेरी और फ़ॉन्ट के लाइसेंस टेक्स्ट।
  • संस्करण 1.1.0, 22 अक्टूबर 2026 को अपडेट।

Puttide का लिस्टिंग पेज खोलें: डेमो, मैनुअल और कीमत

Three.js, Rapier और बाकी स्टैक

गेंद की सिमुलेशन Rapier 3D 0.21.0 करता है, जो WebAssembly के रूप में चलती है, और दृश्य Three.js r186 से बनता है। दोनों lib/three/ और lib/rapier/ में अपनी लाइसेंस फ़ाइलों के साथ रहते हैं, और index.html में एक import map है जो गेम को उनकी ओर इशारा करता है। मैनुअल बताता है कि लाइब्रेरी फ़ाइलों का व्यवहार नहीं बदला गया है, बस उन्हें पढ़ने योग्य बनाने के लिए फ़ॉर्मेट किया गया है।

इसके दो कारण मायने रखते हैं। पहला, कुछ भी CDN से लोड नहीं होता, इसलिए पोर्टल या सख्त सुरक्षा नीति वाले क्लाइंट को सिर्फ़ आपके होस्ट की ज़रूरत है। दूसरा, किसी लाइब्रेरी को अपग्रेड करना एक मैनुअल और सोच-समझकर उठाया गया कदम है: source/package.json सटीक वर्ज़न बताता है, और आप नई मॉड्यूल फ़ाइलें मिलते हुए lib/ फ़ोल्डर पर कॉपी करते हैं और import map के रास्ते बनाए रखते हैं।

  • Three.js r186: MIT लाइसेंस।
  • Rapier 3D compat 0.21.0, WebAssembly के साथ एम्बेड: Apache-2.0 लाइसेंस।
  • Rubik और Fredoka वेब फ़ॉन्ट: SIL Open Font License 1.1।
  • दो संगीत ट्रैक: music/menu.mp3 और music/play-1.mp3।

होल, सिक्के और टेक्स्ट कहां रहते हैं

रास्ते source/ और game/ में एक जैसे हैं। कोर्स का डेटा द्वीप के हिसाब से बंटा है, जिससे हर फ़ाइल एक बार में पढ़ी जा सकने जितनी छोटी रहती है।

  • src/course/courses.js: कोर्स का क्रम और अनलॉक की शर्तें।
  • src/course/holes.js: Sunlit Ruins के होल, ज्यामिति, par और बाधाओं के साथ।
  • src/course/pier.js, ice.js, lava.js और sky.js: बाकी चार कोर्स के होल।
  • src/sim/constants.js: फ़िज़िक्स की ट्यूनिंग।
  • src/game/economy.js: गेंदें, ट्रेल और पोशाकें, उनकी कीमतों के साथ।
  • src/ui/i18n.js और उसकी सहायक फ़ाइलें: 14 भाषाओं के शब्दकोश, जिनमें होल के नाम और सुझाव शामिल हैं।
  • src/game/localRecords.js: ब्राउज़र में रखे कोर्स रिकॉर्ड।
  • src/audio/audio.js: इफ़ेक्ट और probeTracks में संगीत की मैपिंग।
  • css/style.css: इंटरफ़ेस के रंग, फ़ॉन्ट और रिस्पॉन्सिव स्टाइल।

एक होल जोड़ना, चरण दर चरण

यह वह बदलाव है जो ज़्यादातर खरीदार करते हैं, और मैनुअल इसे कुछ पंक्तियों में बताता है। हमने इसे उस क्रम में फैलाया है जिसमें हम खुद चलते।

  1. नया होल जिस कोर्स का है उसकी फ़ाइल चुनें, जैसे Volcano Forge के लिए lava.js।
  2. किसी मौजूदा होल की परिभाषा की प्रति लें जो आपकी ज़रूरत के करीब लगे।
  3. उसे एक अनोखा id दें। id दोबारा इस्तेमाल करने से सेव की प्रगति उलझ जाती है।
  4. par, tee की जगह और cup की जगह सेट करें, फिर बाधाओं को हिलाएं या बदलें।
  5. नए होल को courses.js में उसके कोर्स में जोड़ें।
  6. उसका दिखने वाला नाम और सुझाव हर उस भाषा के शब्दकोश में जोड़ें जो आप भेजते हैं।
  7. खेलकर देखें: टक्कर, सीमा से बाहर लौटना और तीनों स्टार, छिपे सिक्के समेत।

source/ में एडिट करें, बदली फ़ाइलें game/ में उन्हीं रास्तों पर कॉपी करें, और टेस्ट के लिए फ़ोल्डर को HTTP पर परोसें। package.json में एक serve स्क्रिप्ट है, या आप python -m http.server 8765 चला सकते हैं। Node.js वैकल्पिक है और सिर्फ़ तब चाहिए जब आप चाहें कि npm लाइब्रेरी के वर्ज़न संभाले।

बाकी बदलाव, सही क्रम में

  1. ब्रांड और रंग: css/style.css में लोगो, रंग और फ़ॉन्ट। व्हाइट लेबल की अनुमति है, इसलिए आपका ब्रांड हमारे ब्रांड की जगह ले सकता है।
  2. Locker की कीमतें: economy.js में। सस्ते कॉस्मेटिक एक कैज़ुअल साइट को दोस्ताना बनाते हैं; महंगे एक लंबे कैंपेन को खींचते हैं।
  3. टेक्स्ट: i18n फ़ाइलों में शब्द और सुझाव।
  4. संगीत: दो शामिल ट्रैक की जगह वे रिकॉर्डिंग लगाई जा सकती हैं जिनका लाइसेंस आपके पास है। फ़ाइल कॉपी करें और audio.js (probeTracks) में साफ़ मैपिंग अपडेट करें; दृश्य का संगीत गेमप्ले ट्रैक पर वापस जाता है।
  5. फ़िज़िक्स: constants.js, सबसे आखिर में, और छोटे कदमों में, क्योंकि हर होल मौजूदा मानों के हिसाब से ट्यून किया गया था।

उसी सादे-JavaScript तरीके वाले और बिना किसी 3D लाइब्रेरी वाले एक संबंधित प्रोजेक्ट के लिए, हमारा पूल टेम्पलेट उसी तरह बना है।

Velvet Pool: सादे JavaScript और WebGL2 में 8-बॉल पूल

Sunset Rally: नौ मैचों के कैंपेन वाला 3D टेबल टेनिस

होस्टिंग, MIME टाइप और ऐप रैपर

game/ के भीतर सब कुछ किसी फ़ोल्डर में अपलोड करें, जैसे public_html/puttide/, सबफ़ोल्डर रखें, और पता HTTPS पर खोलें। सर्वर पर npm, PHP, डेटाबेस या अकाउंट की ज़रूरत नहीं। डिस्क से index.html खोलना काम नहीं करता, क्योंकि ब्राउज़र file:// पर मॉड्यूल ब्लॉक करते हैं।

Puttide में एक होस्टिंग विवरण है जो 2D गेम में नहीं होता: फ़िज़िक्स WebAssembly के रूप में चलती है। आपके सर्वर को .js फ़ाइलें JavaScript MIME टाइप के साथ और .wasm को application/wasm के रूप में भेजना होगा। जो होस्ट यह गलत करता है, वह खाली स्क्रीन या मॉड्यूल एरर दिखाता है, इसलिए पहले ही दिन जांचें।

  • ब्राउज़र की ज़रूरत: JavaScript, ES modules, WebAssembly और WebGL2।
  • पोर्टल iframe में, फ़ुल स्क्रीन और ऑटोप्ले की अनुमति दें।
  • टच स्क्रीन पर: निशाना लगाने और पुट के लिए ड्रैग, कैमरा घुमाने के लिए दो उंगलियां, ज़ूम के लिए पिंच।
  • इंस्टॉल होने वाला ऑफ़लाइन ऐप नहीं: हर नई लोडिंग अब भी आपके होस्ट तक जाती है।

नेटिव ऐप प्रोजेक्ट पैकेज में नहीं हैं। अगर आप स्टोर रिलीज़ की योजना बनाते हैं, तो रैपर और असली फ़ोन पर उसके टेस्ट का बजट रखें, क्योंकि 3D फ़िज़िक्स वाला गेम पुराने डिवाइस पर कार्ड गेम से भारी होता है।

शामिल नहीं, और लाइसेंस

यह स्थानीय ब्राउज़र संस्करण है: कोई ऑनलाइन मल्टीप्लेयर या ऑनलाइन कमरे नहीं, कोई ऑनलाइन लीडरबोर्ड नहीं, कोई क्लाउड अकाउंट नहीं, कोई विज्ञापन SDK नहीं, कोई नेटिव ऐप नहीं और कोई होस्टिंग नहीं। कोर्स रिकॉर्ड, दैनिक प्रगति और एक ही डिवाइस के राउंड खिलाड़ी के ब्राउज़र में रहते हैं, और कोई स्कोर अपलोड नहीं होता। सेव ब्राउज़र के origin से जुड़े होते हैं, इसलिए दूसरे डोमेन पर जाने से खिलाड़ी फिर से शुरू करते हैं।

Puttide की सूची कीमत $39 है; 30 नवंबर 2026 तक ब्लैक फ़्राइडे प्रमोशन इसे $33.15 पर लाता है, और एक ऑर्डर में दो या ज़्यादा टेम्पलेट खरीदने पर 5% से 20% की बंडल छूट लगती है। लाइसेंस स्थायी और गैर-विशेष है, एक अंतिम उत्पाद के लिए, आपके या एक क्लाइंट के। आप इसे रीब्रांड कर सकते हैं, कोड, आर्ट और ऑडियो बदल सकते हैं, और खिलाड़ियों को मुफ़्त में या विज्ञापनों के साथ आने दे सकते हैं, लेकिन टेम्पलेट या उसके कोड को अकेले दोबारा बेचना मना है। सपोर्ट छह महीने चलता है, या एक्सटेंशन के साथ बारह महीने; कस्टम होल, इंटीग्रेशन और होस्टिंग अनुरोध पर कोट होते हैं।

लाइसेंस, सपोर्ट और रिफ़ंड की शर्तें पूरी पढ़ें

अक्सर पूछे जाने वाले प्रश्न

क्या मिनी गोल्फ़ का सोर्स कोड TypeScript में है?

नहीं। Puttide source/src और game/src में सादा, फ़ॉर्मेट किया हुआ JavaScript है, हमारी अपनी कोई minified या बंडल की हुई फ़ाइलें नहीं हैं।

क्या मैं अपने होल या कोर्स जोड़ सकता हूं?

हां। कोर्स फ़ाइल में एक होल की प्रति लें, उसे एक अनोखा id दें, par, tee और cup सेट करें, उसे courses.js में जोड़ें और उसका नाम व सुझाव भाषा फ़ाइलों में जोड़ें।

क्या यह Three.js को CDN से लोड करता है?

नहीं। Three.js, Rapier, फ़ॉन्ट और संगीत सब game/ के भीतर हैं, इसलिए गेम को सिर्फ़ आपके होस्ट की ज़रूरत है।

मेरा होस्ट खाली स्क्रीन क्यों दिखाता है?

आम तौर पर MIME टाइप की वजह से। .js को JavaScript और .wasm को application/wasm के रूप में परोसें, गेम HTTP(S) पर खोलें, और जांचें कि WebGL2 चालू है।

क्या दोस्त एक साथ खेल सकते हैं?

हां, दो से चार खिलाड़ी एक ही डिवाइस पर बारी-बारी खेलते हैं। ऑनलाइन खेल इस संस्करण का हिस्सा नहीं है।

क्या यह आपके लिए सही मिनी गोल्फ़ आधार है?

Puttide एक पारिवारिक या खेल पोर्टल, एक ब्रांडेड कोर्स बनाने वाली एजेंसी, और एक डेवलपर के लिए फ़िट बैठता है जो देखना चाहता है कि Three.js और Rapier पढ़ने योग्य कोड में कैसे साथ काम करते हैं। जिस प्रोजेक्ट को पहले दिन से ऑनलाइन राउंड या साझा लीडरबोर्ड चाहिए, उसके लिए यह कमज़ोर फ़िट है।

डेमो में फ़ोन पर एक पूरा कोर्स खेलें, फिर मैनुअल का होल जोड़ने वाला भाग पढ़ें। अगर वह भाग आपको एक दोपहर का काम लगे, तो बाकी गेम पहले से बना है।

Puttide डेमो खेलें और लाइसेंस खरीदें