Skip to content

oxylusengine/Oxylus

Repository files navigation

Oxylus Engine

Logo
CI Discord

About

Oxylus is a simple yet powerful data-driven game engine built in C++ with a focus on developer productivity and performance. It is free and will be open-source forever!

Be aware that Oxylus is still in it's early stages of development. Some important features and documentation might be missing. Oxylus will have many API breaking changes both on C++ and Lua. Only use if you're okay with these.

Design Goals

  • Powerful: Full support for both 2D and 3D development
  • Intuitive: Beginner-friendly yet endlessly adaptable for power users
  • Data-Driven: Built on a "true" Entity Component System (ECS) for efficient data handling
  • Modular: Use only the parts you need, swap out the rest
  • Fast: Optimized for speed with parallel processing where possible
  • Code-First: The editor is optional, build entire games programmatically or use the editor as a productivity aid

Feature Highlights

  • Modular Vulkan renderer built using vuk with modern rendering features:
    • Meshlet Rendering
    • GI with Brixelizer
    • GTAO
    • SSSR
    • AMD FSR 3
    • PCF Cascaded Directional, Spot and Point Light Shadows
    • Physically Based Bloom
    • Depth Of Field
    • HDR
    • Tonemapping
    • Chromatic Aberration
    • Film Grain
    • Vignette
    • Sharpen
    • and many more various post-processing effects.
    • 2D Pipeline
      • Animated sprites
      • Tilemaps
  • Multithreaded physics with Jolt.
  • Lua scripting with flecs events and systems.
    • Automatic component reflection with sol3 and flecs.
  • A featureful editor built with Dear ImGui to aid the development process.
  • 3D Audio with miniaudio

Building

Windows, Linux and Mac (with MoltenVK) is supported.

Requirements

Steps

  • To configure the project run:
    • xmake f --toolchain=clang --runtimes=c++_static -m debug
      • Change --toolchain= for the toolchain you want to use.
      • Pick a mode -m debug, release, dist
      • Optionals:
        • --lua_bindings Compile lua bindings (true by default)
        • --profile Enable tracy profiler (false by default)
  • To build the project run:
    • xmake build
  • To run the editor with xmake run:
    • xmake r OxylusEditor
  • Or to manually run it make sure to copy required binaries in /build/bin to executable directory created by this command:
    • xmake install -o ./build

Releases

No releases published

Sponsor this project

 

Contributors 4

  •  
  •  
  •  
  •  

Languages