Skip to content
/ Glory Public
forked from TheMadDodger/Glory

Glory is a modular Game Engine currently in development.

Notifications You must be signed in to change notification settings

Yuniac/Glory

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Glory Engine

A modular game engine and editor.

Glory is an under development, modular game engine and editor, written in C++. It has a detailed profiler, comes with a clustered renderer supporting 3000+ dynamic lights, is fully customizable and is platform independant thanks to its modularity.

Glory Editor

Features

  • Extremely expandable due to modular design
  • Customizable editor made using ImGui
  • Scripting in any language your hearth desires (WIP on scripting branch)
  • Write custom modules
  • Built-in asset management
  • Use any graphics API
  • Project HUB
  • Runtime shader compilation and in the future cross platform shader compilation
  • Built-in profiler
  • Launcher/Hub with support for multiple editor installations (similar to Unity)
  • Built-in version system

Built-in Modules

  • Clustered Renderer
  • OpenGL Graphics API
  • Model loader using ASSIMP
  • ECS Scene System
  • Texture loading using SDL image
  • SDL Window
  • Vulkan Graphics API (WIP)

Tech

Glory uses the following libraries:

  • Dear ImGui - Open-source GUI library used by the editor.
  • ImFileDialog - An awesome file dialog widget rendered using ImGui.
  • ImGuizmo - Amazing library for 3D gizmos and grids rendered using ImGui.
  • implot - Epic library for plotting graphs in ImGui.
  • ASSIMP - Open asset import library for importing 3D files like FBX, OBJ, CAD and many more.
  • yaml-cpp - Extremely uses YAML file parser for C++.
  • SDL - Simple Direct Media Layer library, used for opening a window.
  • SDL_Image - Image loading library for SDL.
  • Vulkan SDK - The future of computer graphics.
  • GLEW - OpenGL extension wrangler library.
  • GLM - Mathematics library for graphics software.
  • Premake5 - Powerfully simple build configuration.
  • shaderc - A collection of tools, libraries and tests for shader compilation.
  • spirv-cross - Tool designed for parsing and converting SPIR-V to other shader languages.
  • stb_image.h - Single-file public domain (or MIT licensed) libraries for C/C++.

Most of these libraries come with the engine as a git sub-module or can be acquired by installing the Vulkan SDK.

Installation

Glory has been set up to use the SDL and GLM libraries that come as third-party libraries with the Vulkan SDK. Install the Vulkan SDK before running the premake scripts.

Edit the vulkan_sdk value in the premake5.lua file in the GloryEngine folder to point to where you installed the vulkan SDK. Run the generateprojects.bat file under GloryEngine/scripts to run the premake scripts and generate the visual studio project files. Open GloryEngine.sln and build the whole solution. In order to run the editor through visual studio, you must copy Modules folders inside the build folder to GloryEngine/Glorious, and add -projectPath=[path to your gproj file] as launch argument in the build options. Run the editor by running Glorious.

Run the luncher/hub by running GloriousLauncher, make sure to copy an editor build to a sub folder inside GloryEngine/GloriousLauncher/Editor or the Hub will fail to open any projects. This gets copied for you to the Build folder, if you run the GloriousLauncher.exe manually everything should work without any extra steps.

License

Personal Use Only

About

Glory is a modular Game Engine currently in development.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 89.7%
  • C# 5.0%
  • Lua 2.8%
  • GLSL 1.2%
  • C 1.1%
  • Shell 0.2%