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

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.