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.