Goluwa เป็นเครื่องมือเกมเฟรมเวิร์กคอลเลกชันของสาธารณูปโภคและการทดลองที่เขียนขึ้นใน Luajit Leveraging FFI
Goluwa แบ่งออกเป็น 4 ไดเรกทอรี core > framework > engine > game ไปย้อนกลับแต่ละไดเรกทอรีขึ้นอยู่กับไดเรกทอรีก่อนหน้าดังนั้นหากคุณลบไดเรกทอรีเครื่องยนต์ไดเรกทอรีเกมจะไม่โหลด
สคริปต์เชลล์และ PowerShell ที่จะดาวน์โหลดและเปิดตัว luajit | .exe ด้วย core/lua/boot.lua
รับผิดชอบในการดาวน์โหลดไบนารีอื่น ๆ อัปเดต Goluwa และเปิดตัว Goluwa ส่วนใหญ่เป็น Lua แต่ฟังก์ชั่นผู้ช่วยบางอย่างใช้เชลล์และ PowerShell
มีกรอบกระดูกเปลือยที่ไม่มีการพึ่งพาอย่างชัดเจนในห้องสมุดที่ใช้ร่วมกันภายนอกใด ๆ อย่างไรก็ตามเพื่อใช้ SSL Libressl
เฟรมเวิร์กพื้นฐานที่ใช้ SDL, OpenGL, Openal ฯลฯ แต่ไม่ได้ใช้อะไรเลย มันมีเรนเดอร์ซึ่งไม่ใช่ 2D หรือ 3D, ห้องสมุดคณิตศาสตร์เกม, ห้องสมุดซ็อกเก็ตระดับสูง, ห้องสมุดการเรนเดอร์ 2D ฯลฯ
เครื่องยนต์มีตัวเรนเดอร์ 3 มิติ, ความเข้ากันได้ของสินทรัพย์เครื่องยนต์ต้นฉบับ, การรวมไอน้ำ, การรวม Zerobrane, เครือข่าย, เอนทิตี, GUI, ภาษามาร์กอัป ฯลฯ
โฟลเดอร์เกมมีสคริปต์ระดับสูงมากเช่นLöve2Dที่ใช้ใน Goluwa, Garrysmod Lua ที่ใช้ใน Goluwa, แชทซาวด์, แชทบอร์ด, สกอร์บอร์ด, การเคลื่อนไหวของผู้เล่น ฯลฯ
ในขณะที่ฉันเขียนโค้ดทั้งหมดใน Luajit ฉันใช้ห้องสมุด C ที่สาม เป้าหมายของฉันคือการเขียนรหัสกาวใน Luajit ด้วย FFI แทน C หรือ C ++
core ไม่ได้ขึ้นอยู่กับอะไรเลยนอกจาก Libressl สำหรับคำขอ HTTPS
framework ขึ้นอยู่กับห้องสมุดศูนย์กลางของสื่อเช่น Assimp, Libarchive, SDL ฯลฯ
สมมติว่า docker ติดตั้งคุณสามารถเรียกใช้งานสร้างนี้ทุกอย่าง:
./goluwa build " * " จากนั้นไบนารีที่สร้างขึ้นจะถูกคัดลอกไปยัง */bin/linux_x64/. โฟลเดอร์
แต่ฉันยังไม่ได้คิดหาวิธีที่ดีในการสร้างสิ่งเหล่านี้บน Windows และ Mac .. ในทางทฤษฎีคุณสามารถใช้ไบนารีที่สร้างไว้ล่วงหน้าซึ่งเคยทำงานในอดีต
ในขณะที่ฉันต้องการสนับสนุน OSX และ Windows พวกเขามีความสำคัญต่ำเนื่องจากขาดเครื่อง Windows และ OSX ฉันพยายามทดสอบ Goluwa ใน VM และถามเพื่อน แต่นั่นก็เกี่ยวกับที่ฉันทำได้
การเขียนทุกอย่างใน Luajit ก็มาพร้อมกับความท้าทายบางอย่าง ฉันพยายามเขียนรหัส JIT ที่รวบรวมได้โดยเฉพาะอย่างยิ่งในพื้นที่ที่เข้มข้น แต่นี่ไม่ใช่เรื่องง่ายเสมอไปโดยไม่ต้องใช้รหัสน่าเกลียดซึ่งฉันพยายามหลีกเลี่ยง