# GPlayEngine
**Repository Path**: jiankors/GPlayEngine
## Basic Information
- **Project Name**: GPlayEngine
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2018-11-04
- **Last Updated**: 2024-06-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# GPlayEngine
GPlayEngine is a C++ cross-platform game engine for creating 2D/3D games.
GPlayEngine is based on the [GamePlay 3D engine](http://www.gameplay3d.io/) v3.0 and principally replace the OpenGL 2.x backend to use the [BGFX](https://github.com/bkaradzic/bgfx) graphic framework.
## Screenshots




## Current status
- Cmake is used as main build system (qtcreator is also up-to-date)
- bgfx integration is completed and replace opengl.
- bgfx is currently forced to use the opengl driver because engine still use some old glsl shaders. A pass on shaders is planned to use the bgfx shader syntax to be fully compatible with others bgfx backends.
- Engine now use SDL2 by default to manage windows and inputs. Gamepad are not yet implanted.
- Lua is temporarily disabled to speed up the compilation during core dev phase.
- All previous samples and demo are now working with the new renderer.
- A new sample "sample-graphics" is used to test bgfx conversion and new features.
- Only tested on Linux, Windows and Emscripten for now.
## Install submodules dependencies
Some thirdparty libraries are registered as submodules, you need to install them before building engine.
```
git submodule init
git submodule update
```
## Building
See [wiki - compiling framework](https://github.com/fredakilla/GPlayEngine/wiki/Compiling-framework) for build instructions.
## Features
- BGFX based rendering system.
- Scene graph system with support for lights, cameras, audio, physics, and drawables.
- Declarative scene, animation, particles and material bindings.
- Material system with built-in shader library (forward rendering).
- Post-processing.
- Physics using Bullet.
- Particle effects with built-in particle system or SPARK engine system.
- Height map based terrains with multiple surface layers and LOD.
- Easy-to-use sprite, tileset and text rendering.
- Declarative UI system supporing 2D/3D theme-able user interfaces.
- Nice, customizable and complete built-in 2D GUI, with buttons, lists, edit boxes, layout...
- ImGui GUI support.
- File watcher system for hot reloading (shaders, scripts...)
- Fully extensible animation system with skeletal character animation.
- Complete 3D audio system with WAV and OGG support.
- AI agent, state machine and messaging.
- Event messaging system.
- Full vector math library with 2D/3D math and visibility culling.
- Mouse, keyboard, touch, gestures and gamepad support.
- Lua script bindings and user binding generator tool.
- Binary encoding tool for creating optimized asset bundles for TTF fonts and 3D FBX assets.
- Documented using doxygen.
- Image supported format (DDS, KTX, PVR, JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC)
- 3D model supported format (FBX)
## License
Open-source under Apache 2.0 license.