इस प्रोजेक्ट के बारे में
Gamend मल्टीप्लेयर गेम्स के लिए एक ओपन-सोर्स बैकएंड है, जिसे Elixir में लिखा गया है। इसका उद्देश्य स्वयं-होस्ट करना है: खरीदने के लिए कोई होस्टेड सेवा नहीं है, और यह प्रोजेक्ट स्वयं को गेम के चारों ओर सर्वर-साइड परत के रूप में प्रस्तुत करता है, न कि गेम के रूप में। गेम अभी भी स्थानीय रूप से रेंडर और सिम्युलेट होता है, जबकि सर्वर-साइड स्क्रिप्टिंग वास्तविक लॉजिक को सर्वर पर चलाने देती है, इसलिए स्कोरिंग, रिवॉर्ड, मैचमेकिंग नियम और वैलिडेशन वहाँ तय होते हैं जहाँ खिलाड़ी उन्हें संपादित नहीं कर सकते। बैकग्राउंड और शेड्यूल्ड जॉब्स भी वहीं चलते हैं।
README में वर्णित फीचर सेट:
- Auth: ईमेल/पासवर्ड, मैजिक लिंक, OAuth (Discord, Google, Apple, Facebook, GitHub, Steam) और JWT API टोकन।
- Users: प्रोफाइल, मेटाडेटा, डिवाइस टोकन और अकाउंट लाइफसाइकल।
- Lobbies: होस्ट-प्रबंधित, अधिकतम उपयोगकर्ता, छिपी/लॉक की गई स्थितियाँ, पासवर्ड और रीयल-टाइम अपडेट।
- Groups: भूमिकाओं, जॉइन अनुरोधों और आमंत्रणों के साथ सार्वजनिक, निजी या छिपे समुदाय।
- Parties: आमंत्रण-आधारित अस्थायी समूह, डिफ़ॉल्ट रूप से 2–32 खिलाड़ी, लॉबी के साथ एकीकृत।
- Friends: अनुरोध, स्वीकार/अस्वीकार और ब्लॉकिंग।
- Chat: लॉबी, समूह, पार्टी और मित्र सीधे संदेश, रीड कर्सर और अपठित गिनती के साथ।
- Notifications: सामाजिक घटनाओं के लिए टाइप्ड सूचनाएँ, पढ़ी/अपठित स्थिति और रीयल-टाइम डिलीवरी, साथ ही प्रति डिवाइस टोकन रूट किया गया FCM और APNs-डायरेक्ट मोबाइल पुश।
- Quests and progression: एक इवेंट-ड्रिवन इंजन जो उपलब्धियों, दैनिक/साप्ताहिक क्वेस्ट, इवेंट विंडो और चेन को कवर करता है, अर्थव्यवस्था में exactly-once रिवॉर्ड के साथ।
- Leaderboards: वैश्विक और प्रति-उपयोगकर्ता रैंकिंग।
- Payments: Stripe Checkout, Google Play, App Store और Steam प्रोवाइडर फ्लो, रसीद सत्यापन, वेबहुक, एंटाइटलमेंट, रिफंड और एडमिन टूल के साथ।
- Key-value store: एक्सेस कंट्रोल हुक के साथ सर्वर-साइड स्टोरेज।
- Server scripting: सर्वर इवेंट्स पर हुक, जैसे लॉगिन, लॉबी बनाई गई या क्वेस्ट पूरी हुई, Elixir, GDScript (इंटरप्रेटेड के बजाय कंपाइल्ड) या किसी भी BEAM भाषा में लिखे गए।
- Background jobs: सर्वर हुक से टिकाऊ, पुनः प्रयास योग्य बैकग्राउंड और क्रॉन जॉब्स, Postgres या SQLite पर।
- Economy and inventory: वर्चुअल-करेंसी वॉलेट, एक परमाणु, ऑडिट योग्य लेजर और आइटम स्टैक के साथ; सर्वर-प्राधिकृत grant/spend/consume, लाइव बैलेंस अपडेट के साथ।
- Object storage: अवतार और UGC अपलोड, प्लग करने योग्य बैकएंड के साथ, या तो स्थानीय डिस्क या कोई भी S3-संगत सेवा जैसे AWS S3, Cloudflare R2 या MinIO।
- Admin portal: संसाधनों के प्रबंधन के लिए एक अंतर्निहित वेब डैशबोर्ड।
क्लाइंट SDK Godot (Godot Asset Library पर भी सूचीबद्ध), Balaur ऐडऑन के माध्यम से Rune, प्लग करने योग्य ट्रांसपोर्ट के साथ C++17, npm पर JavaScript, और कस्टम हुक में IDE ऑटोकम्पलीट के लिए स्टब मॉड्यूल का Elixir SDK के लिए प्रदान किए जाते हैं। Godot, Balaur और C++ SDK हर बार main में बदलाव होने पर पुनर्निर्मित होते हैं और नवीनतम रिलीज़ से जोड़े जाते हैं।
स्थानीय रूप से चलाने के लिए Elixir 1.20 और Erlang/OTP 29, WebRTC नेटिव निर्भरता (ex_sctp) के लिए Rust, और वैकल्पिक रूप से PostgreSQL आवश्यक है — डेवलपमेंट डिफ़ॉल्ट रूप से SQLite का उपयोग करता है, डेटाबेस एडाप्टर कंपाइल समय पर चुना जाता है। पहला रन `cp .env.example .env`, `mix setup`, `mix dev.start`, फिर localhost:4000 पर जाना है। Docker Compose फाइलें एकल इंस्टेंस और nginx, PostgreSQL और Redis के साथ मल्टी-इंस्टेंस सेटअप को कवर करती हैं। डिप्लॉयमेंट मार्गदर्शन और एक स्टार्टर टेम्पलेट fly.io पर प्रोडक्शन डिप्लॉयमेंट को लक्षित करते हैं।
README में मशीन आकार, मेमोरी और मासिक मूल्य के अनुसार समवर्ती निष्क्रिय खिलाड़ियों की तुलना करने वाला एक प्रदर्शन चार्ट भी शामिल है, जिसमें एक कोर और 3 GB के साथ 37,854 समवर्ती निष्क्रिय खिलाड़ियों का मापा गया आंकड़ा एक प्रकाशित तुलना आंकड़े के विरुद्ध उद्धृत किया गया है, साथ ही पुनरुत्पादन विवरण के लिए प्रदर्शन और लोड-टेस्टिंग दस्तावेज़ के लिंक दिए गए हैं। AI टूलिंग के लिए एक AGENTS.md फाइल प्रदान की गई है।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.