A Tiny 2D OpenGL based C++ Game Engine that is fast, lightweight and comes with a level editor.

Overview

GLGame (A Tiny OpenGL based C++ Game Engine)

GLGame Logo

Created by Samuel Rasquinha using C++17 and OpenGL 3.3 🎲

Note

This game engine is discontinued. No one is working on it as of now, this was merely a project to improve my understanding.

What is GLGame ?

GLGame is a Tiny OpenGL Game Engine that is simple, lightweight and easy to use.

Objective

GLGame was created to be as simple and straightforward as possible. Each part of the engine requires little to no understanding of OpenGL and other computer graphic concepts.

It uses simple type names and has simple arguments such as Object, Entity or Sprite.

Features

A Tiny 2D OpenGL based C++ Game Engine that is fast, lightweight and comes with a level editor and the below features :

  • Abstract OpenGL (To write custom code) ✓
  • Camera Culling ✓
  • Sprite Batching ✓
  • Lighting ✓
    • Custom Light colors ✓
    • Light Batching ✓
  • Animations ✓
    • Custom animation speed ✓
  • Scene Editor ✓
    • Parser ✓
    • Slight encryption ✓
    • Grid ✓
  • Transformations ✓
  • Logger ✓
  • Audio
  • Lighting ✓
  • Particles ✓
    • Particle Batcher ✓
  • Physics
  • Helper functions (such as windowing functions etc..) ✓
  • Texture atlas / Sprite Sheet api ✓
    • Custom Sampling ✓

This engine is still in development.

Features to come

I would like to implement the following features in the coming years :

  • Multithreading
  • Networking
  • Save game
  • Post Processing
  • More helper functions
  • Custom GUI Library

Compiling

To compile this project, you will need Microsoft Visual Studio 2019 and the VSC++ compiler (which supports C++17). Open the .sln file using Visual Studio and select the x86 (or Win32) configuration. You can compile it in both modes (Debug or Release) with the x86 (Win32) configuration.

About the Scene Editor

The scene editor has to be run during runtime. Just set the fifth argument of the Init() function to true and it will launch the Scene Editor with all the objects you have or will create.

Dependencies

GLGame has very humble dependencies.

  • C++17 (for std::filesystem)
  • stb_image (for reading texture files)
  • ImGui (Bloat free immediate mode GUI interface by Omar Cornut)
  • GLEW (OpenGL wrangler library)
  • GLFW (Windowing environment)

Development Specs

  • Processor : AMD Ryzen 3 2200g
  • Graphics : Integrated Vega 8 graphics
  • Ram : 8.0 GB
  • MB : AsRock A320M MB

This engine managed to get 500+ FPS in the game with the scene editor running. (With the above specs) and about 300 FPS on an intel HD 4000 GPU.

It got arount 1000+ FPS in game without the scene editor running and 400+ FPS on an Intel HD 4000.

Requirements

  • Processor : N/A
  • Graphics Card : Any graphics card that supports OpenGL 3.2 and GLSL Shading language 3.3
  • Ram : 100MB or Higher

Contact Me

If you need any help or want to report bugs please feel free to contact me :

  • Discord : @swr06 #1899

Using it

A wiki has been written for GLGame. Please refer to the demos and the Wiki tab in the repo page.

License

This project is licensed under the highly permissive MIT License. Read the LICENSE file for more info.

Supporting this project

If you like this project and would like to support it, please do star it on GitHub.

Screenshots and Demos

GLGame Demo-1

A Basic lighting demo created with the built-in 2D Light classes and batchers

GLGame Demo-2

A Basic lighting demo emulated over a 2D sprite

GLGame Demo-3

The GLGame Scene Editor created and rendered at runtime

GLGame Demo-4

The particle emitter demo that has a particle batcher and can render upto 10,000 particles in one draw call

GLGame Demo-5

The batch renderer that comes with GLGame can render upto 10,000 sprites in one draw call

GLGame Platformer Demo

A platformer demo that comes included with GLGame

Thankyou for visiting the GLGame github page.

You might also like...
an AI and gameplay editor for game development, written by c++ , suppport lua and python

an AI and gameplay editor for game development, written by c++ , suppport lua and python

A repository of gate-level simulators and tools for the original Game Boy.
A repository of gate-level simulators and tools for the original Game Boy.

GateBoy is a gate-level simulation of the original Game Boy hardware that was reverse-engineered from die shots of the original DMG-01 chip.

Creating Unreal Engine infinite landscapes/oceans using the editor shader graph and rendering them using Geometry ClipMap. It also allows to spawn mesh on landscape surface. UE5 required
Creating Unreal Engine infinite landscapes/oceans using the editor shader graph and rendering them using Geometry ClipMap. It also allows to spawn mesh on landscape surface. UE5 required

Procedural Landscapes and Oceans in Unreal Engine 5 using Editor Shader Graph Latest version of this project is available as a plugin for UE 4.26+ on

Minetest is an open source voxel game engine with easy modding and game creation

Minetest is an open source voxel game engine with easy modding and game creation

Flax Engine – multi-platform 3D game engine
Flax Engine – multi-platform 3D game engine

Flax Engine – multi-platform 3D game engine

MAZE (My AmaZing Engine)  - 🎮 Personal open-source cross-platform game engine
MAZE (My AmaZing Engine) - 🎮 Personal open-source cross-platform game engine

MAZE (My AmaZing Engine) is the self-written open-source cross-platform game engine in the active development stage. At the moment it is my main pet project, developed for the purpose of learning and preserving different game dev technologies.

Rogy-Engine- - My 3D game engine source code.
Rogy-Engine- - My 3D game engine source code.

Rogy-Engine Development My 3D game engine. (NOT THE FINAL VERSION- Windows only) Features: PBR shading and reflection probes with parallax correction.

Hyperion Engine is a 3D game engine written in C++
Hyperion Engine is a 3D game engine written in C++

Hyperion Engine About Hyperion Engine is a 3D game engine written in C++. We aim to make Hyperion be easy to understand and use, while still enabling

Our game generates a random maze every time when the user chooses the difficulty level
Our game generates a random maze every time when the user chooses the difficulty level

Maze Game Random maze generator Hello, We are The Runners ✨ Our game generates a random maze every time when the user chooses the difficulty level. Yo

Owner
Samuel Rasquinha
15 Year Old Passionate C/C++ Programming and Computer Graphics Enthusiast. Discord : swr#1793
Samuel Rasquinha
Simple, fast, easy to get started mid-level game engine written in Zig

Alka Game engine written in zig, compatible with master branch. This engine does provide a toolset for you but generally you have to implement how the

Kiakra 22 Oct 23, 2022
After a few loose attempts at porting Source-games; here comes my first real one!

StanleyParable-Vita After a few loose attempts at porting Source-games; here comes my first real one! (For anyone who wonders what happened to the HL2

Sleppo04 4 Sep 21, 2021
Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.

OpenXRay OpenXRay is an improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. S

null 2.2k Dec 2, 2022
CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine

CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine. This engine has been designed with a cross-platform design in mind. Thanks to Vulkan API it delivers a next-gen experience with ray tracing to both Linux and Windows platforms

Jakub Biliński 37 Oct 7, 2022
Game Engine that is being developed by a computer science student using C and OpenGL

Project LOGLE Contents About the Project Project Status Known Issues Setup ?? About Game Engine that is being developed by a computer science student

Ewan 1 Jan 21, 2022
Ground Engine is an easy to use Game Engine for 3D Game Development written in C++

Ground Engine is an easy to use Game Engine Framework for 3D Game Development written in C++. It's currently under development and its creation will b

 PardCode 61 Nov 26, 2022
Design-agnostic node editor for scripting game’s flow in Unreal Engine

Flow plug-in for Unreal Engine provides a graph editor tailored for scripting flow of events in virtual worlds. It's based on a decade of experie

Moth Cocoon 532 Nov 25, 2022
A lightweight game engine written in modern C++

Halley Game Engine A lightweight game engine written in C++17. It has been used to ship Wargroove, a turn-based strategy game, on Windows, Mac (experi

Rodrigo Braz Monteiro 3.2k Nov 23, 2022
The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

null 2.8k Nov 24, 2022
Godot Engine – Multi-platform 2D and 3D game engine

Godot Engine 2D and 3D cross-platform game engine Godot Engine is a feature-packed, cross-platform game engine to create 2D and 3D games from a unifie

Godot Engine 55.4k Nov 25, 2022