|
|
This project is a resurrected C++ multi-platform 3D game engine that I created and actively used many years ago. The code quality varies, and the English may not be perfect. Nevertheless, the engine is surprisingly robust and can run on a variety of platforms and devices. |
- Extremum - A dynamic 3D shoot-'em-up game as a project to test various 3D features (with co-op support).
- Wild Card - A card game made with the Motor Engine, featuring a Monte Carlo Tree Search-based AI.
- Rhytm & Fight - Fun OSU!-like rhythm game with hand-drawn animated character.
- Multithreaded 3D game engine written in C++11.
- Supported platforms: Windows, Linux, and Android.
- Supported graphics modes: OpenGL 3.3, OpenGL 2.0, and OpenGL|ES.
- Lua support with a built-in graphics debug console.
- HDR, deferred lighting, and a linear color model with energy-preserving shading.
The following libraries are required to build any game using Motor Engine.
Windows users, please see the Windows Installation section below.
- From
boost(version 1.52 or higher):lexical-castmodule SDL2(version 2.0.3 or higher)SDL2_ttf(version 2.0.12 or higher)tinyxml2(version 11.0.0 or higher)lua(version 5.2.1 or higher)bullet(version 2.8.1 or higher)OpenAL(version 1.1 or higher)libogg(version 1.3.0 or higher)libvorbis(version 1.3.3 or higher)- (Windows Only)
dirent libpng(version 1.2.37 or higher)
The following Boost libraries (version 1.52 or higher) are required for games that use Lua bindings:
smart-ptrmplbindtupleconversionoptionaliteratorintegerforeachdynamic-bitset
On Windows, instead of manually installing the packages, we highly recommend to use vcpkg.
This is the list of dependencies you need to install for any game:
vcpkg install boost-lexical-cast
vcpkg install sdl2
vcpkg install sdl2-ttf
vcpkg install tinyxml2
vcpkg install lua
vcpkg install opengl
vcpkg install bullet3
vcpkg install openal-soft
vcpkg install libogg
vcpkg install libvorbis
vcpkg install dirent
vcpkg install libpng
This is the list of dependencies for a game, that needs full Lua binding support:
vcpkg install boost-smart-ptr
vcpkg install boost-mpl
vcpkg install boost-bind
vcpkg install boost-tuple
vcpkg install boost-smart-ptr
vcpkg install boost-conversion
vcpkg install boost-optional
vcpkg install boost-iterator
vcpkg install boost-integer
vcpkg install boost-foreach
vcpkg install boost-dynamic-bitset
You can install the packages using the commands:
sudo apt install libboost-dev
sudo apt install libsdl2-dev
sudo apt install libsdl2-ttf-dev
sudo apt install libtinyxml2-dev
sudo apt install liblua5.3-dev
sudo apt install libbullet-dev
sudo apt install libbullet-extras-dev
sudo apt install libopenal-dev
sudo apt install libogg-dev libvorbis-dev
sudo apt install libpng-dev
Motor Engine relies on a number of open-source libraries and projects. I would like to thank the developers and communities behind these libraries for their hard work and contributions:
- Boost - https://www.boost.org/
- SDL2 - https://www.libsdl.org/
- SDL2_ttf - https://wiki.libsdl.org/SDL2_ttf/FrontPage
- TinyXML2 - https://github.com/leethomason/tinyxml2
- Lua - https://www.lua.org/
- OpenGL - https://www.opengl.org/
- Bullet - https://github.com/bulletphysics/bullet3
- OpenAL - https://www.openal.org/
- libogg - https://xiph.org/ogg/
- libvorbis - https://xiph.org/vorbis/
- libpng - https://www.libpng.org/
- luabind - https://github.com/Oberon00/luabind
Without these libraries, Motor Engine would not be possible.
Made by Pavlo Savchuk (aka zegalur).
Motor Engine code is released under the MIT License (where applicable).
Motor Engine logo is CC0.
Third-party assets and libraries may have their own licenses attached as LICENSE-[asset-type].txt, INFO-[asset-type].txt, or LICENSE-[library-name].txt.