
تم صنع هذا المحرك كجزء من سلسلة Kohi Game Engine على YouTube (التي تم بثها الآن على Twitch) ، حيث نقوم بصنع محرك لعبة من الألف إلى الياء باستخدام C و Vulkan.
اسم Kohi (コーヒー ، المعلن "Koh-hee") هو تبسيط للكلمة اليابانية لـ "Coffee" ، وهو أمر منطقي نظرًا لمدى أحب الأشياء.
تقع سلسلة YouTube الأصلية هنا: https://www.youtube.com/watch؟v=dhpuu-djobm&list=plv8ddw9k0jpg1beo-rs-0mys423cvlvtj.
يحدث دفق نشل هنا: https://twitch.tv/travisvroman.






لقد كان Kohi محركًا ثلاثي الأبعاد منذ البداية ، حيث تم بناء معظمه من الصفر. سيكون هناك العديد من التفسيرات والاستكشافات على طول الطريق. تبدأ السلسلة أكثر من برنامج تعليمي للاستيقاظ والتشغيل ، حيث أصبحت التفسيرات أعلى مستوى مع تقدم الأمور للحفاظ على السرعة. ننتقل في نهاية المطاف إلى المباريات المباشرة على Twitch ، مع إجراء معظم الترميز على التيار مع بعض الأعمال غير المتصلة بالإنترنت التي تكون أقل إثارة للاهتمام في وضع عدم الاتصال.
يتم دعم Windows و Linux و MacOS رسميًا. يمكن أيضًا إضافة دعم وقت تشغيل Android و IOS على الطريق.
على الرغم من أن أعلى جهد بذل لتقليل التبعيات ، فإن كل منصة لديها أشياء يجب تثبيتها حتى تعمل هذا.
قم بتثبيت هذه عبر Package Manager:
gitmakelibx11-devlibxkbcommon-x11-devlibx11-xcb-devقم بتثبيتها عبر Homebrew أو مديرة الحزمة الأخرى:
gitmakeستحتاج إلى Clang 13+ وتثبيت Vulkan SDK:
يتطلب البرنامج المساعد الصوتي تثبيت Openal.
sudo apt install openal لـ Ubuntu أو sudo pacman -S openal On Arch)brew install openal-soft . ملاحظة على M1 MACs يتم تثبيتها على /opt/homebrew/opt/openal-soft/ ، حيث يمكن العثور على أدلة include و lib و 'bin . يقوم برنامج build-all.sh Script بحساب هذا الإصدار من التثبيت. للبدء ، احصل على جميع المتطلبات المسبقة لمنصتك الحالية (انظر أعلاه). بعد ذلك ، استنساخ المستودع: git clone https://github.com/travisvroman/kohi .
لاحظ أنك حرة في استخدام المترجمين الآخرين (مثل GCC) ، لكنها ليست مدعومة رسميًا في هذا الوقت (على الرغم من أنه لا ينبغي أن يكون هناك الكثير من العمل للحصول عليها).
شاهد مقاطع الفيديو إعداد في السلسلة لنظام التشغيل Windows أو Linux للحصول على التفاصيل. يحدث إعداد MacOS بشكل كبير في وقت لاحق في السلسلة في Video 76 ، عندما يتم إضافة الدعم رسميًا لهذا النظام الأساسي.
هناك نوعان من البناء متاحين ، تصحيح وإصدار. يتضمن التصحيح رموز التصحيح وهو مثالي للتطوير والاستكشاف ، في حين أن الإصدار مثالي للأداء. هناك أيضًا "نظيف" متاح لتنظيف الملفات المبنية ، وهو أمر مفيد عند التبديل بين التصحيح/الإصدار ، أو عند حدوث أخطاء ربط غريبة بسبب الملفات المفقودة (أي فروع تبديل).
افتح مثيل أوامر أو مثيل PowerShell وقم بتشغيل ملف build-debug.bat لبناء تصحيح أو build-release.bat . هناك أيضا clean.bat .
افتح محطة وقم بتشغيل ملف build-debug.sh لبناء تصحيح أو build-release.sh لبناء الإصدار. هناك أيضا clean.sh متاح.
في الوقت الحالي ، "Testbed" هو القابل للتنفيذ الذي يستخدم kohi. يجب أن يتم تشغيله مع دليل العمل من /bin . في موجه الأوامر/PowerShell في Windows ، أو محطة في Linux/MacOS ، cd bin للوصول إلى مجلد BIN ، ثم قم بتشغيل testbed.exe على Windows أو فقط testbed Linux/MacOs.
يعتمد انهيار الهيكل هذا على المجلد الجذر للمستودع. يتم حذف بعض الملفات/المجلدات من هذا الوصف لأنها ليست مهمة للصورة العامة.
kohi.core - مكتبة مشتركة/.dll. يحتوي على أنواع ، حاويات ، سلسلة LIB ، MATH LIB ، utils ، إلخ. وكذلك طبقة النظام الأساسي (Win32 ، Linux ، MacOS).kohi.core.tests - مجموعة صغيرة من اختبارات الوحدة للمكتبة الأساسية. يحتاج إلى توسيع.kohi.runtime - مكتبة مشتركة/.dll. يحتوي على منطق المحرك الأساسي وكذلك العديد من أنظمة المحرك الأساسية.kohi.plugin.audio.openal - مكتبة مشتركة/.dll. يحتوي على المكون الإضافي الصوتي الذي يستخدم Openal مثل الواجهة الخلفية الصوتية.kohi.plugin.renderer.vulkan - مكتبة مشتركة/.dll. يحتوي على المكون الإضافي للعديد من Vulkan ، والذي يعمل بمثابة الواجهة الخلفية للمحرك لـ Vulkan.kohi.plugin.ui.standard - مكتبة مشتركة/.dll. يحتوي على واجهة المستخدم القياسية KOHI ، التي تحتوي على مجموعة من عناصر التحكم في الاستخدام العام مثل الأزرار والعلامات ومربعات النص ، إلخ.testbed.assets - يحتوي على جميع الأصول التي سيتم تحميلها بواسطة تطبيق Testbed.testbed.kapp - application/.exe. تطبيق الاستهلاك القابل للتنفيذ ، يتم تحميل up testbed.klib ، تكوين/يستخدم المكونات الإضافية ومكتبات KOHI الأخرى.testbed.klib = مكتبة مشتركة/.dll. يحتوي على رمز التطبيق (أو "رمز اللعبة") خاص بالتطبيق. الساخنة القابلة للتحميل.kohi.tools.versiongen - application/.exe. أداة صغيرة تنشئ إصدارًا باستخدام أرقام الإصدار الرئيسية والثانوية ، وأرقام الإنشاء والمراجعة التي تم إنشاؤها تلقائيًا بناءً على التاريخ والوقت. تستخدم لإصدار بناء kohi والمكونات الإضافية.kohi.tools - مجموعة من أدوات سطر الأوامر. في الغالب فارغة في الوقت الحالي ، ولكن سيتم إنفاقها عندما يبدأ تطوير المحرر..vscode مجلد يحتوي على إعداد مشروع خاص بـ Code. انظر هنا.
الهدف هنا بسيط ، لتوفير مورد أتمنى أن يكون لدي عند تعلم تطوير اللعبة ؛ دليل كامل لبناء محرك لعبة من نقطة الصفر ، بما في ذلك ليس فقط قرارات التصميم ، ولكن لماذا تم اتخاذ هذه القرارات. تجدر الإشارة أيضًا إلى أنه على الرغم من أن هذه طريقة لبناء محرك لعبة ، فإنها ليست الطريقة الوحيدة لبناء واحدة.
بالطبع ، هناك أيضًا هدف وجود محرك ألعاب قادر على صنع الألعاب. بمجرد أن يكون المشروع بعيدًا بما فيه الكفاية ، سيتم إجراء لعبة كسلسلة على قناة YouTube الخاصة بي أيضًا.
من المهم أن نلاحظ أن هذا المحرك ليس كذلك ، ولن يكون لفترة طويلة جاهزة للإنتاج. إنها أداة تعليمية ، وبالتالي لم يتم تحسينها بعد للاستخدام في منتجات جودة الإنتاج. سيتغير هذا في نهاية المطاف ، ولكن الآن ليس جاهزًا للإنتاج.
مع تقدم المشروع ، يتم الترحيب بالمساهمات المجتمعية عبر طلبات السحب على Github.
يجب المساهمة بالميزات عبر اسم الفرع بتنسيق feature/<feature name> حيث يتم استبدال <feature name> باسم ميزة أو ، من الناحية المثالية ، عدد مشكلة الميزة المبلغ عنها (على سبيل المثال: feature/80 أو feature/terrain ).
يجب المساهمة في إصلاحات الأخطاء عبر اسم الفرع بتنسيق bugfix/<issue#> حيث يتم استبدال <issue#> بعدد مشكلة الميزة المبلغ عنها (على سبيل المثال: bugfix/80 ). لذلك يجب أن يكون للإصلاحات قضية مرتبطة بها على GitHub.
يجب أن يتطابق الكود مع النمط العام للرمز في الريبو. سيتم نشر دليل نمط الكود هنا في مرحلة ما في المستقبل القريب.
تخضع جميع المساهمات للمراجعة وقد يتم قبولها أو لا يتم قبولها ، أو يتم تقديم طلبات تغيير قبل قبولها.
أنا أقوم بتطوير كوهي في وقت فراغي. ليس لدي أي رعاة في الوقت الحالي. إذا كنت تحب عملي ، فلا تتردد في دعمني في هذه الأماكن:
كما أنني أقدر تقديراً كبيراً من المتابعة/الاشتراكات على YouTube و Twitch. الرجاء نشر الكلمة!
يتم تقدير دعمكم بشكل كبير وسيتم إعادة استثماره مرة أخرى في المشروع.