- 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 टिप्पणियां
मुझे लगता है शायद कोई GUI engine होगा जो Rust को scripting language की तरह इस्तेमाल करता हो, लेकिन production level पर इस्तेमाल होने वाला कुछ है या नहीं, यह पता नहीं है। Rust से गेम बनाने को लेकर कभी-कभी असफलता के उदाहरण? सामने आते हैं, और हाँ... असफलता की कहानियाँ आना तो समझ में आता है, लेकिन सफलता के उदाहरणों की बात ज़्यादा सुनाई नहीं देती, इसलिए थोड़ा अटपटा लगता है। जो लोग इसे अच्छी तरह इस्तेमाल कर रहे हैं, वे भी कहीं न कहीं तो होंगे।
उल्टा, क्या ऐसा नहीं हो सकता कि अगर इसे सही तरह से इस्तेमाल किया जाए, तो सब लोग कम से कम इतना तो पहले से ही लिख रहे हों, इसलिए पोस्ट ही नहीं करते?
Hacker News राय
Rust के साथ गेम प्रोजेक्ट चलाते हुए विफल होने का एक और मामला सामने आया। यह अफसोसजनक है
यह इस बात का अच्छा सबक लगता है कि commercial game engines ने game development पर कब्ज़ा क्यों किया
मुझे Rust, C++ के विकल्प के रूप में पसंद है, लेकिन मेरा मानना है कि अधिकांश projects के लिए C++ उपयुक्त नहीं है
Rust game development किसी frontier development जैसा है, और इसमें बहुत काम करना पड़ता है
मुझे Rust पसंद है, लेकिन fast iteration मुश्किल है
मैंने अपने project में Rust की जगह Go अपनाया, और iteration speed तेज़ हो गई
Rust ecosystem की ऊँची volatility एक अप्रत्याशित कमी है
एक developer C में game engine बनाता है, और Lua में game विकसित करता है
Rust में काम करना लगभग हमेशा अधिक कठिन होता है
project का लक्ष्य यह था कि उसका भाई, जो coding नहीं करता, भी योगदान दे सके