An open API service indexing awesome lists of open source software.

https://github.com/supernovaengine/supernova

Game engine for 2D and 3D projects with entity component system (ECS) and data-oriented design
https://github.com/supernovaengine/supernova

cross-platform data-oriented-design directx ecs entity-component-system game-dev game-development game-engine gamedev metalapi opengl opengl-es

Last synced: 4 months ago
JSON representation

Game engine for 2D and 3D projects with entity component system (ECS) and data-oriented design

Awesome Lists containing this project

README

          

![Logo](http://www.supernovaengine.org/img/logo_blue.png)

![](https://github.com/supernovaengine/supernova/actions/workflows/android.yml/badge.svg)
![](https://github.com/supernovaengine/supernova/actions/workflows/build-tool.yml/badge.svg)
![](https://github.com/supernovaengine/supernova/actions/workflows/cmake-desktop.yml/badge.svg)

[![Join our Discord](https://img.shields.io/discord/1356958061880934480?label=Discord&logo=discord&style=flat&color=5865F2)](https://discord.gg/yXXDyJf3gT)

**Entity component system (ECS)** and **data-oriented design** engine using object oriented for API.

Supernova is a **free** and open-source, cross-platform game engine for creating 2D and 3D projects with Lua or C++. It is lightweight and promotes the simplest way to use the best performance of a data-oriented design.

![Screenshot1](https://supernovaengine.org/img/gh_screen.png)

Live samples: https://samples.supernovaengine.org/

## Supports

- Web (with Emscripten - OpenGL ES)
- Android (OpenGL ES)
- iOS (Metal, OpenGL ES)
- macOS (Metal, OpenGL)
- Linux (OpenGL)
- Windows (DirectX, OpenGL)

## Features

* 2D and 3D scenes
* GLTF and OBJ models load
* Model skin and morph targets
* PBR shaders
* Lights
* Dynamic shadows
* Particle system
* Animations
* Sprites
* Fog and sky
* UI
* Terrain LOD
* Textures and shaders pool
* 3D audio
* Cross-platform persistence system
* Multithreading support
* 2D and 3D physics
* Instancing

## Upcoming features

* More UI components
* Water
* Editor
* Networking

## Samples

For all samples source code:

https://github.com/supernovaengine/supernova-samples

## Documentation

**(in development)**

For tutorials and all engine information:

https://docs.supernovaengine.org/

### Building

- Building for Windows: https://docs.supernovaengine.org/getting-started/building/building-for-windows
- Building for Linux: https://docs.supernovaengine.org/getting-started/building/building-for-linux
- Building for macOS: https://docs.supernovaengine.org/getting-started/building/building-for-macos
- Building for iOS: https://docs.supernovaengine.org/getting-started/building/building-for-ios
- Building for Android: https://docs.supernovaengine.org/getting-started/building/building-for-android
- Building for HTML5: https://docs.supernovaengine.org/getting-started/building/building-for-html5

## Third party libraries

* sokol - https://github.com/floooh/sokol - Zlib License
* Lua - https://www.lua.org - MIT license
* LuaBridge 3.0 - https://github.com/kunitoki/LuaBridge3 - MIT License
* Soloud - https://github.com/jarikomppa/soloud - Zlib/LibPng license
* stb - https://github.com/nothings/stb - MIT license
* json - https://github.com/nlohmann/json - MIT license
* tinygltf - https://github.com/syoyo/tinygltf - MIT license
* tinyobjloader - https://github.com/tinyobjloader/tinyobjloader - MIT license
* tinyxml2 - https://github.com/leethomason/tinyxml2 - Zlib License
* Box2D - https://github.com/erincatto/box2d - MIT license
* JoltPhysics - https://github.com/jrouwe/JoltPhysics - MIT license

## License

Licensed under MIT license, you can use freely for whatever you want, including commercial projects.