
該引擎是YouTube上KOHI遊戲引擎系列(現已在Twitch上現場直播)的一部分,在那裡我們使用C和Vulkan從頭開始製作遊戲引擎。
Kohi這個名字(コーヒー,發音為“ Koh-hee”)是對日語單詞“咖啡”的簡化,鑑於我對這些東西有多愛,這是有意義的。
原始YouTube系列位於這裡:https://www.youtube.com/watch?v=dhpuu-djobm&list=plv8ddddw9k0jpg1beo-rs-rs-0mys-0mys423cvlvtj。
抽搐流在這裡發生:https://twitch.tv/travisvroman。






Kohi從一開始就一直是3D引擎,其中大部分是從頭開始構建的。一路上將有許多解釋和探索。該系列的開始是一個可以啟動和運行的教程,隨著事情的進步以保持節奏,解釋變得更高。最終,我們過渡到Twitch上的直播,大多數編碼都在流中進行了一些離線工作,而脫機工作不太有趣。
Windows,Linux和MacOS均得到正式支持。也可以在道路上增加Android和iOS運行時支持。
儘管為減少依賴項而做出了最大的努力,但每個平台都有必須安裝的東西才能正常工作。
通過軟件包管理器安裝這些:
gitmakelibx11-devlibxkbcommon-x11-devlibx11-xcb-dev通過Homebrew或其他軟件包經理安裝這些:
gitmake您將需要安裝Clang 13+和Vulkan SDK:
音頻插件需要開放安裝。
sudo apt install openal ubuntu或sudo pacman -S openal )brew install openal-soft 。在M1 Mac上註意,此安裝到/opt/homebrew/opt/openal-soft/ ,其中include , lib和'bin目錄。 build-all.sh腳本說明了此版本的安裝。首先,請獲取當前平台的所有先決條件(請參見上文)。之後,克隆存儲庫: git clone https://github.com/travisvroman/kohi 。
請注意,您可以自由使用其他編譯器(例如GCC),但目前尚未正式支持它們(儘管設置它們不應該做很多工作)。
有關詳細信息,請參見Windows或Linux系列中的設置視頻。 MACOS設置在該系列的第76頁中很大程度上發生,當時該平台正式添加支持。
有兩種可用的構建類型,調試和發布。調試包括調試符號,對於開發和探索是最佳的,而發行卻是性能的理想選擇。還有一個“清潔”可用來清理構建文件,在調試/發布之間切換時,或由於缺少文件(即切換分支)而發生奇怪的鏈接錯誤時,這很有用。
打開命令提示符或powerShell實例,然後運行build-debug.bat文件以進行調試構建,或build-release.bat for Release Build構建。也有一個clean.bat 。
打開一個終端並運行build-debug.sh文件以進行調試構建,或以build-release.sh版本構建。還有一個clean.sh 。
目前,“ TestBed”是使用Kohi的可執行文件。它應使用/bin的工作目錄運行。在Windows中的命令提示符/PowerShell中,或Linux/MacOS中的終端, cd bin進入BIN文件夾,然後在Windows上運行testbed.exe或僅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標準UI,其中包含一般使用的控件集合,例如按鈕,標籤,文本框等。這是保留模式UI。testbed.assets包含所有資產,由測試床應用程序加載。testbed.kapp應用程序/.exe。消耗應用程序可執行文件,加載testbed.klib,配置/使用插件和其他kohi庫。testbed.klib =共享庫/.dll。包含應用程序特定的應用程序代碼(或“遊戲代碼”)。熱可加載。kohi.tools.versiongen應用程序/.exe。一個小型實用程序,該實用程序使用傳遞的主要版本和次要版本編號生成版本,並根據日期和時間自動生成的構建和修訂號。用於kohi和插件的版本。kohi.tools命令行工具的集合。目前主要是空的,但是當編輯器開發開始時將花費。.vscode一個包含VS特定於代碼的項目設置的文件夾。 請參閱此處。
這裡的目標很簡單,可以提供我希望學習遊戲開發時擁有的資源。關於從頭開始構建遊戲引擎的完整指南,不僅包括設計決策,而且是為什麼做出這些決定的原因。還應注意的是,儘管這是構建遊戲引擎的一種方式,但這並不是構建遊戲引擎的唯一方法。
當然,還有一個能夠製作遊戲的遊戲引擎的目標。一旦該項目就足夠了,製作遊戲也將在我的YouTube頻道上作為系列。
重要的是要注意,這款引擎不是,並且不會在很長一段時間內準備生產。它是一種學習工具,因此尚未在生產品質產品中進行優化。這最終會改變,但目前尚未準備就緒。
隨著項目的進行,歡迎通過GitHub上的拉請求進行貢獻。
功能應以feature/<feature name>格式的分支名稱進行貢獻,其中<feature name>被替換為功能的名稱,或者理想情況下,已報告的功能問題的數量(例如: feature/80或feature/terrain )。
錯誤修復必須通過bugfix/<issue#>格式的分支名稱進行貢獻,其中<issue#>被報告的功能問題的數量替換(例如: bugfix/80 )。因此,錯誤修復必須具有在GitHub上創建的關聯問題。
代碼應匹配存儲庫中代碼的一般樣式。代碼樣式指南將在不久的將來的某個時候發布。
所有貢獻都需要進行審查,並且可能會被接受,也可能不會被接受,或者在被接受之前提出了更改請求。
我在業餘時間正在開發Kohi。目前我沒有任何讚助商。如果您喜歡我的工作,請隨時在這些地方支持我:
我也非常感謝YouTube和Twitch上的訂閱/訂閱。請傳播這個詞!
非常感謝您的支持,並將重新投資回該項目。