Skip to content

A modern rendering engine, made in C++20 and on top of the Vulkan and Metal APIs.

License

Notifications You must be signed in to change notification settings

NikolayKanchevski/SierraEngine

Repository files navigation

Stand With Ukraine

Sierra Engine License

Sierra


What is Sierra Engine?

An open-source rendering engine based on C++ 20, which aims to provide users with an all-in-one development kit, suited for any graphics-intensive tasks (such as video games, 3D editors, etc.). Built on top of the Vulkan and Metal rendering APIs, it provides support for Windows 7-11, macOS, Linux, Android and iOS, and is planned to also feature other native APIs (like DirectX), as well as support consoles.


🛠️ Building and Running the Engine

Compatible compilers:

The following compilers have been tested and confirmed to be able to successfully build the project. Other ones may still be used, though there could be building issues.

  • MSVC Compiler Status
  • Clang LLVM Compiler Status
  • Clang Apple Compiler Status
  • GCC Compiler Status

Requirements:

In order to build it, you first must make sure you have the following installed (some of these modules may come with your IDE of choice):



Installation:

Simply clone the repository either directly from your favourite IDE (Visual Studio, CLion, etc.), or by opening the command line and running:

$ git clone --recursive https://github.com/NikichaTV/SierraEngine

If you clone the repository directly from an IDE, you may need to also run this:

$ git submodule update --init --recursive

And there you have it! You can now create your very own application using the Sierra API, which is contained in the Sierra subdirectory. Unfortunately, there is not an existing editor, however, rest assured, one is on its way!

Tip: In order to get a better grasp of how the API works, you can always take a look at the Sandbox project, which has a few ready-to-use examples.


💫 Features

// TODO: Add to this section :D

📄 Documentation

Documentation has not yet been published. The website that will be hosting it, however, is already done. Someone just needs to take the time to write and upload it, but this will be postponed for when a stable version of the project has been released, which is scheduled for the distant future.


🤓️ About

Frameworks used:

  • GLM - Provides the engine with a powerful set of tools for solving linear algebra problems.
  • spdlog - Used for fast, asynchronous debug-only logging.
  • Vulkan - Allows for incredibly fast rendering on a wide variety of platforms.
  • VMA - For optimal memory management of Vulkan objects.
  • Metal - Being their native rendering API, it is used for fast, hardware-accelerated rendering on Apple platforms.
  • ios-cmake - Essential for building the engine on iOS.
  • ImGui - Used in the ImGui UI extension.
  • My Brain - There is not much left of it, actually...

Software used:

  • JetBrains CLion - Primary IDE of the project.
  • JetBrains Rider - Another IDE which was used to create the .NET 6.0 prototype version of the engine.
  • Xcode - Used to deploy the iOS version on mobile Apple devices.
  • Android Studio - Deployment of Android version.
  • Blender - Managing and testing 3D models.
  • Trello - For pretending to have an organized list of things to implement next.


Total lines of code: 23,157

Last updated: 16/02/2024