o
odinpkg.dev
packages / app / game7

game7

fba082dapp

Exploration of low-level game programming in Odin

No license · updated 21 hours ago

game7

3D platformer in Odin with a custom engine.

Work completed so far

  • Basic Vulkan renderer
    • Opinionated custom Vulkan wrapper
    • Barebones unlit shading
    • Static and skinned models loaded from glTF (.glb) files
    • Ray-traced hard shadows via VK_KHR_ray_query
    • Skeletal animation with the skinning-in-compute technique

alt text

  • Handrolled collision detection and game physics
  • Basic level saving/loading
  • Custom audio engine
    • Sine wave test output
    • .ogg file playback
  • Bugs

Build requirements

Download the following and put them in your PATH

Clone the repo and init submodules

git clone git@github.com:NickDriscoll/game7.git
cd game7
git submodule update --init --recursive

On Linux, install clang, the SDL2 developer libraries, and libc++-19 for imgui

sudo apt install clang
sudo apt install libsdl2-dev
sudo apt install libc++-19-dev

Build on Windows

.\windows_build.bat debug

Build on Linux

./linux_build.sh debug

Dependencies

  • Odin standard library
  • SDL2
  • Vulkan 1.3
  • desktop_vulkan_wrapper (My personal Vulkan helper lib)
  • Dear ImGUI
  • cgltf
  • stb_image
  • stb_vorbis