This repository contains a game and game engine prototype I developed in 2020/2021 as a hobby project.
Lithium/
- A game engine written in C++.
AssetBase/
- A basic asset compiler/packer for Lithium
.
Article/
- A game prototype which uses the Lithium
engine.
Lithium was originally based off an early state of the Hazel Engine. This was simply to give me a boost in understanding how to structure the basics of an engine. Since then, I have added dozens of features and have adapted the code base to my needs and understanding. Features of the engine include:
- an API agnostic OpenGL / DirectX 11 renderer
- A multi-channel SDF text renderer using msdfgen and HarfBuzz
- 3D Audio using OpenAL
- packed assets built with
AssetBase
- a multithreaded video player using FFmpeg
AssetBase is the asset compiler / formatter / packer for Lithium
. It uses Google FlatBuffers to serialise and pack the assets into files. It features:
- msdf font generation
- ShaderConductor to translate HLSL to GLSL (code)
Article is a prototype game built with Lithium. It features:
- ImGui overlays (console, performance diagnostics, config viewer)
- Lua UI scripting
- an entity component system using entt
- Box2D physics
- two persistent threads, one for rendering and one for game logic
I had to remove a lot of library binaries that used to be in the repo so I could stop paying for GitHub large file storage. It is likely impossible to build and run the project at the moment.