Pile is a small game engine made in the Beef Language, similar to frameworks like MonoGame/FNA and directly inspired by Foster.
It focusses on handling and abstracting some of the basic underlying workings of a game in a reasonably extendable and performant way while giving you control about the structure of the actual game logic.
Pile handles platform specific implementations through three core modules.
- System (application window, save location & input)
- Graphics
- Audio
The included core modules rely on
- SDL2 for the System
- OpenGL 3.3+ for the Graphics
- SoLoud for the Audio module Custom implementations are possible.
It also includes an extendable system for managing assets, a sprite batcher, UTF8 Unicode text rendering via SpriteFonts using TrueType fonts, performance tools and a logging system.
There are also some math structs, like Vector2 & 3, Point2 & 3, Quaternion and Rect (of integers) as well as some extensions to corelib classes, especially Math.
Guide on Getting Started. Further documentation can be found here: Wiki, Examples & Template Project
32-Bit Architectures are not supported. Windows binaries are already included. Binaries for other platforms are missing (See ./Implementations/(any)/dist/).
Help is appreciated, especially concerning supporting more platforms and core module implementations.
Pile is licensed under the MIT license, see LICENSE.txt.
Third party software used:
- fast-obj - OBJ format support
- stb_truetype - Font handling
- referencesource/System.Numerics - Parts of the structs located in ./Pile/src/Struct/*
- SDL2 - System Implementation
- SoLoud - Audio Implementation
- Beef-OpenGL-Header-Generator - GL function bindings
The licenses for the binaries of each library used in Implementation projects can be found in ./Implementations/(name)/dist/LICENSE.txt
. Source files that include third party code have a separate license notice at the top of the file.