A game engine made as part of the Kohi Game Engine series on YouTube (and Twitch!), where we make a game engine from the ground up using C and Vulkan.

kohiengine.com

Topics
#game #windows #macos #linux #gamedev #game-engine #engine #vulkan #game-development #kohi #c #c11

Travis Vroman 5248498558 WIP editor application scaffolding 2 лет назад
.github 7be4a68483 Create FUNDING.yml 3 лет назад
.vscode 5248498558 WIP editor application scaffolding 2 лет назад
assets 710391d72b Added terrain to wireframe view, fixed a bug with pipeline creation (wireframe) 2 лет назад
editor 5248498558 WIP editor application scaffolding 2 лет назад
editor_lib 5248498558 WIP editor application scaffolding 2 лет назад
engine 775ace962c Feature/wireframe (#169) 2 лет назад
images 440a2d71b7 readme update 3 лет назад
testbed 15037bb8d7 Feature/viewport (#168) 2 лет назад
testbed_lib 710391d72b Added terrain to wireframe view, fixed a bug with pipeline creation (wireframe) 2 лет назад
tests 665e1d7d56 Created frame allocator interface, hooked up interface in various places. Also minor peformance tweaks. 2 лет назад
tools 3ab8933d1b Fixed build on Windows, removed compile_flags.txt files from tracking. 2 лет назад
versiongen 3ab8933d1b Fixed build on Windows, removed compile_flags.txt files from tracking. 2 лет назад
vulkan_renderer 710391d72b Added terrain to wireframe view, fixed a bug with pipeline creation (wireframe) 2 лет назад
.DS_Store 19d0bc3f17 Fixed macos build issues 2 лет назад
.clang-format 21f3123334 Added .clang-format 2 лет назад
.clangd 409af507c6 Grids and boxes (#157) 2 лет назад
.gitignore bc9b40272e Git ignored compile_flags.txt files. 2 лет назад
Doxyfile 5fca5ff7fc Updated doxyfile to pull more libs 2 лет назад
LICENSE 6146ccc940 Initial commit 5 лет назад
Makefile.executable.mak 9f932130ab Updated Windows build processes 2 лет назад
Makefile.library.mak 9f932130ab Updated Windows build processes 2 лет назад
build-all.bat 5248498558 WIP editor application scaffolding 2 лет назад
build-all.sh 5248498558 WIP editor application scaffolding 2 лет назад
build-debug.bat 9f932130ab Updated Windows build processes 2 лет назад
build-debug.sh 8cf14746f6 Feature/raycast (#160) 2 лет назад
build-release.bat 9f932130ab Updated Windows build processes 2 лет назад
build-release.sh 8cf14746f6 Feature/raycast (#160) 2 лет назад
build_testbed_lib.bat 11eb9febf3 Feature/hot reloading (#133) 3 лет назад
build_testbed_lib.sh 409af507c6 Grids and boxes (#157) 2 лет назад
clean.bat 9f932130ab Updated Windows build processes 2 лет назад
clean.sh 8cf14746f6 Feature/raycast (#160) 2 лет назад
post-build.bat 775ace962c Feature/wireframe (#169) 2 лет назад
post-build.sh 775ace962c Feature/wireframe (#169) 2 лет назад
readme.md 440a2d71b7 readme update 3 лет назад

readme.md

Kohi Engine

This engine is made as part of the Kohi Game Engine series on YouTube, where we make a game engine from the ground up using C and Vulkan. The series is located here: https://www.youtube.com/watch?v=dHPuU-DJoBM&list=PLv8Ddw9K0JPg1BEO-RS-0MYs423cvLVtj

The name "Kohi" (コーヒー, pronounced "koh-hee") is a simplification of the Japanese word for "coffee", which makes sense given how much I love the stuff.

Screenshot of Kohi

.important links

.plan

Kohi will be a 3D engine from the start, with most of it built from scratch with explanations along the way. The series starts off as more of a tutorial to get up and running, with explanations becoming higher level as things progress to keep the pacing up.

.platform support

Windows, Linux and macOS are all officially supported. Android and iOS runtime support may also be added down the road.

.start

To get started, clone the repository: https://github.com/travisvroman/kohi.

You will need to have Clang and the Vulkan SDK installed:

Note that you are free to use other compilers (such as gcc), but they are not officially supported at this time (although it shouldn't be much work to get them setup).

See the setup videos in the series for Windows or Linux for details. macOS setup happens significantly later in the series at video 76, when support is officially added for that platform.

.roadmap

  • Fully 3D engine with various lighting models and material types available (Basic 3d lighting, Physically-Based Rendering, etc.)
  • Multiple rendering backends:
    • Vulkan first
    • Eventually adding OpenGL and DirectX and potentially Metal
  • Suite of editor tools
  • Asset/Game Code hot-reload support
  • Physics
  • 2D/3D Sound
  • Full-fledged UI system
  • GamePad input

.goal

The goal here is simple, to provide a resource that I wish I had when learning game development; a complete guide on building a game engine from scratch, including not only design decisions, but why those decisions were made.

Of course, there is also the goal of having a game engine capable of making games. Once the project is far enough along, making a game will be done as a series on my YouTube channel as well.

It is important to note that this engine is not, and will not be for quite a while, production-ready. It is a learning tool and as such is not yet optimized for use in production-quality products. This will eventually change, but for now it is not production-ready.

.contributions

As the project progresses, community contributions are welcome via Pull Requests on GitHub.

Features should be contributed via a branch name in the format of feature/<feature name> where <feature name> is replaced with either the name of a feature or, ideally, the number of a reported feature issue (ex: feature/80 or feature/terrain).

Bug fixes must be contributed via a branch name in the format of bugfix/<issue#> where <issue#> is replaced with the number of a reported feature issue (ex: bugfix/80). Bug fixes therefore must have an associated issue created on GitHub.

Code should match the general style of the code in the repo. A code style guide will be published here at some point in the near future.

All contributions are subject to review and may or may not be accepted, or have change requests made before being accepted.

.support me

I am developing Kohi in my spare time. I don't have any sponsors at the moment. If you like my work, please feel free to support me over on Patreon or via YouTube membership. Your support is greatly appreciated and will be re-invested back into the project.