· kaynak Hacker News – Front Page (native)
Parin, D için raylib ile Godot arasına konumlanan yeni açık kaynak 2D oyun motoru
Parin, D için açık kaynak bir 2D oyun motoru. raylib'den daha fazla yapı, Godot'tan çok daha az yük sunuyor; piksel hassasiyetinde fizik, tile map, diyalog sistemi ve web derlemeleriyle geliyor.
D programlama diliyle yazılmış açık kaynak 2D oyun motoru Parin, 17 Ekim'de GitHub deposuna bağlantı veren bir Show HN gönderisiyle Hacker News ana sayfasına yerleşti. Kapendev adıyla bilinen geliştiricisi, motoru geliştiriciler için orta bir seçenek olarak tanıtıyor: raylib gibi minimal bir kütüphaneden daha fazla yol gösteriyor, Godot gibi büyük bir motordan çok daha az yük getiryor.
raylib ile Godot arasında
Depo README'sine göre Parin kod odaklı: kendi mimarisini dayatmıyor, dolayısıyla oyun kodu projeye uygun herhangi bir şekilde düzenlenebiliyor. Bellek yönetimi esnek — kullanım kolaylığı için D'nin garbage collector'ı varsayılan olarak açık, ancak geliştiriciler manuel yönetime dönebilir veya GC'yi tamamen devre dışı bırakabilir. Motorun büyük bölümü temelde Joka üzerinde duruyor; bu taşınabilir yardımcı kütüphane tek başına, hatta raylib ile birlikte de çalışabiliyor. README, Parin'in bir raylib sarmalayıcısı olmadığını özenle belirtiyor; raylib yalnızca backend'lerinden biri ve özel bir backend şu anda deneysel olarak geliştiriliyor.
Yanında neler geliyor
Yerleşik özellik seti yaygın 2D ihtiyaçlarına odaklanıyor: piksel hassasiyetinde bir fizik motoru, diyalog sistemi, atlas tabanlı animasyon kütüphanesi, tile map yapıları ve hâlâ yapım aşamasında olan bir UI kütüphanesi. İsteğe bağlı ekler arasında Box2D, Steamworks, ENet ve microui var. README'deki minimal örnek tek bir fonksiyondan oluşuyor: çözünürlüğü 320'e 180'e sabitliyor, her karede fare imlecinde metin çiziyor ve bir mixin sayesinde çalıştırılabilir bir programa dönüşüyor — bu da ilk bir projenin ne kadar az boilerplate'e ihtiyaç duyduğunu gösteriyor.
Kurulum, platformlar ve dağıtım
Yeni projeler D'nin derleme arayı ve paket yöneticisi DUB ile başlıyor: dub init -t parin, ardından dub run. Temel bir kurulum ve entity tabanlı bir kurulum için şablonlar mevcut. Linux kullanıcıları önce ses, grafik ve girdi için sistem kütüphanelerini kurmalı; Ubuntu, Fedora, Arch ve Void için komutlar verilmiş. Desteklenen hedefler Windows, Linux, macOS ve web; tarayıcı derlemeleri LDC ve Emscripten gerektiriyor (4.0.23 sürümü öneriliyor) ve README, çıktıyı itch.io için HTML projesi olarak paketlemeyi açıklıyor. Steam sürümleri ve çok oyunculu mod, pakete dahil Steamworks ve ENet binding'leriyle karşılanıyor; ancak bu ikili dosyaların ayrıca indirilip bağlanması gerekiyor. SSS, motorun yalnızca piksel sanatı değil, HD oyunlara da uygun olduğunu da doğruluyor.
Bilinçli eksikler
Birkaç eksik parça bilinçli olarak konulmamış. Yerleşik bir sahne ya da entity sistemi yok; bunun yerine examples klasörü, motorun Union tipi kullanılarak bunun nasıl oluşturulacağını gösteriyor. Bir scripting dili de yok — README, D için bir Wren portu, arsd.script ve Lua binding'leri gibi üçüncü taraf seçeneklere işaret ediyor. Hot reloading açıkça desteklenmiyor; geliştirici bu özellikle hiç ilgilenmediğini söylüyor. Proje, onunla yapılmış altı yayınlanmış oyunu listeliyor — Twenty Seconds, Twenty Steps ve Worms Within bunların arasında — ve Zed editörü, seviye tasarımı için Tiled, sanat için Pixelorama ve GIMP, müzik için MilkyTracker'dan oluşan bir araç zinciri öneriyor.
Neden önemli
Birçok bağımsız geliştirici, raylib örneklerini kopyalamakla Godot'un editör odaklı iş akışına bağlılık arasında bir yerde çalışıyor ve Parin tam olarak bu boşluğa nişan alıyor. D'nin kendisi oyunlarda nadir görülen bir şey — metaprogramming desteği ve isteğe bağlı garbage collection'ı olan derlenen bir dil — ve Parin ona, yayınlanmış oyunlar, tarayıcı dağıtımı ve Steam desteğiyle küçük ama gerçek bir ekosistem kazandırıyor. Tasarım sınırları hakkında açık sözlü: sahne sistemi gibi eksik özellikler, kendininkini inşa etme tarifleriyle birlikte belgelenmiş, bu da asıl çekici yanının kolayca değiştirilebilir olmak olduğu bir araca yakışıyor. Bir motorun ağırlığı olmadan yapı isteyen bireysel geliştiriciler ve küçük ekipler için izlenmeye değer bir proje.
- #game-engine
- #d-language
- #open-source
- #indie-games
- #2d-games