Goluwa adalah mesin game, kerangka kerja, kumpulan utilitas dan eksperimen yang ditulis dalam Luajit yang memanfaatkan FFI.
Goluwa dibagi menjadi 4 direktori. core > framework > engine > game . Kembali ke belakang, setiap direktori tergantung pada direktori sebelumnya, jadi jika Anda menghapus direktori mesin, direktori game tidak akan dimuat.
Skrip shell dan powershell yang hanya akan mengunduh dan meluncurkan luajit | .exe dengan core/lua/boot.lua
Bertanggung jawab untuk mengunduh biner lainnya, memperbarui Goluwa dan meluncurkan Goluwa. Sebagian besar Lua tetapi beberapa fungsi pembantu menggunakan Shell dan PowerShell.
Berisi kerangka kerja barebone yang tidak memiliki dependensi eksplisit pada perpustakaan bersama eksternal. Namun untuk menggunakan SSL Libressl.
Kerangka dasar yang memanfaatkan SDL, OpenGL, Openal, dll tetapi tidak menerapkan apa pun. Ini memiliki renderer yang bukan 2D atau 3D, Perpustakaan Matematika Game, Perpustakaan Soket Tingkat Tinggi, Perpustakaan Rendering 2D, dll.
Mesin berisi renderer 3D, kompatibilitas aset mesin, integrasi uap, integrasi zerobrane, jaringan, entitas, GUI, bahasa markup, dll.
Folder game berisi skrip tingkat sangat tinggi seperti Löve2D yang diimplementasikan di Goluwa, Garrysmod Lua diimplementasikan di Goluwa, obrolan, chatbox, papan skor, gerakan pemain, dll.
Sementara saya menulis semua kode di Luajit, saya menggunakan beberapa perpustakaan C Thirdparty C. Tujuan saya adalah hanya menulis kode lem di Luajit dengan FFI alih -alih C atau C ++.
core tidak sepenuhnya bergantung pada apa pun kecuali Libressl untuk permintaan HTTPS.
framework tergantung pada beberapa perpustakaan sentris media seperti Assip, Libarchive, SDL, dll.
Dengan asumsi docker terpasang, Anda dapat menjalankan ini membangun semuanya:
./goluwa build " * " Kemudian binari yang dibangun akan disalin ke dalam */bin/linux_x64/. folder.
Tapi saya belum menemukan cara yang baik untuk membangunnya di Windows dan Mac .. secara teori Anda bisa menggunakan binari prebuilt yang telah bekerja di masa lalu.
Sementara saya ingin mendukung OSX dan Windows, mereka menjadi prioritas rendah karena kurangnya mesin Windows dan OSX. Saya mencoba menguji Goluwa dalam VM dan bertanya kepada teman -teman tetapi itu sebanyak yang saya bisa.
Menulis semuanya di Luajit juga hadir dengan beberapa tantangan. Saya mencoba menulis kode yang dapat dikompilasi JIT, terutama di area yang intensif tetapi ini tidak selalu mudah tanpa menggunakan kode jelek yang saya coba hindari.