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

Prowl एक ओपन-सोर्स 3D गेम इंजन है जो शुद्ध C# में नवीनतम .NET पर लिखा गया है और MIT लाइसेंस के तहत जारी किया गया है। यह स्पष्ट रूप से Unity से प्रेरित है: इसमें समान एडिटर और स्क्रिप्टिंग API है, GameObject और MonoBehaviour कंपोनेंट आर्किटेक्चर का उपयोग करता है, और Unity प्रोजेक्ट्स को पोर्ट करना यथासंभव कम घर्षण वाला बनाने का लक्ष्य रखता है जबकि छोटा और अनुकूलन योग्य (KISS) बना रहता है। एडिटर, रेंडरर, फिजिक्स, ऑडियो और UI के पूर्ण पुनर्लेखन के बाद यह प्रोजेक्ट वर्तमान में 1.0-preview पर है; पुराने संस्करणों के प्रोजेक्ट संगत नहीं हैं और कोई माइग्रेशन पथ नहीं है, तथा 1.0 से पहले और ब्रेकिंग बदलाव संभव हैं। एडिटर और वर्कफ़्लो: एक पूर्ण एडिटर Scene View, Hierarchy, Inspector, Project Browser, Console और Game View प्रदान करता है, जिसमें कस्टम कंपोनेंट/प्रॉपर्टी/सीन-व्यू एडिटर, ट्रांसफ़ॉर्म गिज़्मो (मूव, रोटेट, स्केल), अनडू/रीडू, डॉक करने योग्य और आकार बदलने योग्य पैनल जिनमें लेआउट स्थायित्व है, ड्रैग और ड्रॉप, मल्टी-सेलेक्ट, खोज/फ़िल्टरिंग, एसेट थंबनेल और 3D प्रीव्यू, एनीमेशन कर्व और ग्रेडिएंट एडिटर, रीबाइंड करने योग्य शॉर्टकट, थीमिंग, इन-एडिटर प्लेटेस्टिंग और स्क्रिप्ट हॉट-रीलोडिंग शामिल हैं। एडिटर अंग्रेज़ी, जर्मन, स्पेनिश, फ्रेंच, इतालवी, जापानी, कोरियाई, पोलिश, पुर्तगाली, रूसी, तुर्की और चीनी में स्थानीयकृत है। असेंबली डेफिनिशन के साथ मैनेज्ड और नेटिव प्लगइन्स समर्थित हैं। रनटाइम एडिटर से पूरी तरह स्वतंत्र है, इसलिए कोई गेम इसे सीधे संदर्भित कर सकता है और बिना किसी एडिटर निर्भरता के शिप कर सकता है। रेंडरिंग: Silk.NET के माध्यम से OpenGL बैकएंड जिसमें समर्पित रेंडर थ्रेड और एक्सटेंसिबल पाइपलाइन (कस्टम पाइपलाइन समर्थित) है। डिफ़ॉल्ट फॉरवर्ड-लिट पाइपलाइन एक पतले G-buffer प्री-पास (डेप्थ, नॉर्मल्स, मोशन, रफनेस, मेटालिक) का उपयोग करती है। यह HDR और PBR मेटालिक वर्कफ़्लो प्रदान करती है जिसमें अल्बेडो, नॉर्मल, सरफेस और एमिशन मैप्स; बोन एनीमेशन और ब्लेंडशेप्स के साथ मेश और स्किन्ड मेश रेंडरर; लाइन रेंडरर; ग्रिड, आइसोमेट्रिक और स्वचालित अल्फा-आधारित शीट स्लाइसिंग के साथ स्प्राइट्स और एक स्प्राइट एडिटर; रेंडर टेक्सचर और Texture3D; GPU इंस्टेंसिंग और फ्रस्टम कलिंग शामिल हैं। लाइटिंग में पॉइंट, स्पॉट और डायरेक्शनल लाइट्स शैडो मैपिंग के साथ, डायरेक्शनल लाइट्स के लिए कैस्केडेड शैडो मैप्स (चार कैस्केड तक), पॉइंट लाइट्स के लिए क्यूबमैप शैडो और डायनामिक पैकिंग वाला शैडो एटलस शामिल हैं। पोस्ट-प्रोसेसिंग में HDR टोनमैपिंग (ACES, Reinhard, Uncharted, Filmic, Melon, AgX), ब्लूम, FXAA, TAA, SMAA, GTAO, स्टोकेस्टिक SSR, बोके डेप्थ ऑफ फील्ड, वॉल्यूमेट्रिक फॉग और सिनेमैटिक इफेक्ट्स शामिल हैं। इसके अलावा: ट्रांसपेरेंसी, रिफ्रैक्शन/हीट-हेज़/फ्रॉस्टेड ग्लास के लिए डेप्थ-अवेयर ग्रैब पास, प्रोसीजरल/क्यूबमैप/ग्रेडिएंट स्काईबॉक्स, क्वाडट्री LOD, हाइटमैप और स्प्लैटमैप पेंटिंग वाला टेरेन सिस्टम, GPU-इंस्टेंस्ड ग्रास, LOD दूरी के साथ ट्री रेंडरिंग, होल और एक समर्पित टेरेन एडिटर, साथ ही एमिशन, ओवर-लाइफटाइम मॉड्यूल, कोलिज़न और UV एनीमेशन के साथ लोकल या वर्ल्ड स्पेस में GPU-इंस्टेंस्ड पार्टिकल सिस्टम। एक कस्टम शेडर भाषा #include, मल्टी-पास और शेडर कीवर्ड/वेरिएंट का समर्थन करती है; UV अनरैपिंग और बेक्ड लाइट प्रोब्स के साथ प्रोग्रेसिव लाइटमैपर शामिल हैं। फिजिक्स Jitter Physics 2 का उपयोग करता है: बॉक्स, स्फीयर, कैप्सूल, सिलेंडर, कोन, कन्वेक्स हल, मेश, मॉडल और टेरेन कोलाइडर; सस्पेंशन और स्लिप-आधारित ग्रिप वाला रेकास्ट-आधारित व्हील कोलाइडर; कई जॉइंट और कंस्ट्रेंट (बॉल सॉकेट, हिंज, हिंज एंगल, फिक्स्ड एंगल, कोन लिमिट, डिस्टेंस लिमिट, ट्विस्ट एंगल, प्रिज़्मेटिक, यूनिवर्सल, पॉइंट ऑन लाइन, पॉइंट ऑन प्लेन, एंगुलर और लीनियर मोटर्स); एक कैरेक्टर कंट्रोलर; ट्रिगर वॉल्यूम; कोलिज़न लेयर्स और LayerMask फ़िल्टरिंग; और रेकास्टिंग तथा शेप क्वेरी API। ऑडियो MiniAudio का उपयोग करता है जिसमें एटेन्यूएशन और डॉपलर सहित स्पेशियल 3D ऑडियो, WAV/MP3/OGG/FLAC समर्थन, एक इफेक्ट चेन (डिले, डिस्टॉर्शन, बाइक्वाड फ़िल्टर, रीवर्ब, फेज़र) और कस्टम IAudioEffect इम्प्लीमेंटेशन शामिल हैं। अन्य सिस्टम: Prowl.Echo के माध्यम से सीरियलाइज़ेशन; टैग और लेयर्स; फॉग और एम्बिएंट लाइटिंग वाले सीन; नेस्टिंग, अप्लाई/रिवर्ट/ब्रेक-इंस्टेंस और ओवरराइड ट्रैकिंग वाले प्रीफैब; प्रोजेक्ट सेटिंग्स; dotnet build के माध्यम से स्क्रिप्ट कंपाइलेशन; कंपोज़िट और प्रोसेसर, .inputactions एसेट्स और एक समर्पित एडिटर, एक्शन फेज़ और कीबोर्ड/माउस/गेमपैड बाइंडिंग वाला इनपुट एक्शन सिस्टम; GameObject-आधारित UI जिसमें RectTransform-संचालित लेआउट, बटन, स्लाइडर, लेआउट ग्रुप और ड्रैग-एंड-ड्रॉप हैंडलर के साथ वर्ल्ड-स्पेस UI शामिल है; इंस्पेक्टर-कॉन्फ़िगर करने योग्य स्थायी कॉलबैक के लिए Prowl Actions; और मैट्रिसेस (Float4x4), क्वाटरनियन, Transform2D और AABB, बाउंड्स, फ्रस्टम, कोन, रे, प्लेन, लाइन सेगमेंट और रेक्ट जैसी आकृतियों वाली गणित लाइब्रेरी। एसेट पाइपलाइन मेटा फ़ाइलों के साथ GUID-आधारित संदर्भों, इम्पोर्ट कैशिंग और ऑटो-रीइम्पोर्ट के लिए फ़ाइल वॉचिंग, एट्रिब्यूट्स के माध्यम से कस्टम इम्पोर्टर, डिटरमिनिस्टिक GUID वाले सब-एसेट्स, फॉरवर्ड और रिवर्स डिपेंडेंसी ट्रैकिंग और थ्रेडेड लोडिंग का उपयोग करती है। समर्थित फ़ॉर्मेट में मॉडल GLTF, GLB, OBJ और FBX; टेक्सचर PNG, JPG, BMP, TGA, PSD, HDR, DDS और EXR; तथा ऑडियो WAV, MP3, OGG और FLAC शामिल हैं। बिल्ड सिस्टम पैक्ड .prowlpak एसेट फ़ाइलों के साथ स्टैंडअलोन एप्लिकेशन एक्सपोर्ट करता है, केवल उपयोग किए गए एसेट्स को एक्सपोर्ट करता है, प्रति-प्लेटफ़ॉर्म बिल्ड प्रोफाइल और Windows, Mac और Linux के लिए समर्थन प्रदान करता है। कोडबेस रनटाइम और एडिटर में 450+ टेस्ट के साथ यूनिट टेस्टेड है। शुरुआत करने के लिए .NET 10 आवश्यक है। प्रीबिल्ट 1.0-preview रिलीज़ उपलब्ध हैं, या रिपॉज़िटरी को क्लोन करके सॉल्यूशन को Visual Studio 17.8+, VS Code या Rider में खोला जा सकता है। यह प्रोजेक्ट एडिटर और एक्सपोर्टेड बिल्ड दोनों के लिए क्रॉस-प्लेटफ़ॉर्म है, और Discord सर्वर के माध्यम से सामुदायिक सहायता उपलब्ध है।