All Projects → gscept → Nebula

gscept / Nebula

Licence: other
Nebula is an open-source and free-to-use modern C++ game engine.

Projects that are alternatives of or similar to Nebula

Lumino
Lumino is a framework for building real-time graphics applications.
Stars: ✭ 97 (-56.7%)
Mutual labels:  game-engine, vulkan
Flextgl
OpenGL and Vulkan header and loader generator.
Stars: ✭ 180 (-19.64%)
Mutual labels:  game-engine, vulkan
Lumberyard
Amazon Lumberyard is a free AAA game engine deeply integrated with AWS and Twitch – with full source.
Stars: ✭ 1,785 (+696.88%)
Mutual labels:  game-engine, game-engine-3d
Gl vs vk
Comparison of OpenGL and Vulkan API in terms of performance.
Stars: ✭ 65 (-70.98%)
Mutual labels:  vulkan, performance
Babylon.js
Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.
Stars: ✭ 15,479 (+6810.27%)
Mutual labels:  game-engine, game-engine-3d
Scrapengine
A very simple real-time Vulkan 3D game engine
Stars: ✭ 80 (-64.29%)
Mutual labels:  game-engine, vulkan
Alimer
Cross-platform game engine.
Stars: ✭ 172 (-23.21%)
Mutual labels:  game-engine, vulkan
Spartanengine
Game engine with an emphasis on architectual quality and performance
Stars: ✭ 869 (+287.95%)
Mutual labels:  game-engine, vulkan
Vulkan Renderer
A new 3D game engine using modern C++ and Vulkan API
Stars: ✭ 205 (-8.48%)
Mutual labels:  game-engine, vulkan
Vxr
General purpose engine written in C++ with emphasis on materials rendering (PBR, clear coat, anisotropy, iridescence)
Stars: ✭ 181 (-19.2%)
Mutual labels:  multithreading, game-engine
Vulkust
An engine for Vulkan in Rust, tries to implement modern graphic features. (suspended for now)
Stars: ✭ 64 (-71.43%)
Mutual labels:  game-engine, vulkan
Etlegacy
ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license.
Stars: ✭ 212 (-5.36%)
Mutual labels:  game-engine, game-engine-3d
Soul Engine
Physically based renderer and simulation engine for real-time applications.
Stars: ✭ 37 (-83.48%)
Mutual labels:  game-engine, vulkan
Jme Clj
A Clojure 3D Game Engine Wrapper, Powered By jMonkeyEngine
Stars: ✭ 83 (-62.95%)
Mutual labels:  game-engine, game-engine-3d
Intrinsic
Intrinsic is a Vulkan based cross-platform game and rendering engine. The project is currently in an early stage of development.
Stars: ✭ 984 (+339.29%)
Mutual labels:  game-engine, vulkan
Innocenceengine
Cross-platform modern game engine.
Stars: ✭ 149 (-33.48%)
Mutual labels:  game-engine, vulkan
Acid
A high speed C++17 Vulkan game engine
Stars: ✭ 838 (+274.11%)
Mutual labels:  game-engine, vulkan
Permafrost Engine
An OpenGL RTS game engine written in C
Stars: ✭ 851 (+279.91%)
Mutual labels:  game-engine, game-engine-3d
Ballistica
The BombSquad Game Engine
Stars: ✭ 180 (-19.64%)
Mutual labels:  game-engine, game-engine-3d
Adadoom3
Id Software's Id-tech-4-BFG in the Ada programming language.
Stars: ✭ 214 (-4.46%)
Mutual labels:  game-engine, vulkan

Nebula engine

CI

Get in contact on Discord! https://discord.gg/wuYPxUF

Check out the documentation (WIP) here: https://gscept.github.io/nebula-doc/

Requirements

  1. OS: Windows and Linux(WIP)
  2. Compiler with support for C++17.
  3. GPU and drivers supporting Vulkan 1.2+
  4. CMake 3.13+
  5. Python 3.5+
    • Python requirements (Windows):
      1. Matching architecture (64-bit if you're building for 64-bit systems)
      2. Installed for all users
      3. Added to PATH
      4. Installed with debugging symbols and binaries

Setup

Setup config

  1. ./fips set config vulkan-win64-vstudio-debug in your project directory

Build project

In your project directory:

  1. fips fetch
  2. fips physx build win-vs16 (if you are running VS 2017, use win-vs15 instead)
  3. fips anyfx setup
  4. fips build
  5. fips physx deploy

Set environment variables

Remember to run fips nebula verb to set work and toolkit directory registry variables:

  • fips nebula set work {PATH}
  • fips nebula set toolkit {PATH}

Features

Nebula is being developed continuously, which means that features keep getting added all the time. Currently, we support this:

  • Completely data-driven design from bottom to top.
  • Data structure suite, from containers to OS wrappers, everything is designed for performance and minimal call stacks.
  • Multithreading.
  • SSE-accelerated and intuitive maths library.
  • Full python supported scripting layer.
  • Advanced rendering framework and shaders.
  • Test-benches and benchmarking.
  • Profiling tools.

Rendering

A lot of effort has been made to the Nebula rendering subsystem, where we currently support:

  • Unified clustering system - fog volumes, decals and lights all go into the same structure.
  • Screen-space reflections - working condition, but still work in progress.
  • SSAO - Horizon-based ambient occlusion done in compute.
  • Physically based materials and rendering.
  • Multi-threaded subpass recording.
  • Shadow mapping for local lights and CSM for global/directional/sun light.
  • Volumetric fog and lighting.
  • Geometric decals.
  • CPU-GPU hybrid particle system.
  • Skinning and animation.
  • Scripted rendering path.
  • Vulkan.
  • Tonemapping.
  • Asynchronous compute.
  • Virtual texturing using sparse binding.
  • Fast and conservative GPU memory allocation.

Entity system

Nebula has historically had a database-centric approach to entities. With the newest iteration of Nebula, we've decided to keep improving by adopting an ECS approach, still keeping it database-centric.

  • Data-oriented
  • Data-driven
  • Minimal memory overhead per entity.
  • High performance without compromising usability or simplicity
  • Blueprint and template system for easily instantiating and categorizing entity types.
  • Automatic serialization and deserialization

Screenshots

Deferred Lighting using 3D clustering and GPU culling. Deferred Lighting using 3D clustering and GPU culling Geometric decals, culled on GPU and rendered in screen-space. Geometric decals, culled and calculated entirely on GPU Volumetric fog lighting. Volumetric fog lighting Local fog volumes. Local fog volumes Profiling tools. Profiling

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].