Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/congard/algine

Open Source OpenGL C++ Engine
https://github.com/congard/algine

3d 3d-engine 3d-graphics android android-library cplusplus cpp cpp20 cross-platform engine3d linux lua open-source opengl opengl-es opengles opensource windows

Last synced: 2 months ago
JSON representation

Open Source OpenGL C++ Engine

Awesome Lists containing this project

README

        

# Algine

Algine - OpenGL 3.3+ engine written in C++

[![Codacy Badge](https://api.codacy.com/project/badge/Grade/40d3479da92040c79c5570336aff3697)](https://www.codacy.com/manual/congard/algine?utm_source=github.com&utm_medium=referral&utm_content=congard/algine&utm_campaign=Badge_Grade)

**Supported platforms:** Linux, Android, Windows

**Target platforms:** Linux (clang), Android

**Recommended toolchain:** clang + mold

[![Algine v1.6 alpha](pictures/1.png)](https://youtu.be/pYUXtRl-LTs)

## Functionality

Short overview:

* Core
* Textures
* Framebuffers & Renderbuffers
* Shaders & Shader programs
* Buffers (Array, Index, Uniform etc)
* Contexts / multithreading
* Widgets (font rendering, canvas, layouts etc)
* Logging
* Debugging (including Algine SOP)
* Custom shader preprocessor
* Built-in GLSL modules and shaders
* Platform-specific functionality
* Lua as main scripting language (coming soon)
* etc
* Std
* Skeletal animations
* Model loading (support of 40+ 3D model formats thanks to [Assimp](https://github.com/assimp/assimp))
* Custom materials (amtl)
* Cameras
* Basic effects
* etc
* Ext
* Lighting
* Shadow mapping

The engine has a modular design.

Algine can be embedded in your [Qt application](doc/build/README.md)

## Roadmap

Main goals for now (in priority order):

- [ ] [Lua as main scripting language](doc/lua.md)
- [x] Creators
- [ ] Core components (Engine, Texture2D, Framebuffer etc)
- [ ] Widgets
- [x] GLM classes (vec3, vec4, mat3, mat4, quat) and core functionality
- [x] Replace JSON configs with Lua scripts
- [x] Remove classes `Transferable` and `FileTransferable`
- [ ] Editor (UI: Lua + AlgineWidgets; Core: C++)

## Examples

Repository with my sandbox: [algine-examples](https://github.com/congard/algine-examples)

More examples will be published soon.

## Building

See [doc/build](doc/build/README.md)

## Contact

* Telegram: [congard](https://t.me/congard)
* Email: [[email protected]](mailto:[email protected])

## Donate

Payeer: P36281059

Or you can do it even without finance. Just open [this](http://fainbory.com/8aWY) link

Thank you.