Skip to content

BaptisteLemarcis/ArrowEngine

Repository files navigation

ArrowEngine

ArrowEngine is a custom game engine for learning purpose. It's C++ 20 based, work with vulkan and compatible on Windows and Linux, the former being less tested recently. ECS is implemented for basic system, the rendering part is not integrated to the ECS. It may be broken for some stuff but feel free to check the code.

There is still a lot to do to make a game with it, right now its nothing more than a custom 3d renderer, but I aim to improve it.

How To Build

Prerequisite

  • Vulkan installed with the following env sets
    • VULKAN_SDK (should point to the desired SDK version > 1.3)
  • CMake (vers 3.X currently used)
  • Clang compiler
  • Python 3

Linux

  • X11 development libs (libXinerama-devel, libXcursor-devel, libXi-devel)

Generate

Run the Generator Project under tools that is in C# to generate some auto files (cmake & .h/.cpp). You can then use the standard CMakes command to build & run.

Do note that I'm using ExternalProject from CMake and some repo, event if public, require authentication to be setup.

Documentation

  • Doxygen config file under the doc folder

Rendering infos

  • -Z is forward

Known bugs:

  • Scenes are locked too long mainly because of the current implementation

Known issues:

  • Clean cmake to have a better separation between Game & Engine

Engine Features:

  • Indirect Rendering
  • Materials
  • Blit
  • ImGui
  • Material instancing
  • Support subpasses in rendergraph
  • Read light & ambiant color from scene
  • Optimized serialization concept (Material, scenes, textures & all)
  • Swapchain recreate
  • Rendergraph multiwrite
  • Scripting API

Documentation :

Texture Array 2d uv

  • UV0 : Base uvs (0/1) with size included like 0 - 2
  • UV1 : First value used for layer selection

Atlas texture uv mapping

  • UV0 : Base uvs (0/1) with size included like 0 - 2
  • UV1 : Texture coord in atlas

About

Public repository for the ArrowEngine

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors