Binary downloads, created by CI are available on Github releases. Get latest release (MSI, DMG and DEB are available).
See documentation for more examples.
This project moves away from the paradigm of having Swiss Army Knife engine that can do anything and can be too bulky for some small projects. Instead, it aims to be configurable and easily expandable by plug-ins. If some plug-ins are not needed they can be removed from the project.
Thus, the Engine has the Core, which is static itself, but has many customization traits, like:
- UI library interface
UIManager
. - Input handling interface
InputManager
. - Window handling interface
WindowManager
. - Generic plugin interface
IPlugin
.
So by using these interfaces, one can easily implement new input system, add support for any UI library and so on.
As this engine is based on ECS architecture, adding new kind of game logic can be achieved by writing new EngineSystem and Component.
The Core also provides a set of convenient tools:
- serialization.
- lua bindings which can be expanded in any plug-in.
- implementation agnostic events for Mouse and Keyboard.
- executable fully configurable via json configuration file.
- logging.
- dynamic plugin loader.
- delegates, with support of event propagation to lua.
- some generic systems bundled into the core (script, movement).
You can read more documentation on http://engine.readthedocs.io/.
This engine supports three OS at the moment:
- Windows, Visual Studio 2017 and later.
- OSX, ci is using Xcode 9.4.
- Linux, ci is using Ubuntu 16.04 with GCC 5.4.
There are plans to support iOS and Android.
Use build instructions to build the engine.
Most of dependencies are vendored by Conan.
- Luajit Scripting.
- jsoncpp config/level data parsing.
- msgpackc used for released game package resources (levels/characters).
- easylogging.
- sol2 Lua bindings.
- sole UUID generator.
- inja Jinja2 like template renderer.
- POCO Networking, threading, filesystem.
- libRocket RocketUI interface.
- ogre 1.9/2.1 powered rendering system.
- OIS input from ogre dependencies (only for OGRE 1.9).
- SDL2 SDL2 windowing and input.
- recastnavigation navmesh building/pathfinding.
- dear imgui interface.
- CEF.
Fork the repo on GitHub
- Clone the project to your own machine
- Commit changes to your own branch
- Push your work back up to your fork
- Submit a Pull request with a single commit preferably
NOTE: Be sure to merge the latest from "upstream" before making a pull request!
This project is licensed under MIT license.