OpenGL, sprite sheets, sprite sheet animations, sprite sheet generator,
Linux and Windows support, gamepad hotplug support, debug imgui window (key m),
camera movement, shaders,
tetragon player walk areas, animation sequences, render API abstraction,
engine/application separation, event system, layer system, batch rendering,
a GUI including its own layer system and event system,
settings manager based on yaml, resource system, zero install,
controller setup, framebuffers, tilemap support
Download for Windows: marleyInstaller.exe
Demo video
gfxRenerEngine was inspired by two Youtube series, The Cherno's Game Engine series,
and his OpenGL series. The code is partially based on The Cherno's Hazel engine. The
GUI used in gfxRenderEngine was ported over from PPSSPP and extended. The example
application and controller support are based on the emulator bundle project Marley
(https://github.com/beaumanvienna/marley).
Sprite sheet support was originally based on PPSSP code, however, the sprite sheet generator is
now based on the tutorial at https://glusoft.com/tutorials/sfml/sprite-sheet-generator.
The mascot is "borrowed" from Moneky Island (and should one day be replaced by an open-source
character). The libraries in the vendor folder are open-source projects with individual licenses.
The resource system and the settings system, as well as tilemap support, animation sequences,
character movement, etc. were written for this project.
Installation for Ubuntu:
sudo add-apt-repository ppa:beauman/marley
sudo apt-get update
sudo apt install engine
Install the source code:
git clone --recurse-submodules https://github.com/beaumanvienna/gfxRenderEngine
cd gfxRenderEngine
Ubuntu:
sudo add-apt-repository ppa:beauman/marley
sudo add-apt-repository universe
sudo apt-get update
sudo apt install premake5 git build-essential cmake xorg-dev libudev-dev libxrandr-dev libasound2-dev \
libjack-dev libglu1-mesa-dev libglib2.0-dev libsndfile1-dev libsamplerate0-dev libpulse-dev libibus-1.0-dev
Create project files for gcc:
premake5 gmake2
#define the number of CPU cores to be used for compiling
#e.g. "-j4"
#To use all available CPU cores, say:
export MAKEFLAGS=-j$(nproc)
Compile and run debug target: make verbose=1 && ./bin/Debug/engine
Compile and run release target: make config=release verbose=1 && ./bin/Release/engine
Make clean: make clean && rm -rf vendor/glfw/build && cd vendor/glew && make clean && cd ../..
Dependencies: premake5, VS2019
In a terminal, starting from the root folder gfxRenderEngine:
premake5.exe vs2019
Open the solution for gfxRenderEngine, switch to Release, and hit F5