1 poin oleh GN⁺ 2024-02-21 | 1 komentar | Bagikan ke WhatsApp
  • Engine gratis dan open source yang memungkinkan developer Pascal membuat game 3D/2D dan UI dalam satu proyek, lalu mendistribusikannya ke berbagai platform
  • Editor visual dan sistem komponen menangani elemen game dan UI seperti scene, kamera, navigasi, pencahayaan, tombol, gambar, dan label secara terpadu
  • Mendukung workflow berbasis model 3D, animasi 2D, dan sprite sheet, serta dapat memanfaatkan integrasi glTF, X3D, IFC dengan Blender dan Sketchfab
  • Menyediakan fitur rendering seperti efek shader, bayangan, cermin, rendering berbasis fisika, bump mapping, dan koreksi gamma, sehingga berbagai ekspresi grafis bisa dibuat hanya dengan engine bawaan
  • Memiliki tool build baris perintah, image Docker, dan dokumentasi CI utama, sehingga strukturnya mudah diterapkan untuk aplikasi open source maupun komersial

Editor dan cara pengembangan

  • Castle Game Engine adalah engine game 3D/2D untuk desktop, mobile, konsol, dan web
  • Di editor visual, Anda dapat merancang game 3D/2D dan antarmuka pengguna
    • Mendukung penskalaan UI otomatis dan anchor
    • Dapat diintegrasikan dengan berbagai IDE seperti Visual Studio Code, Lazarus, dan Delphi
  • Komponen menangani viewport dan susunan UI secara terpisah
    • Dunia 3D/2D dapat menggunakan scene, kamera, navigasi, primitive, pencahayaan, dan lainnya
    • UI dapat menggunakan tombol, gambar, label, dan lainnya
  • Basis kodenya adalah modern Object Pascal, dengan build cepat dan eksekusi cepat sebagai bawaan

Aset, grafis, dan distribusi

  • Metode definisi data mencakup model 3D, animasi 2D, dan sprite sheet
  • Menggunakan standar terbuka seperti glTF dan X3D, sehingga dapat terhubung dengan tool pembuatan dan repositori aset seperti Blender dan Sketchfab
  • Fitur grafisnya mencakup efek shader yang dapat dikombinasikan, bayangan, cermin, rendering berbasis fisika, bump mapping, dan koreksi gamma
  • Target lintas platform mencakup Windows, Linux, macOS, FreeBSD, Raspberry Pi, Android, iOS, Nintendo Switch, dan web
    • Anda dapat bekerja dari platform desktop mana pun
  • Kesesuaian dengan open source dan CI didukung oleh tool build baris perintah dan image Docker
    • Menyediakan dokumentasi dan file siap pakai untuk GitHub Actions, GitLab CI, Jenkins, Woodpecker CI, serta CI lainnya
    • Engine ini sepenuhnya open source dan dapat digunakan untuk membuat aplikasi apa pun, termasuk aplikasi proprietary

1 komentar

 
GN⁺ 2024-02-21
Komentar Hacker News
  • https://castle-engine.io/why_pascal

    Saya harus sedikit menyiramkan air dingin di sini. Sebagian besar alasan yang tercantum adalah hal-hal yang juga dimiliki bahasa modern lain, seperti keamanan, lintas platform, dan pustaka; salah satunya adalah keterbacaan, tapi ini sulit saya terima
    Saya menangani kode Pascal 8 jam setiap hari, tetapi menurut saya tidak lebih mudah dibaca daripada sintaks C pada umumnya; justru jauh lebih sulit dibaca. Karena harus memakai kata utuh untuk merepresentasikan sintaks, otak sulit langsung membedakan “ini struktur kode” dan “ini kode sebenarnya”, dan kata-katanya benar-benar harus dibaca. Menurut saya ini desain yang sangat tidak produktif
    Halaman ini terasa seperti ditulis 20 tahun lalu. Khususnya alasan seperti keamanan tipe mungkin akan jauh lebih meyakinkan pada masa itu

    • Saya setuju bahwa setelah membacanya setiap hari, rasanya agak membosankan, tetapi selain Pascal, saya belum pernah melihat bahasa yang bisa langsung saya baca tanpa masalah ketika kembali lagi 3 tahun kemudian
      Saya tidak tahu apakah hal seperti ini juga mungkin di bahasa lain
    • Saya sulit setuju dengan bagian itu. Saya pernah mengerjakan beberapa proyek Free Pascal, C, C++, dan proyek lainnya; dalam proyek besar, kode orang lain lebih mudah diikuti di Free Pascal dibandingkan C/C++/Java dan sebagainya
      Kecuali dalam kasus ekstrem, misalnya mencoba menulis kode berorientasi objek dengan bahasa esoterik atau bahasa berbasis XML yang hanya punya fitur imperatif, menurut saya keterbacaan bergantung pada pembacanya
      Go adalah satu-satunya bahasa lain yang mudah saya ikuti meski saya sendiri tidak terlalu mengenal bahasanya, tetapi Go fiturnya jauh lebih sederhana dan terbatas. Sebaliknya, Free Pascal adalah bahasa tipe kitchen sink yang berisi hampir segalanya, tetapi tetap termasuk mudah dibaca
      Namun menurut saya alasan utama memakai Free Pascal bukanlah bahasanya sendiri, melainkan Lazarus IDE, FCL, dan framework LCL. Kompiler yang cepat, pengoptimal yang lumayan, backend LLVM baru yang bisa dipakai saat butuh performa lebih, serta banyaknya platform yang didukung juga menjadi kelebihan
      Kompatibilitas ke belakang juga sangat penting. Jika kode yang berjalan baik beberapa tahun lalu rusak tanpa faktor eksternal, maka betapapun rapi, konsisten, dan elegannya sebuah bahasa, yang penting bagi saya adalah kode yang tadinya berjalan baik tetap terus berjalan
    • Pertama-tama ada penyorotan sintaks
      Dan setelah melihat sebuah kata beberapa kali, Anda tidak lagi “membacanya” dalam arti yang dibicarakan di sini, melainkan mencocokkannya seperti gambar dengan kata lain yang ada di kosakata dalam kepala. Dengan asumsi tidak digunakan kata-kata yang sangat mirip dalam kosakata bahasa tersebut, membaca kata tidak lebih sulit daripada membaca kurung kurawal
    • Bagi orang yang tidak suka simbol, kata-kata bisa membantu. C sangat ringkas, sedangkan Pascal panjang lebar. Mirip perbedaan antara C dan Python
      Simbol satu karakter bagi sebagian orang bisa sulit dipahami, sama seperti kata-kata bagi Anda. Dengan IDE yang baik dan struktur kode yang rapi, membedakan struktur dan kode juga menjadi lebih mudah
    • Mana yang lebih mudah dibaca antara C dan Pascal tidak ada jawaban yang mutlak; ini soal selera. Seperti warna editor, tergantung suasana hati atau waktu dalam sehari, salah satunya bisa tampak lebih mudah dibaca
      Namun alasan utama saya ingin memakai game engine Pascal untuk game adalah karena bisa menghindari garbage collection
  • Tulisan terkait:

    Why use Pascal? - https://news.ycombinator.com/item?id=36646890 - Juli 2023, 307 komentar
    Modern Object Pascal Introduction for Programmers - https://news.ycombinator.com/item?id=36371434 - Juni 2023, 3 komentar
    Castle Game Engine Roadmap - https://news.ycombinator.com/item?id=36365420 - Juni 2023, 10 komentar
    Modern Object Pascal Introduction for Programmers - https://news.ycombinator.com/item?id=28079093 - Agustus 2021, 3 komentar
    Castle Game Engine: Cross-platform 3D and 2D game engine - https://news.ycombinator.com/item?id=23741883 - Juli 2020, 20 komentar
    Castle Game Engine 6.4 released – physics, iOS services, shader pipeline upgrade - https://news.ycombinator.com/item?id=16207075 - Januari 2018, 2 komentar

  • Aku bahkan sudah tidak ingat kapan terakhir kali memakai bahasa keluarga Pascal. Pada 2001, di kelas pemrograman universitas, kami harus memakai Delphi; kampus memakai Delphi 4, tapi aku membeli Delphi 5. Setelah itu mungkin masih kuutak-atik 1–2 tahun lagi, tetapi rasanya setelah 2005 hampir tidak pernah kupakai
    Di universitas kami harus membuat program manajemen inventaris. Karena itu jurusan IT, kebanyakan orang kesulitan karena pemrograman bukan arah mereka, tetapi aku hampir seperti “anak ajaib pemrograman”, jadi langsung terbiasa dengan Delphi
    Aku sendiri tidak terlalu mengenal Delphi, tetapi begitu mulai coding dan mengetik var, begin, end, :=, dan semacamnya, aku tahu ini keluarga Pascal. Karena di SMA aku punya Turbo C dan Turbo Pascal, aku bisa sedikit lebih unggul
    Bagian yang sulit adalah menyimpan data inventaris ke file biner dan menemukan data dengan pencarian biner. Tutornya bergaya lama, jadi mungkin saja Delphi pun punya lebih banyak solusi bawaan yang sekarang dianggap wajar di Go atau C# modern
    Semua orang kesulitan membuat build lolos, dan kalau dipikir sekarang itu kenangan yang menyenangkan. Sekarang aku menempatkan Pascal dalam kategori yang sama dengan Basic. Ini terlihat seperti proyek yang menarik, tetapi aku tidak tertarik memakai Pascal, jadi bagiku itu menjadi faktor penghalang pilihan
    Meski begitu, aku tidak akan heran kalau masih ada komunitas pendukung Pascal yang cukup besar. Kalau begitu, ini kabar baik bagi mereka

    • Mungkin kita berada di rentang usia yang mirip. Saat SMA aku membuat game sederhana dan aplikasi grafis dengan Turbo Pascal, lalu belakangan membuat aplikasi bisnis dengan Delphi. Dari sisi desain bahasa, menurutku perbedaan Pascal dan C tidak sebesar itu
      Dulu ketika memindahkan kode Pascal ke C, aku biasa mengganti begin/end dengan kurung kurawal, memindahkan deklarasi antarmuka ke file header, dan mengganti fungsi-fungsi bernama jelas dengan pemanggilan strtok yang seperti sandi. Kalau dibandingkan, itu terasa jelek tanpa perlu
      Sekarang C adalah bahasa favoritku, tetapi kerapian Pascal dan keramahan Delphi bagi pengguna terus mengingatkanku seperti apa pengalaman pengembang yang hebat itu
      Aku sudah 10 tahun memakai Android Studio, tetapi sama sekali tidak mendekati pengalaman Borland Delphi Architect 20 tahun lalu. Mungkin sekarang ada fitur yang lebih canggih, tetapi kalau dibandingkan rasanya lebih seperti kekacauan yang saling terpisah
    • Sekarang bahasa apa yang lebih ingin kamu pakai?
  • Setelah belajar Basic di rumah, bahasa pemrograman “serius” pertama yang kupelajari saat masuk SMA adalah Pascal
    Namun 1–2 tahun kemudian aku menemukan C, dan sejak itu tidak lagi menengok Pascal. C terasa lebih “profesional”, lebih fleksibel, dan lebih dekat ke hardware. Pascal terasa lebih cocok untuk pengembangan aplikasi GUI, sedangkan C tampak bisa menangani apa saja, dari bagian terdalam sistem operasi sampai driver, game, dan aplikasi GUI
    Tentu saja itu pemikiran bodoh, karena Pascal juga bisa melakukan semua yang dilakukan C, tetapi bagi diriku yang masih muda, Pascal terlihat kurang “serius” dan kurang “profesional”

    • Aku punya pengalaman serupa
      Sekitar 1996–97 aku bermain-main membuat efek api dengan Turbo Pascal, tetapi kebanyakan tutorial memakai asm dan mode 13h, sementara yang kupunya hanya Turbo Pascal 5.5 yang tidak mendukung kata kunci asm
      Setelah mengutak-atik sebentar, pada akhir 1997 aku mengenal C, dan setelah melihat loop for di C, aku tidak pernah menyentuh Pascal lagi
  • Keren. Semoga proyeknya sukses. Pilihan bahasanya menarik; aku selalu menganggap Pascal hanya sebagai bahasa lama, tapi sepertinya jelas aku keliru

    • Ternyata Go pada dasarnya adalah Pascal dengan kurung kurawal, tetapi tidak ada yang menyebut Go kuno
  • Karena penasaran seperti apa bentuk codebase Pascal yang besar, aku melihat kodenya. Sejak sekitar 2001 aku tidak pernah melihat kode Pascal berukuran berarti
    Yang menarik perhatianku adalah nama file: aku tidak suka cara semua file sumber diawali dengan castle. Itu membuat lebih sulit memahami isi file dan membuat semuanya tampak mirip
    Untuk kode sebenarnya sulit kukomentari karena aku belum pernah memakai Pascal, tetapi engine-nya sendiri terlihat keren

    • Ini tidak berbeda dengan memberi awalan yy pada file yacc. Mudah untuk mengetahui mana file Castle, dan juga bisa menghindari bentrok dengan file atau unit dari pustaka lain
      Ini nyaris seperti mencari-cari kesalahan yang tidak berarti
  • Rasanya para pengembang Pascal itu pasti sedang bekerja dengan sangat produktif

    • Kalau melihat-lihat pustaka Delphi/FPC yang tersedia, praktis tidak ada yang tidak tersedia. Mulai dari widget gambar CAD sampai framework untuk membuat sistem SCADA. Sebagian besar tidak ada di GitHub, dan kalaupun ada, tidak punya ratusan bintang
      Sebaliknya, pada bahasa yang lebih populer seperti Rust yang kupakai untuk proyek, kesanku banyak proyek terlihat seperti “membuat grep untuk ke-1000 kalinya, tapi kali ini benar-benar dibuat dengan benar”
    • Object Pascal adalah bahasa pemrograman modern. Ia mendukung semua hal yang diharapkan dari bahasa berorientasi objek modern: class, unit, property, generic, interface, reflection, closure, dan sebagainya
  • Sangat disayangkan produk Delphi dikelola begitu buruk oleh Borland/Embarcadero
    Object Pascal adalah bahasa yang hebat. Saat ini hampir bisa membuat kode native untuk semua platform. Binary yang dihasilkan kecil dan cepat; levelnya mendekati C, sehingga biasanya bisa dianggap berjalan 100–10000 kali lebih cepat daripada kode Python yang serupa
    Castle Engine adalah proyek besar, dan memungkinkan pembuatan game serta aplikasi 3D dengan sangat mudah menggunakan pendekatan RAD. Berbeda dari framework Pascal besar lainnya, ini bukan produk legacy, melainkan masih dikembangkan dengan sangat aktif. Saya sangat menghormati para pengembangnya
    Proyek besar dan mengesankan lain yang serupa adalah Mormot, sebuah framework ORM/SOA/MVC berbasis kode yang sangat dioptimalkan
    Membuat aplikasi server dengan Object Pascal dan Mormot itu mudah, dan dalam situasi ketika NodeJS bisa menangani 500 request per detik, kode Pascal bisa masuk ke kisaran lebih dari 10000 request per detik
    Jadi ketika bahasa lain membutuhkan puluhan server untuk menangani beban, kode server berbasis Object Pascal bisa berjalan dengan mudah di satu server saja. Menggunakan bahasa ini dapat memangkas biaya secara besar-besaran
    Banyak orang mengingat Object Pascal hanya sebagai bahasa untuk pendidikan, tetapi bahasanya telah berkembang dan masih memiliki fitur yang tidak ada di bahasa lain. Yang sangat penting adalah RTTI, yaitu reflection. Hanya ada satu area yang tertinggal dari tren modern: multithreading/coroutine tidak terintegrasi ke dalam bahasa itu sendiri seperti Go
    Terakhir, kode yang ditulis 40 tahun lalu masih bisa dikompilasi dan dijalankan sekarang. Selama 40 tahun itu banyak bahasa sempat populer lalu menghilang, tetapi Pascal masih bertahan
    Kembali ke Castle Engine, meskipun tidak familier dengan Object Pascal, saya sangat menyarankan untuk mencoba visual editor mereka. Benar-benar mengagumkan

  • Masa ketika saya memrogram dengan Pascal(Turbo/Borland) adalah yang paling menyenangkan. “Unit” sebagai satuan kompilasi berfungsi begitu saja, dan lapisan dependensi hanya mengizinkan bentuk DAG. Kompilasi dan penggunaannya sangat cepat, begitu juga proses editing dan debugging
    Saat beralih ke Delphi, rasanya ada sesuatu yang hilang. Bukan berarti itu produk yang buruk, tetapi orang-orang mulai melihat ke tempat lain
    Meski begitu, saya masih menghargai masa-masa ketika Pascal memberi saya titik awal untuk beralih dari Apple Basic ke C/C++, serta memungkinkan saya belajar sedikit demi sedikit sambil menggunakan inline assembly