A little OpenGL engine written in zig, inspired by my C++ engine used for Shakedown Rally.
WIP: This engine is heavily under on-and-off development and not really usable at this moment.
Note that I left this project while I was in the middle of implementing glTF texture loading, hence why main.zig is full of unsuccessful glTF experiments. You're on your own fiddling with it.
Features progress:
- Window handling
- Input
- Perspective projection camera
- Meshes
- Shaders
- Compiling
- Setting uniforms
- Materials
- Properties
- Transforms
- Textures
- Scene
- (Game)Objects
- glTF loading - partial
- Primitives (submeshes)
- Removing Objects persistence
- Dear ImGui integration
- Physics
- Audio
- Arbitrary vertex layout meshes
- Skinned meshes
- Animations
The goal of this engine is to provide a very easy to use wrapper for window, 3D rendering, model loading, scene and object creation, UI and physics, with good defaults.
For example, this will init the engine, create a fullscreen window and run the update loop for you:
pub fn main() !void {
var engine = try Engine.init(.{});
defer engine.deinit();
if (engine.isRunning()) {
// do your stuff here
}
}
Made entirely on stream which you can catch on twitch.tv/nothke.
Confirmed to build with Zig 0.13.0.
Simply run zig build run
!