# गेम लूप तक पहुंचने से पहले लेवल डेटा की जांच करें

> स्पष्ट फ़ॉलबैक व्यवहार के साथ संरचना, संख्यात्मक सीमा, संदर्भ और पहुंच योग्यता को मान्य करके खेलने से पहले विकृत गेम स्तरों को अस्वीकार करें।

- URL: https://oneshotgems.ai/hi/topics/game-level-data-validation
- श्रेणी: गेम डेवलपर के लिए
- प्रकार: गाइड
- अपडेट किया गया: 5 अक्टूबर 2026

एक स्तर की फ़ाइल वैध JSON हो सकती है और फिर भी एक अनपेक्षित चरण का वर्णन कर सकती है: एक लापता निकास, एक आउट-ऑफ-रेंज स्पॉन पॉइंट, या एक दरवाजा जो बिना चाबी का संदर्भ देता है। पार्सिंग और गेम सत्यापन को अलग-अलग चरण मानें। पार्सिंग जाँचता है कि पाठ में वैध JSON व्याकरण है; सत्यापन यह जांचता है कि परिणामी संरचना आपके गेम द्वारा अपेक्षित नियमों को पूरा करती है या नहीं। इससे पहले कि ये समस्याएँ खेल के दौरान किसी अज्ञात दुर्घटना का रूप ले लें या कोई खिलाड़ी बिना वैध मार्ग वाले कमरे में फँस जाए, इन मुद्दों को पकड़ लें।

## आकार और अनुमत श्रेणियों को मान्य करें

id, width, height, tiles, spawn, exits और entities जैसे आवश्यक फ़ील्ड के साथ स्तर की संरचना तय करें। जाँचें कि आयाम खेल की समर्थित सीमा में धनात्मक पूर्णांक हों, tiles array में ठीक width × height प्रविष्टियाँ हों, और हर tile ज्ञात प्रकार का हो। ग्रिड के अनुसार entities के निर्देशांक सत्यापित करें और दरवाज़ों, चाबियों, स्विचों तथा उद्देश्यों के लिए अद्वितीय ID अनिवार्य करें। केवल यह जाँचना पर्याप्त नहीं कि मान संख्या है; NaN जैसे या सीमा से बाहर मानों को स्पष्ट रूप से अस्वीकार करें।

वैकल्पिक और आवश्यक फ़ील्ड अलग रखें। छोड़ी गई सजावटी पैलेट के लिए डिफ़ॉल्ट मान दें, लेकिन अगर इससे पहेली बदल सकती है तो लापता spawn बिंदु या निकास चुपचाप न गढ़ें। levels[2].entities[4].x जैसे पथ के साथ त्रुटि लौटाएँ ताकि सामग्री लेखक खराब फ़ील्ड जल्दी ढूँढ़ सके।

## रिश्तों और खेलने योग्य अपरिवर्तनीयों की जाँच करें

संरचनात्मक सत्यापन के बाद, क्रॉस-फ़ील्ड नियमों की जाँच करें। प्रत्येक बंद दरवाजे में मौजूदा चाबी का संदर्भ होना चाहिए; प्रत्येक अनिवार्य कुंजी उसके दरवाजे से पहले पहुंच योग्य होनी चाहिए; निकास को ठोस टाइल के अंदर नहीं बैठना चाहिए। स्पॉन से पथ खोज चलाएँ और पुष्टि करें कि गेम के मूवमेंट नियमों के तहत आवश्यक लक्ष्यों तक पहुँचा जा सकता है। यदि दुश्मन या गतिशील प्लेटफ़ॉर्म पहुंच को प्रभावित करते हैं, तो एक सरल ग्रिड पथ का दावा करने के बजाय एक अधिक विशिष्ट सत्यापनकर्ता या प्लेथ्रू परीक्षण का उपयोग करें जो साबित करता है कि पूरा स्तर हल करने योग्य है।

## सुरक्षित रूप से विफल रहें और सत्यापनकर्ता का स्वयं परीक्षण करें

MDN के अनुसार, JSON अमान्य होने पर JSON.parse एक SyntaxError देता है। इसलिए पार्सिंग की त्रुटियों को स्कीमा की त्रुटियों से अलग संभालें। विकास के दौरान सटीक फ़ाइल और टूटे हुए नियम की जानकारी दें। खिलाड़ियों वाले बिल्ड में आंशिक डेटा से शुरू करने के बजाय कोई ज्ञात वैकल्पिक स्तर लोड करें या स्पष्ट रूप से बताएं कि स्तर उपलब्ध नहीं है। अनुपस्थित फ़ील्ड, गलत संदर्भ, अवरुद्ध रास्तों और एक छोटे वैध स्तर के परीक्षण मामले रखें; वैध मामला उस वैलिडेटर से बचाता है जो हर स्तर को अस्वीकार कर देता है।

## सवाल

**क्या सफल JSON.parse एक स्तरीय फ़ाइल पर भरोसा करने के लिए पर्याप्त है?** नहीं, पार्सिंग सिंटैक्स की पुष्टि करता है, न कि आपके गेम-विशिष्ट आकार, श्रेणियों, संदर्भों या सॉल्वैबिलिटी नियमों की। गेमप्ले कोड के स्तर को पार करने से पहले उनमें से प्रत्येक को सत्यापित करें।

**क्या गेम को अमान्य स्तरों को स्वचालित रूप से सुधारना चाहिए?** केवल सुरक्षित, स्पष्ट चूक के लिए। यदि किसी लापता उद्देश्य या मार्ग की मरम्मत करने से डिज़ाइन बदल जाता है, तो स्तर को अस्वीकार कर दें और दोष को छिपाने के बजाय ज्ञात फ़ॉलबैक का उपयोग करें।

## अपनी जिज्ञासा के साथ आगे बढ़ें

- [रिलीज़ से पहले तैयार की गई गेम सामग्री का परीक्षण करें](https://oneshotgems.ai/hi/topics/testing-generated-game-content): ठोस सामग्री नियमों, खेलने की क्षमता की जांच और लगातार खिलाड़ी को मिलने वाली प्रतिक्रिया के आधार पर उत्पन्न स्तरों, संवाद और वस्तुओं के विवरणों की समीक्षा करें।
- [गेम निर्देश के लिए स्वीकृति मानदंड लिखें](https://oneshotgems.ai/hi/topics/game-prompt-acceptance-criteria): स्पष्ट कार्यों, परिणामों, विफलता के मामलों और जानबूझकर छोटे पहले दायरे के साथ एक गेम विचार को परीक्षण योग्य स्वीकृति मानदंडों में अनुवाद करें।

## आगे पढ़ें

- [एमडीएन JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse)

---
मूल पेज: https://oneshotgems.ai/hi/topics/game-level-data-validation
