All Projects → Illation → Etengine

Illation / Etengine

Licence: mit
Realtime 3D Game-Engine with a focus on space sim. Written in C++ 14

Programming Languages

cpp14
131 projects

Projects that are alternatives of or similar to Etengine

Lumixengine
3D C++ Game Engine - yet another open source game engine
Stars: ✭ 2,604 (+538.24%)
Mutual labels:  game-development, game-engine, 3d-game-engine, entity-component-system, editor
Daemon
The Dæmon game engine. With some bits of ioq3 and XreaL.
Stars: ✭ 136 (-66.67%)
Mutual labels:  game-development, game-engine, 3d-game-engine, opengl, pbr
Flaxapi
Old repository with C# Editor and C# API for creating games in Flax Engine
Stars: ✭ 131 (-67.89%)
Mutual labels:  game-development, game-engine, 3d-game-engine, editor
Fxgl
Stars: ✭ 2,378 (+482.84%)
Mutual labels:  game-development, game-engine, 3d-game-engine, 3d
Glas
WebGL in WebAssembly with AssemblyScript
Stars: ✭ 278 (-31.86%)
Mutual labels:  game-development, game-engine, 3d-game-engine, 3d
Entitas Cpp
Entitas++ is a fast Entity Component System (ECS) C++11 port of Entitas C#
Stars: ✭ 229 (-43.87%)
Mutual labels:  ecs, game-development, game-engine, entity-component-system
Blue Flame Engine
A 3D/2D game engine that supports both DirectX11 and OpenGL 4.5
Stars: ✭ 129 (-68.38%)
Mutual labels:  game-development, game-engine, 3d-game-engine, opengl
Kengine
Entity-Component-System (ECS) with a focus on ease-of-use, runtime extensibility and compile-time type safety and clarity.
Stars: ✭ 417 (+2.21%)
Mutual labels:  ecs, game-development, game-engine, entity-component-system
Yage
Simple game engine, written in C++
Stars: ✭ 7 (-98.28%)
Mutual labels:  game-development, game-engine, opengl, entity-component-system
Rust Game Development Frameworks
List of curated frameworks by the **Game Development in Rust** community.
Stars: ✭ 81 (-80.15%)
Mutual labels:  ecs, game-development, opengl, entity-component-system
Entt
Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more
Stars: ✭ 6,017 (+1374.75%)
Mutual labels:  ecs, game-development, game-engine, entity-component-system
Uecs
Ubpa Entity-Component-System (U ECS) in Unity3D-style
Stars: ✭ 174 (-57.35%)
Mutual labels:  ecs, game-development, game-engine, entity-component-system
Octopuskit
2D ECS game engine in 100% Swift + SwiftUI for iOS, macOS, tvOS
Stars: ✭ 246 (-39.71%)
Mutual labels:  ecs, game-development, game-engine, entity-component-system
Openage
Free (as in freedom) open source clone of the Age of Empires II engine 🚀
Stars: ✭ 10,712 (+2525.49%)
Mutual labels:  game-development, game-engine, opengl, entity-component-system
O2
2D Game Engine with visual WYSIWYG editor
Stars: ✭ 121 (-70.34%)
Mutual labels:  game-development, game-engine, opengl, editor
Limonengine
3D FPS game engine with full dynamic lighting and shadows
Stars: ✭ 331 (-18.87%)
Mutual labels:  game-development, game-engine, opengl, 3d
Engine
A basic cross-platform 3D game engine
Stars: ✭ 208 (-49.02%)
Mutual labels:  game-engine, 3d-game-engine, opengl, 3d
Roygbiv
A 3D engine for the Web
Stars: ✭ 499 (+22.3%)
Mutual labels:  game-development, game-engine, 3d-game-engine, 3d
Entitas Csharp
Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
Stars: ✭ 5,393 (+1221.81%)
Mutual labels:  ecs, game-development, game-engine, entity-component-system
Defaultecs
Entity Component System framework aiming for syntax and usage simplicity with maximum performance for game development.
Stars: ✭ 286 (-29.9%)
Mutual labels:  ecs, game-development, game-engine, entity-component-system

Discord

Realtime 3D Graphics/Simulation/Game-Engine written in C++ 14.


Focus is on ease of use, extensibility, performance and providing rendering features for planet scale environments, enabling space games and simulations.

E.T. stands for "extra terrestial" due to the goal for this technology to go to space one day.

This project is under active development, and while a wide range of features are implemented and the overall architecture is approaching a cohesive state, many of the planned improvements are likely to touch a large crossection of the codebase. Therefore, while breaking changes are usually implemented in separate branches, the interface on the master branch changes relatively frequently.


Discuss it on Discord!


Features:

Rendering

PBR from space

Rendering is based on modern principals including Physically based Rendering. The data driven material system allows for custom shaders and parameter inheritance through material instances (similar to UE4). A variety of rendering features aimed at space simulation have been implemented, such as planet terrain generation, atmospheric scattering and Starfields based on real sky data.

Modular Architecture

The project is split into multiple libraries. Low level libraries such as core or rendering can be used independently from high level ones such as the framework. Many features have interfaces and implementations, allowing overriding of functionality. If you want to implement your own renderer or support a different file system, you can do that.

Data oriented design

Many performance critical sections have been programmed with aspects such as cache locality in mind. The renderer uses an optimized scene structure and can operate independently from the gameplay side scene. Gameplay features are implemented using an Archetype based Entity Component System.

Data Driven

Anything that is not a behavior can be described with data. The Resource manager allows for custom asset types. Reflection of data structures allows for automated serialization and deserialization of content. The work in progress editor will allow for easy editing, and control the workflow from Content creation tools to optimized engine formats.



How to build

For visual studio 2017:

git clone https://github.com/Illation/ETEngine
cd ETEngine/Projects/Demo
cmake -G "Visual Studio 15 2017 Win64" -S . -B build
cmake --build build --target all --config Develop
cmake --build build --target install
cmake --build build --target cook-installed-resources-EtEngineDemo

For more information (including unit tests and content cooking) check the build documentation.

Continuous Integration

Due to an issue with library dependencies CI is currently not working. However the project has been built outside of automated build scripts and works just fine.

Background

This project started off in 2016 as an OpenGL graphics framework based on the "Overlord Engine" (Dx11) from the Graphics Programming course at Howest University

In parallel I was writing my graduation work on realtime planet rendering, and in 2017 I merged the two projects into this engine.

Since then I added a variety of graphics and gameplay features, however due to the design at the time this was getting increasingly difficult.

Therefore, starting in 2019, the main focus has been on improving the Architecture and focusing on useability and extensibility, and the codebase has been nearly completely rewritten since.

Approximate Changelog

0.0 :

  • Initial OpenGL Graphics Framework implementation

0.1 :

  • Virtual File System
  • Deferred rendering
  • Physically based rendering
  • Post processing
  • Planet rendering
  • atmospheric scattering

0.2 :

  • Custom math library
  • Physics and Audio integration
  • Unit testing
  • Continuous integration
  • Json parser, GLTF

0.3 :

  • CMake build
  • Separate core library - update system
  • reflection; serialization / deserialization

0.4 :

  • Resource Manager, Asset Database
  • Package file format
  • Cooker
  • Asset Pointer

0.5 :

  • GTKmm based editor app
  • Abstract Graphics API
  • Cross context rendering viewport - support for multiple (3D) viewports
  • Flexible editor tool windowing system

0.6 :

  • Separated rendering / framework / runtime libraries
  • Optimized render scene with minimal graphics objects - scene renderer no longer traverses scene graph
  • Data driven material system

0.7 :

  • Archetype based Entity Component System
  • Removed previous scene graph structure, all game object behavior is expressed through components and systems
  • Scene Descriptor asset - scenes now described in files
  • Application Runtime and Editor can share custom data assets through common library

Third Party

For a list of third party libraries and licenses check HERE.

Screenshots

Atmosphere and Planets

upper atmosphere atmospheric perspective Stars surface view

Render Pipeline; Physics

Lights with deferred rendering and Bloom PBR and IBL

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