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

FOnline एक MIT-लाइसेंस प्राप्त C++20 इंजन है जो Fallout 1/2/Tactics और Arcanum की क्लासिक आइसोमेट्रिक शैली में ऑनलाइन मल्टीप्लेयर RPG बनाने के लिए है। यह 2006 से निरंतर विकास में है और सामुदायिक मल्टीप्लेयर RPG को शक्ति देता है, जिसमें Last Frontier को वर्तमान उदाहरण के रूप में उद्धृत किया गया है। डिज़ाइन मल्टीप्लेयर-प्रथम है: एक आधिकारिक सर्वर, प्रतिकृति इकाई स्थिति और क्लाइंट/सर्वर पृथक्करण इकाई मॉडल के मूल में हैं, न कि ऊपर जोड़े गए। एक कोडबेस सर्वर, क्लाइंट, मैप एडिटर, कंटेंट पाइपलाइन और डेस्कटॉप, मोबाइल और ब्राउज़र के लिए पैकेजिंग उत्पन्न करता है। README में वर्णित फीचर क्षेत्र: - मल्टीप्लेयर कोर: इकाई प्रबंधकों, क्लाइंट सत्यापन और अविश्वसनीय इनपुट के कठोर पार्सिंग के साथ आधिकारिक सर्वर रनटाइम; एक साझा इकाई/गुण/प्रोटोटाइप मॉडल जिसमें उत्पन्न टाइप-सुरक्षित गुण रैपर और स्वचालित प्रतिकृति है; TCP सॉकेट, Asio-आधारित सर्वर, ब्राउज़र प्ले के लिए WebSockets, ऑर्डर किया गया UDP और परीक्षणों के लिए इन-प्रोसेस ट्रांसपोर्ट सहित प्लग करने योग्य ट्रांसपोर्ट; एक डेटाबेस फेसडे के पीछे JSON फ़ाइलों, SQLite, MongoDB या इन-मेमोरी के माध्यम से प्लग करने योग्य स्थिरता, जिसमें एसिंक कमिट कतार और रिकवरी लॉग हैं; रिज़्यूमेबल फ़ाइल ट्रांसफर और सर्वर-साइड अपडेट बैकएंड के साथ एक अंतर्निहित क्लाइंट ऑटो-अपडेटर। - स्क्रिप्टिंग: बैकएंड-तटस्थ स्क्रिप्ट सिस्टम पर AngelScript गेमप्ले स्क्रिप्टिंग; मूल API को ///@ एनोटेशन से कोड जनरेशन द्वारा स्क्रिप्ट में निर्यात किया जाता है, जिससे विधियाँ, गुण, घटनाएँ, दूरस्थ कॉल और एनम सिंक में रहते हैं; स्क्रिप्ट/मूल सीमा में शून्यता लागू की जाती है; मूल डिबगिंग के साथ स्क्रिप्ट डिबगिंग समर्थित है। - रेंडरिंग: OpenGL, Direct3D, Vulkan और SDL_GPU बैकएंड के साथ-साथ सर्वर और CI के लिए हेडलेस/नल मोड; प्रभाव एक बार GLSL में लिखे जाते हैं, glslang के माध्यम से SPIR-V में संकलित होते हैं और SPIRV-Cross के माध्यम से प्रति बैकएंड अनुवादित होते हैं; 3D कैरेक्टर मॉडल (FBX), कण, वीडियो प्लेबैक और आधुनिक (Ogg/Vorbis) और क्लासिक Fallout प्रारूपों में ऑडियो के साथ स्प्राइट-आधारित आइसोमेट्रिक दुनिया; ImGui डेवलपर ओवरले के साथ विंडोड, बॉर्डरलेस-फुलस्क्रीन और मल्टी-क्लाइंट वर्चुअल-विंडो मोड। - विश्व और मैप: दूरी, दिशा और पड़ोस के लिए साझा सहायकों के साथ हेक्सागोनल और वर्ग ग्रिड ज्यामिति मोड; पथ खोज, लाइन ट्रेसिंग, गति संदर्भ और सर्वर प्राधिकरण के लिए डिज़ाइन किया गया एक ब्लॉकिंग मॉडल। - कंटेंट पाइपलाइन और उपकरण: एक बेकिंग पाइपलाइन प्रोटोटाइप, मैप, डायलॉग, स्थानीयकृत टेक्स्ट, प्रभाव, छवियाँ, मॉडल और स्क्रिप्ट को संस्करणित रनटाइम संसाधन पैक में बदल देती है; PNG/TGA के साथ क्लासिक 2D एसेट प्रारूप (Fallout FRM, Arcanum ART और अन्य विरासत प्रारूप) आयात करती है; इंजन पर ही निर्मित इंटरैक्टिव उपकरणों में हेडलेस स्वचालन के साथ मैप एडिटर, कंटेंट एडिटर, एसेट एक्सप्लोरर और पार्टिकल एडिटर शामिल हैं। - इंजीनियरिंग गुणवत्ता: उत्पन्न प्रति-सूट लक्ष्यों, सैनिटाइज़र रन और कवरेज के साथ Catch2 यूनिट परीक्षण; हर Clang टूलचेन पर -Werror के रूप में लागू Clang थ्रेड सेफ्टी विश्लेषण; सख्त स्मार्ट-पॉइंटर और शून्यता शब्दावली; हमेशा-ऑन स्टैक ट्रेस, नियतात्मक अपवाद-सुरक्षा नियम और OOM-पर-समाप्ति आवंटन मॉडल; Tracy प्रोफाइलर एकीकरण। वास्तुकला: इंजन एक पुन: प्रयोज्य सबमॉड्यूल है; एक गेम रिपॉजिटरी इसे Engine/ के रूप में जोड़ती है, स्टेज्ड CMake पाइपलाइन को अपने स्वयं के कॉन्फ़िगरेशन पर इंगित करती है और प्रोजेक्ट-नामित बिल्ड लक्ष्य प्राप्त करती है। गेम कंटेंट, स्क्रिप्ट, कॉन्फ़िगरेशन, ब्रांडिंग और रिलीज़ नीति का मालिक है। प्रोटोटाइप, मैप, डायलॉग, स्थानीयकरण और GUI जैसी कंटेंट सादे-पाठ एसेट के रूप में लिखी जाती है और रनटाइम पैक में बेक की जाती है। समर्थित लक्ष्य Windows, Linux, macOS, Android, iOS और Web (WebAssembly) हैं; README नोट करता है कि हर फीचर हर प्लेटफ़ॉर्म पर समान रूप से परिपक्व नहीं है। रिपॉजिटरी लेआउट: Source/ (Applications, Client, Server, Common, Frontend, Scripting, Tools, Essentials, Tests), BuildTools/ (स्टेज्ड CMake पाइपलाइन, कोड जनरेशन, टूलचेन, पैकेजिंग), Resources/, ThirdParty/ (वेंडर किया गया SDL, AngelScript, Asio, ImGui, glslang, SPIRV-Cross, Tracy और अधिक) और Docs/। अनुरक्षित दस्तावेज़ वास्तुकला, इकाई मॉडल, मैप और गति, नेटवर्किंग, स्थिरता, क्लाइंट और सर्वर रनटाइम, रेंडरिंग, स्क्रिप्टिंग, शून्यता, बिल्ड और बेकिंग पाइपलाइन, उपकरण, परीक्षण, अपवाद सुरक्षा, स्मार्ट पॉइंटर, थ्रेड सुरक्षा विश्लेषण और प्लेटफ़ॉर्म डिबगिंग को कवर करते हैं।