Goluwa是一种游戏引擎,框架,用Luajit撰写的FFI编写的实用程序和实验集。
Goluwa分为4个目录。 core > framework > engine > game 。向后走,每个目录取决于先前的目录,因此,如果删除了引擎目录,则游戏目录将不会加载。
Shell and PowerShell脚本仅下载并启动使用core/lua/boot.lua的luajit | .exe
负责下载其他二进制文件,更新Goluwa并启动Goluwa。它主要是LUA,但其某些辅助功能使用Shell和PowerShell。
包含对任何外部共享库的明确依赖性的准排骨框架。但是,要使用SSL libressl。
利用SDL,OpenGL,OpenAl等的基本框架,但没有实施任何内容。它的渲染器既不是2D或3D,游戏数学库,高级插座库,2D渲染库,等等。
该引擎包含3D渲染器,源引擎资产兼容性,蒸汽集成,Zerobrane集成,网络,实体,GUI,标记语言等。
游戏文件夹包含在Goluwa中实现的Löve2D,Garrysmod Lua在Goluwa中实现的诸如Löve2D,ChatSounds,Chatbox,Chatbox,Soceboard,Player Moviess等。
在Luajit中编写所有代码时,我使用一些第三部分C库。我的目标是仅用FFI而不是C ++编写Luajit中的胶水代码。
core并不严格取决于任何https请求的libressl。
framework取决于某些以媒体为中心的库,例如Assimp,Libarchive,SDL等。
假设安装了docker ,您可以运行此构建的所有内容:
./goluwa build " * "然后,构建的二进制文件将复制到*/bin/linux_x64/.文件夹。
但是我还没有找到一种在Windows和Mac上构建这些的好方法。从理论上讲,您可以使用过去有效的预制二进制文件。
尽管我想支持OSX和Windows,但由于缺乏窗口和OSX机器,它们变得较低。我尝试在VM中测试Goluwa并问朋友,但这与我所能做的一样多。
在卢阿吉特(Luajit)写的所有内容也遇到了一些挑战。我尝试编写JIT可编译的代码,尤其是在密集的领域,但如果不借用我试图避免的丑陋代码,这并不总是那么容易。