Written in C++17, utilising SFML and PhysicsFS, Little Engine is a 2D game engine hobby project with little defined ambition or scope; and this repository demonstrates an example game using it.
Note: Visit the LittleEngine submodule here!
LEDemo pre-releases containing a demo game with Win64, Linux-x64, Linux-ARMv8 binaries can be found here.
- x64 CPU with at least two threads
- Git submodules (CMake scripts will update them automatically, and will fail to configure otherwise)
- (Optional) Python 3.5+ (for
installer.py
) - Operating System:
- Windows 7/8/10: Microsoft VC++ Runtime (x64)
- Linux: OpenAL libraries (
libopenal-dev
) - MacOSX: Python 3 (app bundles are unsigned;
installer.py
eases the UX)
- Obtain the game zip (present inside a GitHub Release zip)
- Unzip it to the installation directory and run
installer.py
via Python 3 (or unzip ".game" manually and copy the contents of "[Your OS]" into the installation directory)
Note: OSX builds are in alpha and may not be stable.
Visit the Little Engine wiki for more detailed and per-platform instructions. LEDemo
or any other game project just needs to add LittleEngine
as a library dependency, setup game initialisation through the API (and global variables) in GameLoop
, and return GameLoop::Run()
to the OS.
- x64 (ARMv8 is supported but not packaged) multi-threaded target
- CMake for the target, preferably using Ninja and LLVM
- SFML 2.5.1 source / internet access (CMake will download it)
- (Linux) libstdc++-7; all SFML dependencies (X11, Xrandr, OpenGL, UDev, Freetype, Vorbis, Flac, etc)
- (Win 10) Windows SDK for ninja/MSBuild / Clang/VC++ or MinGW for MinGW / g++
- (MacOSX) Xcode
- (Optional) Bash (native/MinGW/WSL), Python 3 (all tools scripts are in Bash/Python)
Quick Start:
- Build
LEDemo
- CMake: generate a project using
CMakeLists.txt
- Build
- CMake: generate a project using
- Run
LEDemo
- Set working directory to
Runtime
- Debug/run the built/installed executable
- Set working directory to
Short video demonstrating full project setup from scratch on Linux (v0.5.0.0).
"openal32.dll not found"
"Could not determine Runtime path" Assert
Ensure working directory is "Runtime" for the App
target.
"Default font is null" Assert
Ensure Resources
submodule is up-to-date, and GameAssets/Fonts/Default.ttf
is present.
LEDemo uses the GNU GPLv3 licence.
Note: Code of Conduct can be found here.