Skip to content

beaumanvienna/gfxRenderEngine

Repository files navigation

gfxRenderEngine: A graphics rendering engine



Features

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

History

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 and Build Instructions

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

Linux Build Instructions


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 ../..

Windows Build Instructions


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