What is Kohi?

Kohi is the name of a game engine built from the ground-up, using C, by Travis Vroman. It is primarily built within a series of videos on the TravisVroman YouTube channel. The goal is to show one way of building a game engine, with explanations along the way as to why things are done.

Is Kohi a 2D or 3D engine?

Kohi is fully 3D.

Where does the name Kohi come from?

The name Kohi is a simplification of the Japanese word for "coffee", which makes sense given how much I love the stuff. For those of you curious about it, koohii (written in Japanese as コーヒー) is technically a loan-word from the English word "coffee". It's a bit of a round-trip, but there you have it.

How long is this project going to take?

There is no set length in mind for this. It's designed to evolve over time. Looking at many other game engines on the market, there is always more work to be done, more features to add, and more performance to be squeezed out.

What does Kohi cost to use?

Nothing at all! It's open source, licensed under Apache 2.0, which basically says you are free to use it or modify it however you want, so long as you give credit where it is due. You'll never have to pay us anything to use it. Any support that can be provided is very much appreciated, though!

Why C instead of C++?

Simply put, I have no need for most of the features of C++. Object-oriented programming is the largest thing that C++ brings to the table, and this project has no need for that. C is a much simpler language, and keeping things simple counts when working on something as implicitly complex as a game engine.

Why a custom build process? Why not CMake, Premake or some other? Why aren't you using Visual Studio?

All answers here are because I do not want to be beholden to a particular build system's or IDE's way of doing things. Visual Studio is very rigid in what it requires setup-wise, and this isn't easily translated to other platforms. Tools like CMake and Premake, while great, require quite a bit of knowledge of those systems to use effectively. Since this is a series about making game engines, I wanted to keep the build process as simple and easy to use as possible, and not weigh it down a ton with complex build processes and pipelines.

How can I support the project?

There are several ways!

What platforms are supported?

The project was started with support for both Windows and Linux. Since then, contributions are underway by the community to port it to the Mac platform for those who wish to follow along, with an official port to be done down the road.

Will the source code be available?

Yes! The engine is completely open source from the get-go, and always will be. It is Apache 2.0 Licensed. See the licence on the GitHub repository.