Goluwa ist ein Spielermotor, ein Framework, eine Sammlung von Versorgungsunternehmen und Experimenten, die in Luajit geschrieben wurden und die FFI nutzen.
Goluwa ist in 4 Verzeichnisse aufgeteilt. core > framework > engine > game . Wenn Sie rückwärts gehen, hängt jedes Verzeichnis vom vorherigen Verzeichnis ab. Wenn Sie also das Engine -Verzeichnis löschen, wird das Spielverzeichnis nicht geladen.
Das Shell- und PowerShell -Skript, das nur luajit | .exe mit Core/lua/boot.lua heruntergeladen und startet
Verantwortlich für das Herunterladen anderer Binärdateien, das Aktualisieren von Goluwa und das Starten von Goluwa. Es ist hauptsächlich Lua, aber einige seiner Helferfunktionen verwenden Shell und PowerShell.
Enthält das Barebone -Framework, das keine expliziten Abhängigkeiten von externen gemeinsamen Bibliotheken hat. Um SSL Libressl zu verwenden.
Das grundlegende Framework, das SDL, OpenGL, Openal usw. verwendet, implementiert jedoch nichts. Es verfügt über einen Renderer, der weder 2D noch 3D, Game Math Library, hochrangige Socket -Bibliothek, 2D -Rendering -Bibliothek usw. ist.
Der Engine enthält einen 3D -Renderer, die Kompatibilität der Quellmotor -Vermögenswerte, eine Dampfintegration, Zerobrane -Integration, Netzwerk, Entitäten, GUI, Markup -Sprache usw.
Der Spielordner enthält sehr hohe Skripte wie Löve2d in Goluwa, Garrysmod Lua in Goluwa, Chatsounds, Chatbox, Anzeigetafel, Spielerbewegung usw. implementiert.
Während ich den gesamten Code in Luajit schreibe, verwende ich einige Drittanteilsbibliotheken. Mein Ziel ist es, mit FFI anstelle von C oder C ++ nur Klebercode in Luajit zu schreiben.
core ist für HTTPS -Anfragen nicht streng von etwas außer Libressl abhängig.
framework hängt von einigen medienorientierten Bibliotheken wie Annahme, Libarchive, SDL usw. ab.
Angenommen, docker installiert ist, können Sie dieses Build alles ausführen:
./goluwa build " * " Dann werden die gebauten Binärdateien in */bin/linux_x64/. Ordner.
Aber ich habe noch nicht einen guten Weg herausgefunden, um diese unter Windows und Mac zu erstellen. Theoretisch könnten Sie vorgefertigte Binärdateien verwenden, die in der Vergangenheit funktioniert haben.
Während ich OSX und Windows unterstützen möchte, werden sie aufgrund des Mangels an Windows- und OSX -Maschinen zu niedrigem Priorität. Ich versuche Goluwa in einer VM zu testen und Freunde zu fragen, aber das ist ungefähr so viel wie ich kann.
Das Schreiben von allem in Luajit hat auch einige Herausforderungen. Ich versuche, JIT -kompilierbaren Code zu schreiben, insbesondere in intensiven Bereichen, aber dies ist nicht immer einfach, ohne auf hässliche Code zurückzugreifen, den ich vermeiden möchte.