Skip to content

wrapperup/cool-engine-odin

Repository files navigation

cool engine

main_Y3MUECBmx6

Toy engine + Vulkan renderer I built for fun to learn Odin language (and some graphics techniques).

Features

  • Fully written by hand (Fuck off Claude). Wow so special.
  • Sparse entity system (ECS-like)
  • First person player controller based on Unreal character movement
  • Skeletal meshes and animation
  • Bindless System (see shaders/tonemapping.slang for a simple example!)
    • Bindless versions of Texture*, SamplerState and SamplerComparisonState, while keeping the usage the same.
    • Buffers use BDA
  • Metaprogram to generate assets tables and shader glue code
  • glTF loading of meshes and skeletal meshes
  • Physics (with Box3D, vendored in Odin)

Renderer Features

  • DDGI (requires hardware raytracing)
  • Parallax-Corrected Cubemaps
  • PBR + IBL + HDR based on Filament
  • Point lights
  • Tonemapping (tony-mc-mapface)
  • Very Crude Text Rendering
  • CSM
  • Compute skinning

How to build:

  1. Clone repo
  2. Run git submodule update --init --recursive to get submodules.
  3. Run build.bat to generate build/debug/main.exe. Or build.bat 1 to generate a release build in build/release/main.exe.

Screenshots

image

Dependencies

All the dependencies for this project are included as git submodules.

About

Odin version of my toy Vulkan game engine

Resources

Stars

78 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors