- Hafif ve yüksek performanslı, 2D odaklı bir oyun motorudur ve 3D özelliklerini de destekler
- Tüm oyun mantığı Lua scriptleri tabanlı olarak kontrol edilir; hızlı derleme ve hot reload ile geliştirme hızı artar
- Ücretsiz sunulur; lisans ücreti veya royalty yoktur
- Güçlü çapraz platform desteği sayesinde tek bir geliştirmeyle farklı platformlara dağıtım yapılabilir
- Scene editor, GUI araçları gibi sanatçı dostu araçlar sunarak görsel üretim kolaylığını artırır
- C/C++ gibi native extension'lar ve çeşitli SDK entegrasyonlarıyla genişletilebilirlik ve gerçek kullanım senaryolarına uygunluk sağlar
Defold'un başlıca özellikleri
- Kurulum gerektirmez: Kurulum veya yapılandırma olmadan hemen kullanılabilir
- Görsel ve kod editörü: Görsel editör ve kod editörüyle yaratıcı çalışmalar yapılabilir
- Lua debugger: Lua scriptlerini debug etmek için araç sunar
- Sahne ve particle editörleri: 2D ve 3D oyun geliştirme için çeşitli editörler sağlar
- Maliyet yok: Başlangıç maliyeti, lisans ücreti, royalty veya runtime maliyeti yoktur
Çapraz platform desteği
- Çeşitli platformlar: PlayStation, Nintendo Switch, Android, iOS, macOS, Linux, Windows, Steam, HTML5, Facebook gibi başlıca platformlara oyun dağıtımı yapılabilir
- Harici araç gerekmez: Harici araçlar olmadan tek bir codebase ile tüm platformlar desteklenir
2D odaklı, 3D de mümkün motor yapısı
- Defold, 2D oyun geliştirme için optimize edilmiştir, ancak 3D özellikleri de yerleşik olarak gelir
- Bileşen tabanlı tasarım ile performans ve modülerlik güçlendirilir
- 2D bileşenler: 2D sprite'lar, Spine modelleri, tilemap editörü
- 3D bileşenler:
- 3D model ve animasyon yükleme
- Runtime sırasında 3D mesh oluşturma ve değiştirme
- Özel material'ler ve GLSL tabanlı shader'lar
- Particle efektleri
- Gerçek zamanlı önizleme yapabilen particle editörü
- Eğri editörüyle parametre ayarlama
- 2D/3D particle emitter desteği
Animasyon özellikleri
- Sprite, model, GUI vb. için kullanılabilen güçlü bir animasyon sistemi
- Flipbook animasyonu: sprite, GUI node'ları ve particle'larda kullanılır
- Spine ve model animasyonları
- Blending desteği
- Keyframe event işleme
- Inverse kinematics uygulanabilir ve script ile kontrol edilebilir
- Özellik animasyonu
- Tüm sprite ve GUI özellikleri animasyonlu hale getirilebilir
- Özel script tabanlı özellik animasyonu
- Özel veya önceden tanımlı easing fonksiyonları kullanılabilir
Sanatçı dostu araçlar
- GUI editörü
- Metin, görsel, pie node vb. ile katman oluşturma
- Clipping ve mask özellikleri
- Otomatik yerleşim ve ekran yönü değiştirme desteği
- 9-slice texture, bitmap/distance field font'lar
- Template kullanarak UI öğeleri yeniden kullanılabilir
- Scene editor
- Varlıkları birleştirme ve yerleştirme için görsel editör
- Prefab tabanlı game object yapısı
- Hiyerarşiyle nesne gruplama
Fizik simülasyonu
- Box2D, Bullet tabanlı 2D/3D fizik motoru tam entegredir
- Statik/dinamik/kinematic nesneler
- Şekil tabanlı çarpışma ve ray cast algılama
- Tilemap için hassas çarpışma algılama
- Trigger, joint ve motor desteği
Her şey Lua scriptleriyle mümkün
- Lua scriptleri
- Kod editörü, syntax highlighting, autocomplete, LSP içerir
- Debugger yerleşiktir ve değişkenler incelenebilir
- Render pipeline tamamen script ile yazılabilir
- Teal dili kullanılarak type tanımlaması yapılabilir
- Reaktif kod stili
- Reaktif stil Lua desteğiyle yüksek performans korunur
- Game object'ler arasında asenkron iletişim yapısı
Çapraz platform desteği
- Gerçek çapraz platform
- Aynı kod tabanıyla tek tıkla dağıtım
- Steam, Facebook Instant vb. extension ile desteklenir
- Editör macOS, Windows ve Linux'un tamamını destekler
- Xcode veya Android Studio olmadan da mobil dağıtım yapılabilir
- WebGL, OpenGL, Vulkan, Metal desteği
- Son derece hafif
- Yalnızca kullanılan varlıkları içeren otomatik kaynak yönetimi
- Sprite atlas packing
- Platform bazında texture compression ayarı yapılabilir
- Render pipeline'da dinamik batching işlemleri
Performans ve kararlılık
- Diğer motorlara göre çok daha küçük binary boyutu
- Unity 6 ve Godot 4.3'e kıyasla yaklaşık %10 binary boyutu (Android, iOS, HTML5, Windows'un tamamında)
- Yüksek performans
- On binlerce nesneyi render edebilir (örnek: Bunnymark)
- Eski donanımlarda ve mobil tarayıcılarda da akıcı çalışır
- Stable sürüm
- 4 haftalık release döngüsü, buna dahil 2 haftalık beta süresi
- Geriye dönük uyumluluğu bozan değişiklik neredeyse yoktur
- Engine crash'leri çok nadir yaşanır
Hızlı çalışma akışı
- Hot reload
- Varlıklar/mantık gerçek zamanlı uygulanır
- Kablosuz cihazlarda hot reload ve debug desteği
- Lua hook'larıyla özel reload işlemleri yapılabilir
- Özel workflow
- Bağımsız build pipeline kullanılabilir
- CI ile entegre headless build desteği
- Projeler arasında kütüphane paylaşılabilir
- Resmî ve topluluk varlıklarını içeren Asset Portal sunulur
- Tüm veriler metin dosyaları olarak yönetildiği için merge işlemleri kolaydır
- Build ve refactoring
- HTML5 dahil tüm build'ler birkaç saniye içinde tamamlanır
- Asenkron ve senkron yükleme desteği
- Otomatik asset refactoring
- Optimizasyon ve debugging
- Gerçek zamanlı görsel profiler
- Uzak web tabanlı frame sampling
- Oyun videosu capture edilebilir
- Native crash log API'si sunulur
Native extension'larla özellik ekleme
- C, C++, ObjectiveC, Java, JavaScript ile Defold engine özellikleri genişletilebilir
- Bulutta kullanıcıya özel engine otomatik olarak oluşturulabilir
- Kullanım örnekleri
- Yüksek performanslı hesaplama ve veri işleme
- Mobil kamera gibi donanımlara erişim
- Reklam, analitik gibi harici SDK'larla entegrasyon
Gerçek kullanım ve üçüncü taraf entegrasyonları
- Defold, gerçek kullanım için tasarlanmış bir oyun motoru olarak güvenilir SDK entegrasyonları sunar
- Push bildirimleri: Google, Apple
- Uygulama içi satın alma: Google, Apple, Amazon, Facebook
- Oyun servisleri: Facebook SDK, Google Play, Firebase
- Reklam: AdMob, IronSource vb. aracılık desteği
- Ağ: WebSockets, Nakama, PlayFab, Colyseus vb.
- Daha fazla extension, Asset Portal'da bulunabilir
Neden Defold?
- Defold, her oyun için en iyi seçenek olduğunu iddia etmez
- Ancak bazı oyunlar için en iyi tercih olabilir
- Geliştirme verimliliği, hafiflik, çapraz platform ve hızlı yineleme süreçlerinde öne çıkan güçlü yönlere sahiptir
2 yorum
Sadece Lua değil, LuaJIT olduğu için çok hızlıdır.
Hacker News görüşleri
İlginç bir lisans çözümü seçmişler. Açık kaynak yerine buna "source-available" lisansı demeleri hoşuma gitti
Buna "source-available" deyip yanlış biçimde "open source" dememelerini özellikle takdir ediyorum. Apache tabanlı lisansa eklenen maddeleri vurgulamaları da iyi olmuş
Defold'a karşı bir sempatim var. Oyun geliştirme alanında kendine özgü bir yeri var. Örneğin, yerleşik GUI editörü Clojure ile yazılmış
Defold uzun zamandır var. Bunun neden şimdi ana sayfada olduğunu bilmiyorum. Her neyse, Defold iyi. Topluluk, dokümantasyon vb. açısından Godot'nun gerisinde
Unity ilk çıktığında verdiği hissi hatırlıyorum. "Bu iş tutacak" duygusu vardı
Bununla ilgili hâlihazırda devam eden bir gönderi var. Bu motor kullanılarak 60k LOC Lua ile yazılmış bir oyun hakkında
Nixpkgs'te olmadığını fark ettim
Özellikler açısından Godot ile daha derinlemesine bir karşılaştırma görmek isterim. En azından 3D özelliklerde ikincisi çok daha gelişmiş görünüyor
Bu motoru birkaç yıl önce takip ediyordum. King'in yaptığı bir oyun motoruydu; kendileri artık yatırım yapmamaya karar verince serbest bıraktılar
Löve 2D ile karşılaştırıldığında, IDE ile birlikte gelmesinin dışında nasıl farklı olduğunu merak ediyorum. Defold daha fazla platform destekliyor gibi görünüyor ama çeşitli konsollara oyun paketlemek çok kapalı bağımlılıklar içerebiliyor