2 poin oleh GN⁺ 2024-09-09 | 1 komentar | Bagikan ke WhatsApp
  • Apa itu coreCore

    • coreCore adalah cara eksperimental untuk membuat video game dalam bentuk alat dan engine pembuatan game Action-RPG serta editor properti
    • Menggunakan sistem komponen sederhana, dan komponennya berupa vektor clojure dengan bentuk [keyword value]
    • Berbagai entitas disusun sebagai map clojure
    • Efek samping di dalam game ditangani sebagai komponen seperti [:tx/foo param], yang mirip dengan struktur datomic
    • Seluruh status game disimpan dalam satu atom bernama app/state, dan entitas juga ada sebagai atom di dalam atom utama
    • Seluruh isi aplikasi disimpan di resources/properties.edn, divalidasi menggunakan malli-schemas, dan dapat diedit melalui GUI
  • Tangkapan layar

  • Cara memulai pengembangan

    • Masukkan perintah berikut:
      • lein dev
    • Aplikasi akan dimulai dan juga melakukan hal-hal berikut:
      • Menjalankan server NREPL
      • Saat aplikasi ditutup (ESC di menu utama), clojure.tools.namespace akan memuat ulang file yang berubah dan memulai ulang aplikasi
      • Jika terjadi error, tidak perlu me-restart JVM; cukup perbaiki error lalu panggil dev-loop/restart!
      • Di VIM, Anda dapat mengikat perintah berikut ke tombol F5: nmap <F5> :Eval (do (in-ns 'dev-loop)(restart!))
  • Lisensi kode

    • Disediakan di bawah lisensi MIT
  • Lisensi aset

Ringkasan GN⁺

  • coreCore adalah alat untuk memudahkan pembuatan game Action-RPG dengan menggunakan sistem komponen sederhana untuk mengelola status game
  • Seluruh status game disimpan dalam satu atom, dan properti dapat diedit melalui GUI sehingga berguna bagi developer
  • Disediakan dengan lisensi MIT, tetapi aset yang digunakan bersifat proprietari
  • Alat dengan fungsi serupa antara lain RPG Maker dan Unity

1 komentar

 
GN⁺ 2024-09-09
Komentar Hacker News
  • Menarik melihat berbagai pendekatan pengembangan game

    • Bevy (mesin ECS Rust): awalnya bagus, tetapi ada banyak masalah implementasi dan bisa menjadi rumit
    • Unity: sistem game object dan komponen modularnya praktis
    • Godot: hierarki OOP dan bahasa bawaannya terasa kurang memuaskan
    • Pygame: cocok untuk proyek kecil dan bersifat prosedural, tetapi bisa membangun lapisan OOP atau fungsional
    • Clojure: implementasi fungsionalnya menarik
  • Proyek GitHub ini terasa menggelikan bagi pengembang game

    • Pendekatan akademisnya terasa berlebihan
    • Tangkapan layarnya jelek dilihat
  • Proyek ini mengklaim bisa menyederhanakan pengembangan game, tetapi memakai banyak istilah

    • vektor Clojure, Datomics, atom, transaction, skema Malli, dan sebagainya
  • Proyek ini tampaknya gagal

    • Strukturnya terlalu banyak dirancang dan kurang memiliki struktur yang jelas
    • Tidak ada kisah game, jadi pengkodeannya dilakukan tanpa arah yang jelas
  • Repositori yang hampir tanpa dokumentasi ini memicu banyak percakapan

    • Kodenya terlihat lebih seperti proyek daripada mesin game
    • Editor propertinya menarik
    • Sepertinya mendapat upvote karena judulnya
  • Sudah sering terlihat cerita "ingin membuat game" berubah menjadi membuat mesin game

    • Orang terjebak dalam gagasan bahwa jika menulis kode mesin lebih dulu, sisa proses pembuatan game akan menjadi mudah
    • Membuat mesin bisa terasa lebih menyenangkan daripada membuat game
    • Mengoptimalkan mesin memberi imbalan yang lebih cepat
    • Pernah mencoba memakai mesin Phaser js agar cepat menampilkan sesuatu yang interaktif di layar
  • Menyukai Clojure, tetapi meragukan apakah bahasa fungsional dengan struktur data immutable cocok untuk pengembangan game

  • Status game disimpan dalam satu atom, dan entitas di dalamnya juga disimpan lagi sebagai atom

    • Bertanya-tanya apakah penggunaan "atom" seperti ini umum di Clojure
  • Akan menarik untuk menganalisis data "waktu/kompleksitas yang dihabiskan untuk mesin game" vs "kompleksitas/daya tarik game yang dihasilkan"

    • Memperkirakan keragaman game yang dibuat dengan sistem template/mesin sederhana akan menurun
  • Sudah ada Core, platform pembuatan game komersial yang berjalan di atas Unreal Engine 4