5 पॉइंट द्वारा GN⁺ 2025-04-29 | 3 टिप्पणियां | WhatsApp पर शेयर करें
  • Architect of Ruin डेवलपमेंट टीम ने शुरुआत में Bevy इंजन और Rust के साथ विकास शुरू किया, लेकिन व्यावहारिक समस्याओं के कारण Unity और C# पर स्विच किया
  • Rust और Bevy की खूबियों के बावजूद, सहयोग, उच्च-स्तरीय abstraction की आवश्यकता, बार-बार API बदलाव, AI learning efficiency में कमी, modding की सीमाएं जैसी समस्याएं सामने आईं
  • Unity को परखने के लिए 3 मुख्य फीचर पोर्ट किए गए, और सिर्फ 3 दिनों में सफलतापूर्वक सत्यापित कर 6 हफ्तों में पूरा पोर्टिंग समाप्त किया गया
  • स्विच के बाद कोड की मात्रा घटी, डेवलपमेंट की गति बढ़ी, और ecosystem tools का उपयोग संभव हुआ, जिससे डेवलपमेंट संतुष्टि काफी बढ़ गई
  • टीम ने जोर देकर कहा कि Rust और Bevy के प्रति उनका लगाव अब भी गहरा है, लेकिन प्रोजेक्ट की जरूरतों को पूरा करने के लिए व्यावहारिक चुनाव करना पड़ा

Bevy और Rust में शुरुआती डेवलपमेंट

  • Bevy ECS मॉडल और Rust की खास compile-time checks का आनंद लेते हुए टीम ने तेज़ refactoring और stability का अनुभव किया
  • tilemap, skeletal animation, custom rendering pipeline जैसी चीज़ें Bevy में सीधे लागू की गईं
  • Bevy community के उत्साह और सक्रिय चर्चा संस्कृति से टीम को काफी प्रेरणा मिली

Emergent Problems: उम्मीद से ज्यादा गंभीर समस्याएं

  • सहयोग की समस्या: Rust beginners टीम सदस्यों के लिए Rust की जटिलता learning barrier बन गई, जिससे योगदान की गति धीमी हो गई
  • उच्च-स्तरीय abstraction की कमी
    • gameplay ideas को जल्दी कोड में बदलना मुश्किल हो गया
    • rapid prototyping के लिए जरूरी लचीलापन कम था
  • बार-बार API बदलाव: Bevy के तेज़ विकास के कारण API instability और हर अपडेट में आने वाले regression bugs से टीम थक गई
  • AI learning support की कमी: C# और Unity के लिए AI-assisted learning बेहतर थी, लेकिन Rust और Bevy में जानकारी की कमी ने productivity घटाई
  • modding की सीमाएं: टीम ने माना कि Rust/Bevy environment में स्थिर scripting और ABI compatibility सुनिश्चित करना कठिन है

स्विच का फैसला: Unity प्रयोग

  • Unreal, Unity, Godot, Bevy को बनाए रखना, और अपना इंजन बनाना—इन विकल्पों का तुलनात्मक विश्लेषण किया गया
  • Unity ने सीखने में आसानी, productivity, collaboration, और modding की संभावना के मामले में सबसे ज्यादा अंक हासिल किए

10% प्रयोग

  • tilemap, character (Spine), UI निर्माण—इन 3 मुख्य कामों को 3 हफ्तों के भीतर टेस्ट करने की योजना बनाई गई
  • नतीजतन सिर्फ 3 दिनों में 3ों काम पूरे हो गए, और स्विच का फैसला कर लिया गया

पोर्टिंग प्रक्रिया और परिणाम

  • 6 हफ्तों में सभी systems और content को Unity में फिर से लागू किया गया
  • कोड की मात्रा में कमी, boilerplate हटना, और डेवलपमेंट स्पीड बढ़ना अनुभव किया गया
  • AI learning support बेहतर हुई और Unity ecosystem tools (AStar Pathfinding आदि) का सक्रिय उपयोग संभव हुआ

उसके बाद की स्थिति

  • Architect of Ruin फिलहाल Unity-आधारित विकास में है और तेज़ी से ideas लागू करने तथा उच्च productivity बनाए हुए है
  • Rust और Bevy के प्रति गहरा सम्मान अब भी बरकरार है, लेकिन प्रोजेक्ट के लिए उपयुक्त चुनाव जरूरी था—इस पर जोर दिया गया
  • आगे Unity-आधारित implementation details और पोर्टिंग अनुभव अलग से साझा करने की योजना है

निष्कर्ष

  • टीम ने माना कि शुरुआत में विकल्पों का निष्पक्ष मूल्यांकन करने में चूक हुई
  • दिशा बदलने में समय लगाया, लेकिन नतीजतन और ज्यादा समय बचा—ऐसा उनका आकलन है
  • डेवलपमेंट vision को साकार करने के लिए सिर्फ instinct नहीं, बल्कि व्यावहारिक निर्णय भी महत्वपूर्ण हैं

3 टिप्पणियां

 
aer0700 2025-04-30

मुझे लगता है शायद कोई GUI engine होगा जो Rust को scripting language की तरह इस्तेमाल करता हो, लेकिन production level पर इस्तेमाल होने वाला कुछ है या नहीं, यह पता नहीं है। Rust से गेम बनाने को लेकर कभी-कभी असफलता के उदाहरण? सामने आते हैं, और हाँ... असफलता की कहानियाँ आना तो समझ में आता है, लेकिन सफलता के उदाहरणों की बात ज़्यादा सुनाई नहीं देती, इसलिए थोड़ा अटपटा लगता है। जो लोग इसे अच्छी तरह इस्तेमाल कर रहे हैं, वे भी कहीं न कहीं तो होंगे।

 
qwqwhs 2025-04-30

उल्टा, क्या ऐसा नहीं हो सकता कि अगर इसे सही तरह से इस्तेमाल किया जाए, तो सब लोग कम से कम इतना तो पहले से ही लिख रहे हों, इसलिए पोस्ट ही नहीं करते?

 
GN⁺ 2025-04-29
Hacker News राय
  • Rust के साथ गेम प्रोजेक्ट चलाते हुए विफल होने का एक और मामला सामने आया। यह अफसोसजनक है

    • मैं लगभग 5 साल से Rust में एक metaverse client विकसित कर रहा हूँ, और इसमें बहुत ज़्यादा समय लग रहा है
    • किसी और ने C#/Unity में इसी तरह का प्रोजेक्ट 2 साल से कम समय में किया
    • Rust 3D game development का user base बहुत छोटा है
    • Rust में AAA title बनाने का कोई उदाहरण नहीं है, और performance समस्याएँ हल करने वाला भी कोई नहीं दिखता
    • इस्तेमाल किया जा रहा stack Rend3/Egui/Winit/Wgpu/Vulkan है, और Vulkan को छोड़कर बाकी में बहुत bugs हैं
    • event loop को own करना चाहने वाले अलग-अलग crates बहुत ज़्यादा हैं
    • crates हर कुछ महीनों में refactor हो जाते हैं, जिससे API अक्सर टूट जाती है
    • Rust में dereference करना कठिन है
    • Rust को single owner और dereference के लिए एक consistent तरीका चाहिए
    • Rust के traits object नहीं हैं, इसलिए वे object hierarchy बनाने के लिए उपयुक्त नहीं हैं
  • यह इस बात का अच्छा सबक लगता है कि commercial game engines ने game development पर कब्ज़ा क्यों किया

    • गेम बनाने के लिए बहुत कुछ करना पड़ता है, लेकिन उनमें से ज़्यादातर समस्याएँ पहले ही हल की जा चुकी हैं
  • मुझे Rust, C++ के विकल्प के रूप में पसंद है, लेकिन मेरा मानना है कि अधिकांश projects के लिए C++ उपयुक्त नहीं है

    • लगता है कई लोग Rust को ज़्यादा efficient समझकर चुनते हैं
  • Rust game development किसी frontier development जैसा है, और इसमें बहुत काम करना पड़ता है

    • Rust अभी तैयार नहीं है
  • मुझे Rust पसंद है, लेकिन fast iteration मुश्किल है

    • मैंने Bevy इस्तेमाल किया, लेकिन फिर Godot पर लौट गया
  • मैंने अपने project में Rust की जगह Go अपनाया, और iteration speed तेज़ हो गई

    • code ज़्यादा fragile है, लेकिन project की प्रकृति को देखते हुए मुझे यह सही फैसला लगता है
  • Rust ecosystem की ऊँची volatility एक अप्रत्याशित कमी है

    • crates अक्सर छोड़ दिए जाते हैं, और मुझे लगता है कि इसकी वजह वे लोग हैं जो मुख्य रूप से Rust ही इस्तेमाल करना चाहते हैं
  • एक developer C में game engine बनाता है, और Lua में game विकसित करता है

    • game engine और game के बीच स्पष्ट अलगाव है
    • 'Sapiens' नाम का game Steam पर सफलतापूर्वक रिलीज़ हुआ
  • Rust में काम करना लगभग हमेशा अधिक कठिन होता है

    • यह व्यक्तिगत अनुभव पर आधारित राय है
  • project का लक्ष्य यह था कि उसका भाई, जो coding नहीं करता, भी योगदान दे सके

    • ऐसा महसूस होता था कि लगातार latest version पर upgrade करते रहना चाहिए
    • Unity इस्तेमाल करने वाले studios आम तौर पर तब तक version upgrade नहीं करते जब तक कोई खास bug ठीक न हो जाए