Written in C++17, utilising SFML and PhysicsFS, Little Engine is a 2D game engine hobby project with little defined ambition or scope; in other words, let's see where we can take this!
- CMake project - develop/build (almost) anywhere
- Full keyboard, mouse and single joystick support
- Custom 2D coordinate system using 3x3 matrices
- Quad, Quads, Rectangle, Circle, and Text primitives
- Asynchronous rendering on a dedicated thread; light main/game thread
- Dynamic game Entities/Components with Circle and AABB collision detection
- Cache-friendly Particle Systems with distributed updation
- Engine Repository with async loading, asset manifests, and sounds & music playback
- In-game Console, Tweakable variables, Profiler, and other debugging tools
- Stack and Context-based UI Framework
- Various Python3 tools for asset cooking, app packaging, etc
LittleEngine pre-releases containing a demo game with Win64, Linux-x64, and MacOSX binaries can be found here.
- x64 CPU with at least two threads
- (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 (
installer.py
creates the app bundle)
- Obtain the game zip (present inside a GitHub Release zip)
- Move it to the installation directory and unzip it
- Run installer.py via Python 3 (or unzip ".game" manually and copy the contents of "[Your OS]" into its parent directory)
Note: OSX builds are in alpha and may not be stable.
Visit the Little Engine wiki for more detailed and per-platform instructions.
- 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) Python 3 (all tools scripts are in Python)
Note: Due to GitHub's limitations with (free) LFS, Runtime Assets have been moved to DropBox since 0.4.4.0.
Note: Scripts in
Runtime/Utils
are only designed to work when run fromRuntime
orRuntime/Utils
.
Quick Start:
- Build
ThirdParty
- CMake: generate a project using
Source/ThirdParty/CMakeLists.txt
- Build
Debug
andRelease
/RelWithDebInfo
- CMake: generate a project using
- Build
LittleEngine
- CMake: generate a project using
Source/CMakeLists.txt
- Build / install (copies executable and libraries to
Runtime
)
- CMake: generate a project using
- Run
LittleEngine
- Set working directory to
Runtime
- Extract and merge Runtime Assets into
Runtime
- Debug/run the built/installed executable
- Set working directory to
Short video demonstrating full project setup from scratch on Linux (v0.4.7.0).
LittleEngine uses the GNU GPLv3 licence.
Note: Code of Conduct can be found here.