
该引擎是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上的订阅/订阅。请传播这个词!
非常感谢您的支持,并将重新投资回该项目。