A downloadable game engine

Yin is a purposefully simplistic 3D game engine, written in the C programming language, that I've been developing on and off in my free time. It heavily uses my open-source utility library, dubbed the Hei Platform Library.

The latest source code is available via the GitHub page here.

The engine currently features the following.

  • Console interface, with support for setting runtime variables and commands
  • Flexible material system providing support for outlining multiple passes, blend modes and more
  • Drop-in support for new shaders, which can then be referenced by materials
  • Dynamic per-pixel lighting from multiple light sources
  • Custom package format with compression
  • Custom image format called GFX with reasonable compression and support for DXTC
  • Post-processing pipeline with support for FXAA and bloom
  • Supersampling up to 2x display resolution
  • Memory manager with garbage collection and usage tracking
  • Node format for serialisation/deserialisation; can be stored as either binary or text
  • PNG, TGA, JPG, BMP and GIF image support
  • Abstract graphics interface with support for different graphics APIs via plugins
  • Virtual file-system allowing for directories and packages to be mounted at runtime

It's been successfully used to produce both a Doom-like clone as well as a top-down arcade shooter.


2021-09-12 (v2.0 Source Code) 26 MB
2020-09-29 (v1.5 Source Code) 242 kB
2020-04-15 (v1.0 Source Code) 19 kB
2020-04-14 (v0.9 Source Code) 245 kB

Development log


Log in with itch.io to leave a comment.

How do i build it?

Do i just supply it with the missing 3rd party stuff?

(1 edit)

Sorry for the late reply. Yes, you’ll need to supply the 3rd party bits for the distribution currently available. I’ll be uploading a newer distribution soon with everything it needs.

The DIY setup wasn’t really intentional, just wanted to kick a bit of it out the door a little sooner.

no prob, i know how dependency stuff in C/CPP is bad so dont worry about it

what code lamguage?

It’s stated in the project description.

written in the C programming language

If you wanted something more specific, it’s C11.