Goluwa es un motor de juego, marco, una colección de servicios públicos y experimentos escritos en Luajit Aproveling FFI.
Goluwa se divide en 4 directorios. core > framework > engine > game . Volviendo hacia atrás, cada directorio depende del directorio anterior, por lo que si elimina el directorio del motor, el directorio de juegos no se cargará.
El script Shell y PowerShell que solo descargará y lanzará luajit | .exe con Core/Lua/Boot.lua
Responsable de descargar otros binarios, actualizar Goluwa y lanzar Goluwa. Es principalmente lua, pero algunas de sus funciones auxiliares usan Shell y PowerShell.
Contiene el marco Barebone que no tiene dependencias explícitas en ninguna biblioteca compartida externa. Sin embargo, para usar SSL libressl.
El marco básico que utiliza SDL, OpenGL, Openal, etc. pero no implementa nada. Tiene un renderizador que no es 2D o 3D, biblioteca de matemáticas de juegos, biblioteca de socket de alto nivel, biblioteca de renderizado 2D, etc.
El motor contiene un renderizador 3D, compatibilidad de activos de motor fuente, integración de vapor, integración de zerobrane, redes, entidades, GUI, lenguaje de marcado, etc.
La carpeta del juego contiene scripts de muy alto nivel como Löve2D implementado en Goluwa, Garrysmod Lua implementado en Goluwa, chatsounds, chatbox, marcador, movimiento de jugadores, etc.
Mientras escribo todo el código en Luajit, uso algunas bibliotecas de terceros. Mi objetivo es escribir solo el código de pegamento en Luajit con FFI en lugar de C o C ++.
core no depende estrictamente de nada más que libressl para las solicitudes HTTPS.
framework depende de algunas bibliotecas centradas en los medios como Assimp, Libarchive, SDL, etc.
Suponiendo que docker instalado puede ejecutar esta compilación de todo:
./goluwa build " * " Luego, los binarios construidos se copiarán en el */bin/linux_x64/. carpetas.
Pero aún no he descubierto una buena manera de construirlos en Windows y Mac. En teoría, podría usar binarios prebuilt que han funcionado en el pasado.
Si bien quiero admitir OSX y Windows, se vuelven de baja prioridad debido a la falta de máquinas Windows y OSX. Intento probar a Goluwa en una VM y preguntar a sus amigos, pero eso es todo lo que puedo.
Escribir todo en Luajit también viene con algunos desafíos. Intento escribir código compilable JIT, especialmente en áreas que son intensivas, pero esto no siempre es fácil sin recurrir al código feo que trato de evitar.