supernova icon indicating copy to clipboard operation
supernova copied to clipboard

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

Logo

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

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.