Goluwa - это игровой двигатель, Framework, коллекция коммунальных услуг и экспериментов, написанных в Luajit, использующем FFI.
Голува разделен на 4 каталоги. core > framework > engine > game . Переходя назад, каждый каталог зависит от предыдущего каталога, поэтому, если вы удалите каталог двигателя, каталог игры не загружается.
Сценарий Shell and PowerShell, который будет только загружать и запустить Luajit | .exe с Core/lua/boot.lua
Отвечает за загрузку других двоичных файлов, обновление Goluwa и запуск Goluwa. Это в основном Lua, но некоторые из ее вспомогательных функций используют Shell и PowerShell.
Содержит структуру Barebone, которая не имеет явных зависимостей от любых внешних общих библиотек. Однако использовать SSL Libressl.
Основная структура, использующая SDL, OpenGL, Openal и т. Д., Но ничего не реализует. У него есть рендеринг, который не является 2D или 3D, математическая библиотека, библиотека высокого уровня, библиотека 2D рендеринга и т. Д.
Двигатель содержит 3D -рендеринг, совместимость активов двигателя исходного двигателя, интеграция Steam, интеграция Zerobrane, сеть, объекты, графический интерфейс, язык разметки и т. Д.
Игровая папка содержит сценарии очень высокого уровня, такие как 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. Я стараюсь протестировать Голуву в виртуальной машине и спрашивать друзей, но это примерно как я могу сделать.
Написание всего в Luajit также приходит с некоторыми проблемами. Я пытаюсь написать компилируемый код JIT, особенно в областях, которые интенсивны, но это не всегда легко, не прибегая к уродливому коду, которых я стараюсь избежать.