Skip to content

zegalur/motor-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Motor Engine

Motor Engine Logo

⚠️ DISCLAIMER ⚠️

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.

Showcases

Extremum Gameplay GIF Wild Card Gameplay GIF Rhytm&Fight Gameplay GIF
  1. Extremum - A dynamic 3D shoot-'em-up game as a project to test various 3D features (with co-op support).
  2. Wild Card - A card game made with the Motor Engine, featuring a Monte Carlo Tree Search-based AI.
  3. Rhytm & Fight - Fun OSU!-like rhythm game with hand-drawn animated character.

Features

  1. Multithreaded 3D game engine written in C++11.
  2. Supported platforms: Windows, Linux, and Android.
  3. Supported graphics modes: OpenGL 3.3, OpenGL 2.0, and OpenGL|ES.
  4. Lua support with a built-in graphics debug console.
  5. HDR, deferred lighting, and a linear color model with energy-preserving shading.

Prerequisites

The following libraries are required to build any game using Motor Engine.
Windows users, please see the Windows Installation section below.

  1. From boost (version 1.52 or higher): lexical-cast module
  2. SDL2 (version 2.0.3 or higher)
  3. SDL2_ttf (version 2.0.12 or higher)
  4. tinyxml2 (version 11.0.0 or higher)
  5. lua (version 5.2.1 or higher)
  6. bullet (version 2.8.1 or higher)
  7. OpenAL (version 1.1 or higher)
  8. libogg (version 1.3.0 or higher)
  9. libvorbis (version 1.3.3 or higher)
  10. (Windows Only) dirent
  11. libpng (version 1.2.37 or higher)

The following Boost libraries (version 1.52 or higher) are required for games that use Lua bindings:

  1. smart-ptr
  2. mpl
  3. bind
  4. tuple
  5. conversion
  6. optional
  7. iterator
  8. integer
  9. foreach
  10. dynamic-bitset

Windows Installation

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

Linux Installation

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

Acknowledgements

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:

Without these libraries, Motor Engine would not be possible.

License

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.

About

Resurrected game engine codebase (see README.md disclaimer)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published