2 puan yazan GN⁺ 2024-09-09 | 1 yorum | WhatsApp'ta paylaş
  • coreCore nedir

    • coreCore, Action-RPG oyun yapım aracı ve motoru ile özellik düzenleyicisi biçiminde video oyunları oluşturmak için deneysel bir yöntemdir
    • Basit bir bileşen sistemi kullanır ve bileşenler [keyword value] biçimindeki clojure vektörleridir
    • Çeşitli varlıklar clojure map'lerinden oluşur
    • Oyun içi yan etkiler [:tx/foo param] gibi bileşenlerle işlenir; bu, datomic yapısına benzer
    • Tüm oyun durumu app/state adlı tek bir atom içinde saklanır ve varlıklar da ana atomun içindeki atomlar olarak bulunur
    • Uygulamanın tüm içeriği resources/properties.edn içinde saklanır, malli-schemas kullanılarak doğrulanır ve GUI ile düzenlenebilir
  • Ekran görüntüleri

  • Geliştirmeye nasıl başlanır

    • Aşağıdaki komutu girin:
      • lein dev
    • Uygulama başlatılır ve aşağıdaki işlemler de yapılır:
      • NREPL sunucusu başlatılır
      • Uygulama kapanırken (ana menüde ESC), clojure.tools.namespace değişen dosyaları yeniler ve uygulamayı yeniden başlatır
      • Hata oluştuğunda JVM'i yeniden başlatmaya gerek kalmadan hatayı düzeltip dev-loop/restart! çağrılabilir
      • VIM'de F5 tuşuna şu komut bağlanarak kullanılabilir: nmap <F5> :Eval (do (in-ns 'dev-loop)(restart!))
  • Kod lisansı

    • MIT lisansı altında sunulmaktadır
  • Varlık lisansı

GN⁺ özeti

  • coreCore, Action-RPG oyunlarını kolayca üretmeye yönelik, oyun durumunu basit bir bileşen sistemiyle yöneten bir araçtır
  • Tüm oyun durumunu tek bir atomda saklaması ve özelliklerin GUI üzerinden düzenlenebilmesi, geliştiriciler için kullanışlıdır
  • MIT lisansıyla sunulsa da kullanılan varlıklar mülkiyetlidir
  • Benzer işlevlere sahip araçlar arasında RPG Maker ve Unity bulunur

1 yorum

 
GN⁺ 2024-09-09
Hacker News görüşleri
  • Oyun geliştirmeye yönelik çeşitli yaklaşımları görmek ilginç

    • Bevy (Rust ECS motoru): başta iyi görünüyor ama uygulamada birçok sorun çıkarabiliyor ve karmaşıklaşabiliyor
    • Unity: oyun nesneleri ve modüler bileşen sistemi pratik
    • Godot: OOP hiyerarşisi ve yerleşik dili tatmin edici bulunmamış
    • Pygame: küçük projeler için uygun, prosedürel ama OOP ya da fonksiyonel katmanlar kurulabiliyor
    • Clojure: fonksiyonel yaklaşımı ilginç
  • Bu GitHub projesi oyun geliştiricilere komik geliyor

    • Akademik yaklaşım abartılı hissettiriyor
    • Ekran görüntüleri çirkin görünüyor
  • Oyunu geliştirmeyi basitleştirebileceğini iddia ediyor ama çok fazla terim kullanıyor

    • Clojure vektörleri, Datomics, atomlar, transaction'lar, Malli schema'ları vb.
  • Bu proje başarısız olmuş gibi görünüyor

    • Aşırı tasarlanmış bir yapı ve net bir mimari eksikliği var
    • Oyun hikâyesi olmadığı için belirgin bir yön olmadan kod yazılmış
  • Neredeyse hiç dokümantasyonu olmayan bu depo çok fazla tartışma yarattı

    • Kod, bir oyun motorundan çok bir projeye benziyor
    • Özellik düzenleyicisi ilginç
    • Başlığı yüzünden upvote almış gibi görünüyor
  • "Oyun yapmak istiyorum" düşüncesinin oyun motoru yapmaya dönüşmesine sık rastlanıyor

    • Önce motor kodunu yazmanın, oyunun geri kalanını yapmayı kolaylaştıracağı fikrine kapılınıyor
    • Motor yapmak, oyun yapmaktan daha eğlenceli olabilir
    • Motoru optimize etmek daha hızlı ödül hissi verir
    • Hızla ekranda etkileşimli bir şey göstermek için Phaser js motorunu kullanmayı denemişler
  • Clojure seviliyor ama değişmez veri yapılarına sahip fonksiyonel bir dilin oyun geliştirmeye uygun olup olmadığı sorgulanıyor

  • Oyun durumu tek bir atomda tutuluyor ve varlıklar onun içinde yine atomlar olarak saklanıyor

    • Clojure'da "atom"un bu şekilde kullanılmasının yaygın olup olmadığı merak ediliyor
  • "Oyun motoruna harcanan zaman/karmaşıklık" ile "üretilen oyunun karmaşıklığı/ilgi çekiciliği" verilerini analiz etmek ilginç olabilir

    • Basit bir şablon/motor sistemiyle yapılan oyunlarda çeşitliliğin azalacağı tahmin ediliyor
  • Unreal Engine 4 ile çalışan ticari oyun üretim platformu Core zaten mevcut