20 puan yazan GN⁺ 2025-04-19 | 2 yorum | WhatsApp'ta paylaş
  • 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

 
viel214 2025-04-21

Sadece Lua değil, LuaJIT olduğu için çok hızlıdır.

 
GN⁺ 2025-04-19
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

    • Motor üzerinde özel değişiklikler yapabilirsiniz ve bunları yayımlamanız gerekmez (GPL'den farklı olarak)
    • Motorla yapılan oyunlardan serbestçe gelir elde edebilirsiniz ve sonradan fikir değiştirip şartları bozmayacaklarına dair güvence veriyor
    • Apache 2.0 olmamasının nedeni, oyun motorunun kendisinin gelir elde etmek için kullanılamaması
    • Adil ve dikkatle düşünülmüş görünüyor. Ekibi tebrik ederim
  • 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ış

    • Bildiğim kadarıyla İsveçli bir oyun stüdyosunda başladı (muhtemelen King)
    • Konsol platformları için build/release araçları oyun geliştiricilere maliyet çıkarabilir. Çünkü platform SDK'larının kendisi kısıtlamalar getiriyor
    • Defold organizasyonu, lisans gibi konularda oyun geliştiricilerine adil davranmak için ciddi çaba gösteriyor gibi görünüyor
  • 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

    • Diğer seçenekler arasında MonoGame (Stardew Valley bununla yazıldı) ve Unity, Unreal gibi büyük motorlar var
    • Ne kadar öğrenme yatırımı yapmak istediğinize, istediğiniz özellik setine, değerlendirdiğiniz trade-off'lara veya platformlara ve kullanacağınız programlama dili/stiline göre çok şey değişir
  • Unity ilk çıktığında verdiği hissi hatırlıyorum. "Bu iş tutacak" duygusu vardı

    • Burada da benzer bir his var. Ekibin iyi bir şey üzerinde çalıştığını iletişim tarzından ve kullandıkları dilden anlayabiliyorsunuz
    • Şu anda çoklu platforma export desteğinin çok kapsamlı olması büyük artı. Godot'nun en büyük engellerinden biri konsol desteğiydi
    • Tek şikayetim yalnızca Lua desteklemesiydi. C# olsaydı daha da ilgi çekici olurdu. Yine de en azından bazı motorlardaki gibi tam C++ yeniden derlemesi gerekmiyor
  • 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