Skip to content

madureira/morpheus-engine

Repository files navigation


Game Engine built in C++ and OpenGL.


Initial development is underway, but there is still no stable and usable version, suitable for the public.

Features

  • Cross platform (Windows, Linux and MacOS);
  • Visual editor (multi-viewport);
  • Modern OpenGL features;
  • 2D batch rendering;
  • 2D Dynamic illumination;
  • Normal Map for 2D sprites;
  • Specular Map for 2D sprites;
  • Multiple file uploading (Drag and Drop);
  • Basic Lua scripting support;
  • PS4 controller support;

Platforms

Windows

install.bat

Double click on the generated Morpheus.sln file.

Clean installation files

clean.bat

Linux

Install build dependencies

sudo apt-get install -y build-essential xorg-dev libgtk-3-dev mingw-w64

Building Makefiles

./install.sh

Building the Engine

make config=release_x64

Opening the Editor

cd Dist/linux/Release/x64/Editor/ && ./Editor

Clean installation files

./clean.sh

MacOSX

Building Makefiles

./install.sh

Building the Engine

make config=release_x64

Opening the Editor

cd Dist/macosx/Release/x64/Editor/ && ./Editor.app

Clean installation files

./clean.sh

📷 Screenshots / :movie_camera: Video

3rd Party Libraries

The Engine uses the following libraries:

  • EnTT: Entity-component system (ECS);
  • FreeType2: Render fonts;
  • Glad: OpenGL loader;
  • GLFW: Window and input;
  • glm: OpenGL Mathematics (GLM) is a header only C++ mathematics library;
  • IconFontCppHeaders: C++11, C89 headers and C# classes for icon fonts Font Awesome;
  • ImGui: Immediate Mode Graphical User interface;
  • ImGuiColorTextEdit: Syntax highlighting text editor for ImGui;
  • Lua: Script language;
  • nativefiledialog: A tiny, neat C library that portably invokes native file open and save dialogs;
  • nlohmann: JSON for Modern C++;
  • Premake: Build configuration;
  • sol3: A C++ library binding to Lua;
  • spdlog: Very fast, header-only/compiled, C++ logging library;
  • stb_image: Image loading/decoding from file/memory;
  • TiledParser: Tiled parser;