All Projects → ErfanMo77 → Syndra

ErfanMo77 / Syndra

Licence: Apache-2.0 license
3D Game Engine/Renderer

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
GLSL
2045 projects
lua
6591 projects
C#
18002 projects
python
139335 projects - #7 most used programming language
Batchfile
5799 projects

Projects that are alternatives of or similar to Syndra

imgui entt entity editor
A drop-in entity editor for EnTT with Dear ImGui
Stars: ✭ 146 (+265%)
Mutual labels:  imgui, ecs
DrawSpace
Space-game oriented rendering engine
Stars: ✭ 20 (-50%)
Mutual labels:  ecs, rendering-engine
Sequentity
A single-file, immediate-mode sequencer widget for C++17, Dear ImGui and EnTT
Stars: ✭ 134 (+235%)
Mutual labels:  imgui, ecs
Legion-Engine
Rythe is a data-oriented C++17 game engine built to make optimal use of modern hardware.
Stars: ✭ 502 (+1155%)
Mutual labels:  ecs, rendering-engine
Overload
3D Game engine with editor
Stars: ✭ 335 (+737.5%)
Mutual labels:  imgui, rendering-engine
Lumos
Cross-Platform C++ 2D/3D game engine
Stars: ✭ 343 (+757.5%)
Mutual labels:  imgui, ecs
Simplerenderengine
Small C++14 render engine
Stars: ✭ 253 (+532.5%)
Mutual labels:  imgui, rendering-engine
RavEngine
A fast, easy to use C++20 3D game library for modern computers
Stars: ✭ 122 (+205%)
Mutual labels:  ecs
browsengine
Engine Detection Script for Browsers on Any Device
Stars: ✭ 17 (-57.5%)
Mutual labels:  rendering-engine
terraform-aws-ecs-cluster
Terraform module for building an ECS cluster in AWS
Stars: ✭ 42 (+5%)
Mutual labels:  ecs
bawr
SVG/Font Icon processing tool for C++
Stars: ✭ 66 (+65%)
Mutual labels:  imgui
terraform-fargate-tutorial
A minimal set of Terraform to create a Fargate service
Stars: ✭ 32 (-20%)
Mutual labels:  ecs
imgui-beef
Dear ImGui wrapper for the Beef Programming Language
Stars: ✭ 20 (-50%)
Mutual labels:  imgui
roguelike tutorial
RoguelikeDev Tutorial 2018
Stars: ✭ 33 (-17.5%)
Mutual labels:  ecs
ZeloEngine
Game Engine in C++/OpenGL/Lua
Stars: ✭ 77 (+92.5%)
Mutual labels:  rendering-engine
blendmaxwell
Maxwell Render exporter for Blender
Stars: ✭ 23 (-42.5%)
Mutual labels:  rendering-engine
microui-odin
A tiny immediate-mode UI library for The Odin Programming Language
Stars: ✭ 24 (-40%)
Mutual labels:  imgui
panorama
Lightweight system monitor for Linux
Stars: ✭ 31 (-22.5%)
Mutual labels:  imgui
mine.js
🌏 A voxel engine built with JS/TS/RS. (formerly mc.js) (maybe mine.ts? or even mine.rs?)
Stars: ✭ 282 (+605%)
Mutual labels:  ecs
terraform-aws-ecs-fargate-task-definition
Terraform module to create AWS ECS Fargate Task Definition
Stars: ✭ 20 (-50%)
Mutual labels:  ecs

Syndra Engine

Syndra is an early-stage 3D game engine with a focus on real-time rendering. Syndra uses OpenGL graphics API and is being developed for the Windows platform.

Motivation

Syndra is my bachelor's thesis project, where I wanted to study how to build 3D game engines. The purpose of this project is not to make 3D games; rather, my primary motivation for making Syndra is to test and learn new algorithms and techniques used mainly in graphics and real-time rendering.

Download

Syndra-Engine v1.1.1-alpha

Showcase

Features

  • Engine

    • Editor (with docking support)
    • Entity Component System (ECS)
    • Event system
    • Console logging
    • Model and texture loading (40+ model file formats support using Assimp)
    • Scene saving and loading using YAML serialization and deserialization
    • Debug visualizer (GBuffer, HDRI map, ...)
    • Immediate mode GUI
    • Component editor (material, mesh, light, tag and camera)
    • Viewport gizmos
    • HDRI skymap loading
  • Rendering

    • Deferred Rendering
    • PBR Rendering (Cook–Torrance BRDF)
    • Materials (with texture loading)
    • Dynamic shadows
    • Different light types (directional, point lights and spot lights)
    • Soft shadows using PCSS algorithm
    • Image Based Lighting (IBL)
    • Fast Approximate Anti-Aliasing (FXAA)
    • Normal mapping

Future

  • Trello Page contains all the upcoming features.

  • Engine

    • Asset manager and content Browser
    • Physics engine
    • CPU and GPU profiling
    • Scripting system
  • Rendering

    • More debug visualizers (grid, wireframe, ...)
    • SSAO (Screen Space Ambient Occlusion)
    • SSR (Screen Space Reflection)
    • Procedural atmospheric sky
    • Point light shadows
    • Bloom
    • Compute shaders for IBL calculations

Compiling

Syndra only supports windows for now. Visual Studio 2019+ is recommended.

Start by cloning the repository with git clone --recursive https://github.com/ErfanMo77/Syndra. If the repository was cloned non-recursively previously, use git submodule update --init to clone the necessary submodules.

Syndra requires Vulkan SDK to compile shaders, so first, you have to run scripts/setup.py to install Vulkan SDK on your device. Then, you can execute GenerateProjects.bat to generate a visual studio solution file and compile the engine.

Third Party Libraries

  • GLFW : Handling windows and mouse and keyboard events.
  • Glad : OpenGL functions loader.
  • spdlog : Console debugger logging.
  • stb_image : Reading and loading textures.
  • ImGui : Immediate mode GUI used in editor UI.
  • ImGuizmo : Editor gizmos.
  • Entt : Used in Entity Component System (ECS).
  • GLM : Matrix and vector operations.
  • Assimp : Loading 3D models with support for more than 40 file formats.
  • yaml-cpp : Scene serialization and deserialization.
  • Vulkan SDK : Shader compilation and reflection.
  • Premake : Projects configuration and visual studio solution generator.

Dependencies

Authors

ErfanMo77 - Erfan Momeni

Acknowledgments

LearnOpenGL Great OpenGL tutorials!

The Cherno game engine series

Logo design : AmirMohammad Abedini

License

Licensed under the Apache License 2.0, see LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].