Goluwa هو محرك لعبة ، إطار عمل ، مجموعة من المرافق والتجارب المكتوبة في Luajit الاستفادة من FFI.
ينقسم Goluwa إلى 4 أدلة. core > framework > engine > game . بعد العودة إلى الوراء ، يعتمد كل دليل على الدليل السابق ، لذلك إذا قمت بحذف دليل المحرك ، فلن يتم تحميل دليل اللعبة.
البرنامج النصي Shell and PowerShell الذي سيقوم فقط بتنزيل وإطلاق Luajit | .Exe مع Core/Lua/Boot.lua
مسؤول عن تنزيل الثنائيات الأخرى ، وتحديث Goluwa وإطلاق Goluwa. إنه في الغالب لوا ولكن بعض وظائف المساعد تستخدم Shell و PowerShell.
يحتوي على إطار عمل Barebone الذي لا يحتوي على تبعيات صريحة على أي مكتبات مشتركة خارجية. ومع ذلك لاستخدام SSL libressl.
الإطار الأساسي الذي يستخدم SDL ، OpenGL ، Openal ، إلخ ، لكنه لا ينفذ أي شيء. يحتوي على عارض ليس ثنائي الأبعاد أو ثلاثي الأبعاد ، مكتبة رياضيات اللعبة ، مكتبة المقبس عالية المستوى ، مكتبة عرض ثنائية الأبعاد ، إلخ.
يحتوي المحرك على عارض ثلاثي الأبعاد ، وتوافق أصول المحرك المصدر ، وتكامل البخار ، وتكامل Zerobrane ، والشبكات ، والكيانات ، واجهة المستخدم الرسومية ، لغة الترميز ، إلخ.
يحتوي مجلد اللعبة على برامج نصية عالية المستوى للغاية مثل Löve2d المنفذة في Goluwa ، وتم تنفيذ Garrysmod Lua في Goluwa ، و Chatsounds ، و Chatbox ، ولوحة النتائج ، وحركة المشغل ، وما إلى ذلك.
بينما أكتب كل التعليمات البرمجية في 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. أحاول اختبار Goluwa في VM وأسأل الأصدقاء ، لكن هذا بقدر ما أستطيع القيام به.
كتابة كل شيء في لوجيت يأتي أيضا مع بعض التحديات. أحاول أن أكتب رمزًا قابلاً للتجميع ، خاصة في المناطق المكثفة ، لكن هذا ليس سهلاً دائمًا دون اللجوء إلى رمز قبيح أحاول تجنبه.