Goluwaは、FFIを活用するLuajitで書かれたゲームエンジン、フレームワーク、ユーティリティのコレクション、および実験です。
ゴルワは4つのディレクトリに分かれています。 core > framework > engine > game 。後方に進むと、各ディレクトリは前のディレクトリに依存するため、エンジンディレクトリを削除すると、ゲームディレクトリはロードされません。
core/lua/boot.luaを使用してluajit | .exeのみをダウンロードして起動するシェルとパワーシェルスクリプト
他のバイナリのダウンロード、Goluwaの更新、Goluwaの発売を担当します。それはほとんどがルアですが、そのヘルパー関数のいくつかはシェルとパワーシェルを使用しています。
外部共有ライブラリに明示的な依存関係がないベアボーンフレームワークが含まれています。ただし、SSL libresslを使用します。
SDL、OpenGL、Openalなどを利用する基本的なフレームワークですが、何も実装していません。 2Dまたは3Dのいずれでもないレンダラー、ゲーム数学ライブラリ、高レベルソケットライブラリ、2Dレンダリングライブラリなど。
エンジンには、3Dレンダラー、ソースエンジンアセット互換性、蒸気統合、ゼロブレーン統合、ネットワーキング、エンティティ、GUI、マークアップ言語などが含まれています。
ゲームフォルダーには、Goluwaに実装されたLöve2D、Goluwa、Chatsounds、Chatbox、Scoreboard、Player Movementなどに実装されたGarrysmod Luaなどの非常に高いレベルのスクリプトが含まれています。
Luajitですべてのコードを書いている間、サードパーティCライブラリを使用しています。私の目標は、CまたはC ++の代わりにFFIを使用してLuajitの接着コードのみを書くことです。
core 、HTTPSリクエストのLibressl以外のものに厳密に依存していません。
framework 、Assimp、Libarchive、SDLなどのメディア中心のライブラリに依存します。
dockerがインストールされていると仮定すると、このビルドをすべて実行できます。
./goluwa build " * "その後、構築されたバイナリは*/bin/linux_x64/.フォルダー。
しかし、私はこれらをWindowsとMacに構築する良い方法をまだ考えていません。理論的には、過去に機能していた事前に構築されたバイナリを使用できます。
OSXとWindowsをサポートしたいのですが、WindowsとOSXマシンの不足により優先度が低くなります。私はVMでゴルワをテストして友人に尋ねようとしていますが、それは私ができることと同じくらいです。
Luajitですべてを書くことには、いくつかの課題もあります。特に集中的な領域でJITコンパイラブルコードを作成しようとしていますが、これは私が避けようとしている醜いコードに頼らずには必ずしも簡単ではありません。