Skip to content

Latest commit

 

History

36 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

✦ Freyja ✦

A dual-backend graphics engine with one core, two GPU philosophies.

Odin C++ Status License


Freyja banner

✦ What is Freyja?

Freyja is being built as independent implementations of the same engine, developed in parallel so each one keeps the others honest:

Language API Role
🗡️ Odin Vulkan Primary engine — explicit, low-level, no hidden driver magic
🪶 Odin OpenGL Odin-side reference backend — same language as the Vulkan engine, simpler API
🛡️ C++ OpenGL Reference / contribution backend — fast to prototype, easy to onboard into

The Vulkan side is where the real engine work happens. Both OpenGL implementations exist as simpler counterparts for testing ideas and sanity-checking rendering results before the same approach gets ported over to Vulkan — the Odin one keeps the language consistent with the primary engine, while the C++ one is a friendlier entry point for anyone contributing who doesn't want to wade through Vulkan boilerplate on day one.


✦ Repositories

Each backend lives in its own repository:

🗡️ freyja

Odin + Vulkan — primary engine

git clone https://github.com/Amaterus1125/Freyja.git

Odin + OpenGL — reference backend

git clone https://github.com/Amaterus1125/Freyja-odin-opengl.git

C++ + OpenGL — contribution backend API + The real Backend mechanics

git clone https://github.com/Shobhit-bit/Freyja-cpp.git

Each repo also keeps its own branches for in-progress work and history (main, feature branches, etc.) — splitting into separate repos changes where each backend lives, not how branching works within it.


✦ Building

🗡️ Freyja — Odin / Vulkan

Requires:

odin run .

🪶 Freyja-odin-gl — Odin / OpenGL

Requires:

  • Odin compiler
  • (vendor:glfw / vendor:OpenGL ship with the compiler)
odin run .

🛡️ Freyja-cpp-opengl — C++ / OpenGL

Requires:

  • CMake + a C++17 compiler
  • GLAD generated once (see repo README)
cmake -B build
cmake --build build

✦ Roadmap

  • Core windowing + swapchain/context setup (all backends)
  • Basic triangle rendering (all backends)
  • Shared math / scene layer
  • Model loading
  • Lighting
  • Feature-parity checkpoint across backends

✦ Why multiple backends?

Vulkan is explicit and verbose by design, excellent for learning exactly what the GPU is doing, but slow to iterate with. OpenGL trades that control for speed. Building both side by side keeps the Vulkan engine honest against a known-simple reference, while keeping iteration fast enough to actually experiment with ideas before committing them to the "real" backend.


License: MIT  •  Status: actively in development, expect breaking changes

About

Game engine being developed in ODIN using vulkan and in CPP using opengl

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages