- यह एक हल्का और हाई-परफ़ॉर्मेंस 2D-केंद्रित गेम इंजन है, और 3D फीचर्स भी सपोर्ट करता है
- पूरे गेम लॉजिक को Lua स्क्रिप्ट के आधार पर नियंत्रित करता है, और तेज़ build तथा hot reload से डेवलपमेंट स्पीड बेहतर होती है
- यह मुफ़्त उपलब्ध है, और इसमें कोई लाइसेंस फ़ीस या royalty नहीं है
- क्रॉस-प्लेटफ़ॉर्म सपोर्ट बहुत मज़बूत है, इसलिए एक बार डेवलप करके कई प्लेटफ़ॉर्म पर डिप्लॉय किया जा सकता है
- scene editor, GUI tool जैसे artist-friendly टूल्स देकर visual production को आसान बनाता है
- C/C++ जैसी native extension और कई SDK integration के ज़रिए अच्छी extensibility और production use की सुविधा देता है
Defold की मुख्य विशेषताएँ
- इंस्टॉलेशन की ज़रूरत नहीं: बिना इंस्टॉल या सेटअप के तुरंत इस्तेमाल किया जा सकता है
- विज़ुअल और कोड एडिटर: visual editor और code editor के ज़रिए रचनात्मक काम किया जा सकता है
- Lua डिबगर: Lua स्क्रिप्ट को डिबग करने के लिए टूल उपलब्ध है
- सीन और पार्टिकल एडिटर: 2D और 3D गेम डेवलपमेंट के लिए कई तरह के एडिटर उपलब्ध हैं
- कोई लागत नहीं: शुरुआती लागत, लाइसेंस फ़ीस, royalty या runtime cost कुछ भी नहीं है
क्रॉस-प्लेटफ़ॉर्म सपोर्ट
- कई प्लेटफ़ॉर्म: PlayStation, Nintendo Switch, Android, iOS, macOS, Linux, Windows, Steam, HTML5, Facebook आदि प्रमुख प्लेटफ़ॉर्म पर गेम डिप्लॉय किया जा सकता है
- बाहरी टूल की ज़रूरत नहीं: बाहरी टूल के बिना एक ही code base से सभी प्लेटफ़ॉर्म सपोर्ट किए जा सकते हैं
2D-केंद्रित, लेकिन 3D भी सक्षम इंजन संरचना
- Defold 2D गेम डेवलपमेंट के लिए ऑप्टिमाइज़ है, लेकिन इसमें 3D फीचर्स भी built-in हैं
- component-based design से परफ़ॉर्मेंस और modularity बेहतर होती है
- 2D components : 2D sprite, Spine model, tilemap editor
- 3D components :
- 3D model और animation loading
- runtime के दौरान 3D mesh बनाना और संशोधित करना
- custom material और GLSL-आधारित shader
- particle effects
- real-time preview वाला particle editor
- curve editor से parameter adjustment
- 2D/3D particle emitter सपोर्ट
एनीमेशन फीचर्स
- sprite, model, GUI आदि में इस्तेमाल के लिए शक्तिशाली animation system
- flipbook animation : sprite, GUI node, particle में उपयोग
- Spine और model animation
- blending सपोर्ट
- keyframe event handling
- inverse kinematics लागू किया जा सकता है और script control भी संभव
- property animation
- सभी sprite और GUI properties पर animation संभव
- custom script-आधारित property animation
- custom या pre-defined easing function का उपयोग
आर्टिस्ट-फ्रेंडली टूल्स
- GUI editor
- text, image, pie node आदि से layer composition
- clipping और mask फीचर्स
- auto layout और screen orientation switching सपोर्ट
- 9-slice texture, bitmap/distance field font
- template के ज़रिए UI elements को फिर से इस्तेमाल किया जा सकता है
- scene editor
- assets को assemble और place करने के लिए visual editor
- prefab-आधारित game object संरचना
- hierarchy के ज़रिए object grouping
फ़िज़िक्स सिमुलेशन
- Box2D, Bullet-आधारित 2D/3D physics engine पूरी तरह integrated
- static/dynamic/kinematic objects
- shape-आधारित collision और ray cast detection
- tilemap के लिए सटीक collision detection
- trigger, joint, motor सपोर्ट
सब कुछ Lua स्क्रिप्ट से संभव
- Lua script
- code editor, syntax highlighting, autocomplete, LSP शामिल
- built-in debugger और variable inspection
- rendering pipeline को पूरी तरह script किया जा सकता है
- Teal भाषा के ज़रिए type annotation संभव
- reactive code style
- reactive-style Lua सपोर्ट से हाई परफ़ॉर्मेंस बनाए रखी जाती है
- game object के बीच asynchronous communication संरचना
क्रॉस-प्लेटफ़ॉर्म सपोर्ट
- वास्तविक क्रॉस-प्लेटफ़ॉर्म
- एक ही code base से one-click deployment
- Steam, Facebook Instant आदि extension के रूप में सपोर्ट होते हैं
- editor, macOS, Windows, Linux तीनों पर सपोर्टेड है
- Xcode या Android Studio के बिना भी mobile deployment संभव
- WebGL, OpenGL, Vulkan, Metal सपोर्ट
- बहुत हल्का
- सिर्फ़ इस्तेमाल किए गए assets को शामिल करने वाला automatic resource management
- sprite atlas packing
- platform-specific texture compression settings
- render pipeline में dynamic batching
परफ़ॉर्मेंस और स्थिरता
- दूसरे इंजनों की तुलना में बहुत छोटा binary size
- Unity 6, Godot 4.3 की तुलना में लगभग 10% binary size (Android, iOS, HTML5, Windows सभी पर)
- शानदार परफ़ॉर्मेंस
- हज़ारों-लाखों objects render किए जा सकते हैं (उदाहरण: Bunnymark)
- पुराने hardware और mobile browser पर भी सुचारु रूप से चलता है
- Stable version
- 4 हफ्ते का release cycle, जिसमें 2 हफ्ते का beta period शामिल
- backward compatibility तोड़ने वाले बदलाव लगभग नहीं होते
- engine crash बहुत कम होते हैं
तेज़ workflow
- hot reload
- assets/logic का real-time application
- wireless device hot reload और debugging सपोर्ट
- Lua hook के ज़रिए custom reload handling संभव
- custom workflow
- अलग build pipeline का उपयोग संभव
- CI के साथ integrated headless build सपोर्ट
- projects के बीच library sharing संभव
- official और community assets के साथ Asset Portal उपलब्ध
- सारा data text file के रूप में मैनेज होता है, इसलिए merge करना आसान है
- build और refactoring
- HTML5 सहित सभी build कुछ सेकंड में पूरे हो जाते हैं
- asynchronous और synchronous loading सपोर्ट
- automatic asset refactoring
- optimization और debugging
- real-time visual profiler
- remote web-based frame sampling
- game video capture संभव
- native crash log API उपलब्ध
native extension से फीचर जोड़ें
- C, C++, ObjectiveC, Java, JavaScript से Defold engine की functionality बढ़ाई जा सकती है
- cloud में user-customized engine अपने आप generate किया जा सकता है
- उपयोग के उदाहरण
- high-performance computation और data processing
- mobile camera जैसे hardware access
- ad, analytics जैसे external SDK integration
production use और third-party integration
- Defold एक production-ready game engine है और भरोसेमंद SDK integration देता है
- push notification: Google, Apple
- in-app purchase: Google, Apple, Amazon, Facebook
- game service: Facebook SDK, Google Play, Firebase
- विज्ञापन: AdMob, IronSource आदि mediation सपोर्ट
- network: WebSockets, Nakama, PlayFab, Colyseus आदि
- और अधिक extension Asset Portal में देखे जा सकते हैं
Defold क्यों?
- Defold यह दावा नहीं करता कि यह हर गेम के लिए सबसे उपयुक्त है
- लेकिन कुछ गेम्स के लिए यह सबसे अच्छा विकल्प हो सकता है
- डेवलपमेंट प्रोडक्टिविटी, हल्केपन, क्रॉस-प्लेटफ़ॉर्म सपोर्ट और तेज़ iteration में इसकी विशेष मज़बूती है
2 टिप्पणियां
यह सिर्फ़ Lua नहीं बल्कि LuaJIT है, इसलिए यह बहुत तेज़ है।
Hacker News राय
इन्होंने एक दिलचस्प लाइसेंस समाधान चुना है। अच्छा लगा कि इसे open source के बजाय source-available license कहा गया है
इसे "source-available" कहना और गलत तरीके से "open source" शब्द का इस्तेमाल न करना बहुत सराहनीय है। Apache-आधारित लाइसेंस में जो अतिरिक्त बातें जोड़ी गई हैं, उन्हें उभारना भी अच्छा लगा
Defold के लिए लगाव है। गेम डेवलपमेंट क्षेत्र में यह अलग पहचान रखता है। उदाहरण के लिए, इसका built-in GUI editor Clojure में लिखा गया है
Defold काफी समय से मौजूद है। पता नहीं यह अभी main page पर क्यों है। खैर, Defold अच्छा है। community, documentation वगैरह Godot की तुलना में कुछ कमज़ोर हैं
मुझे याद है जब Unity पहली बार आया था। तब लगा था कि इसमें कुछ बड़ा बनने की क्षमता है
इससे संबंधित एक चल रही submission है। यह उस गेम के बारे में है जो इस इंजन का उपयोग करके 60k LOC के Lua में लिखा गया है
मैंने देखा कि यह Nixpkgs में नहीं है
मैं features के लिहाज़ से Godot के साथ इसका और गहरा comparison देखना चाहूँगा। कम से कम 3D capabilities में बाद वाला काफ़ी अधिक विकसित लगता है
मैंने कुछ साल पहले इस इंजन को follow किया था। यह King द्वारा बनाया गया game engine था, जिसे उन्होंने खुद निवेश जारी न रखने के बाद स्वतंत्र रूप से जारी कर दिया
Löve 2D की तुलना में, IDE के साथ आने के अलावा यह कैसे अलग है, यह जानने की जिज्ञासा है। Defold शायद अधिक platforms को support करता है, लेकिन अलग-अलग consoles के लिए गेम को package करना बहुत निजी dependencies के साथ आ सकता है