Skip to content

BEASTSM96/Saturn-Engine

Repository files navigation

Saturn

License Repo Size Repo Size Trello

Saturn is primarily an early-stage game engine for Windows.
Currently Saturn is built in Vulkan, in the furture we want to support other graphics APIs.

Getting Started

Visual Studio 2022 is recommended as Saturn is officially untested on other development environments whilst we focus on a Windows build.

First, start by cloning the repository with git clone --recursive https://github.com/BEASTSM96/Saturn-Engine.

If the repository was previously cloned non-recursively then use git submodule update --init to clone the necessary submodules.

Make sure to check that you are on the branch vulkan. If not you can run git checkout vulkan

Generating project files (Windows)

In order to start you will need to download Premake

Download · Learn More

You may have to add the premake executable to you PATH environment variable.

To generate the project files, you can run the premake executable that you downloaded, if you already have premake installed make sure it can support generating Visual Studio 2022 project files (premake version v5.0.0-beta1 onwards).

So for generating the project files on Visual Studio 2022 you'd do premake5.exe vs2022

Compiling the engine (Windows)

To compile the engine simply open the newly generated project files and build the entire solution.

Running the engine (Windows)

Before launching the editor you must create a new project as this repo does not contain a default project. So, set the project browser as the startup project and run (F5), create a new project and launch it from the browser.

You will need to edit SaturnEditor.cpp in order for your project to launch by default!

Todo list

  • Core
    • Custom Title bar
    • Event System
    • Input
    • Window
    • Asset Manager
    • Projects
    • ECS (entt)
    • Virtual Filesystem
  • Renderer
    • Core Renderer
    • PBR
    • Shadows
    • Material
    • Bloom
    • Soft shadows
    • SSAO, HBAO+, GTAO, VXAO
    • Instanced Rendering
    • Skybox
    • Shader Hot Reloading
  • 2D Renderer
    • Line Rendering (world space)
    • Quad Rendering (world space)
    • Text rendering (world space)
    • Billboard Rendering (world space)
    • Line Rendering (screen space)
    • Quad Rendering (screen space)
    • Text Rendering (screen space)
    • Game UI System
  • Scripting (C++)
    • Core scripting
    • Core build tool
    • Scriptable Components
    • Public property viewer in the editor
    • General Game API and framework
    • Hot Code Reloading
  • Physics
    • Core PhysX API
    • Mesh Colliders (Cube, Sphere, etc)
    • Cooking of mesh colliders
    • Joints
    • Ragdolls
  • Audio
    • Initial Audio API
    • Sound Assets
    • Sound Node Editor
    • Audio Spatialization
    • Audio Groups
    • Audio Listeners
  • Asset Bundle
    • Package all assets (in binary format)
    • Compression
    • Security (encrypt asset bundle header and encrypt asset file header)
  • Editor
    • Undo/Redo
    • Content Browser Search
    • Content Browser Thumbnails
    • Drag and drop meshes relative to mouse position in world
    • Mouse Picking (select meshes from world)
    • Selection Outline
  • Releases
    • Alpha 0.0.1
    • Alpha 0.1.1
    • Alpha 0.1.2

This list is not updated often, for more accurate updates and timelines please check the Trello!