All Projects → swr06 → GLGame

swr06 / GLGame

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

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
HTML
75241 projects
CSS
56736 projects
objective c
16641 projects - #2 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to GLGame

O2
2D Game Engine with visual WYSIWYG editor
Stars: ✭ 121 (+146.94%)
Mutual labels:  lightweight, 2d-game-engine, 2d-graphics
Pumpkin-Engine
A powerful and capable 2d game engine in Kotlin
Stars: ✭ 1 (-97.96%)
Mutual labels:  imgui, 2d-game-engine, 2d-graphics
GroundEngine
Ground Engine is an easy to use Game Engine for 3D Game Development written in C++
Stars: ✭ 61 (+24.49%)
Mutual labels:  2d-game-engine, 2d-graphics
SdfFontDesigner
Offline font tuning/bitmap generation via shaders
Stars: ✭ 56 (+14.29%)
Mutual labels:  imgui, imgui-glfw
tnt
A 2d Game Engine written in C++20.
Stars: ✭ 30 (-38.78%)
Mutual labels:  imgui, 2d-game-engine
Fbg
Lightweight C 2D graphics API agnostic library with parallelism support
Stars: ✭ 349 (+612.24%)
Mutual labels:  lightweight, 2d-graphics
Enduro2d
Yet another 2d game engine of dreams (work in progress)
Stars: ✭ 82 (+67.35%)
Mutual labels:  lightweight, 2d-game-engine
UEImgui
Use imgui in unreal for customize editor
Stars: ✭ 75 (+53.06%)
Mutual labels:  imgui, imgui-editor
imgui-beef
Dear ImGui wrapper for the Beef Programming Language
Stars: ✭ 20 (-59.18%)
Mutual labels:  imgui, imgui-glfw
surface splatting
OpenGL demo of a point rendering and texture filtering technique called Surface Splatting.
Stars: ✭ 125 (+155.1%)
Mutual labels:  imgui
jeelizGlanceTracker
JavaScript/WebGL lib: detect if the user is looking at the screen or not from the webcam video feed. Lightweight and robust to all lighting conditions. Great for play/pause videos if the user is looking or not, or for person detection. Link to live demo.
Stars: ✭ 68 (+38.78%)
Mutual labels:  lightweight
plexydesk
Lightweight Desktop Manager for Gnu/Linux and FreeBSD - Ideal for Low resource computers
Stars: ✭ 33 (-32.65%)
Mutual labels:  lightweight
XYFSnowAnimation
A category of NSTimer for showing 3D Fluttered animation for iOS, which is used very simply. Lightweight CALayer animation, core animation, 3D transform, performance safety. iOS 3D三维飘落下雪落花动画,轻量级CALayer图层动画,核心动画,3D形变,性能安全,定时器NSTimer分类,直接使用,很简单
Stars: ✭ 15 (-69.39%)
Mutual labels:  lightweight
rust-xoodyak
Xoodyak, a lightweight and versatile cryptographic scheme implemented in Rust.
Stars: ✭ 28 (-42.86%)
Mutual labels:  lightweight
MushROMs
Super Nintendo game editing libraries and tools
Stars: ✭ 24 (-51.02%)
Mutual labels:  2d-graphics
MatrixLib
Lightweight header-only matrix library (C++) for numerical optimization and machine learning. Contact me if there is an exciting opportunity.
Stars: ✭ 35 (-28.57%)
Mutual labels:  lightweight
d2launcher
Diablo II • Median XL • Mod Launcher for Linux
Stars: ✭ 20 (-59.18%)
Mutual labels:  lightweight
go-baseapp
A lightweight starting point for Go web servers
Stars: ✭ 61 (+24.49%)
Mutual labels:  lightweight
hornbill
基于uri的 node mvc框架,适用于前后端分离服务
Stars: ✭ 22 (-55.1%)
Mutual labels:  lightweight
hlimgui
No description or website provided.
Stars: ✭ 28 (-42.86%)
Mutual labels:  imgui

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

GLGame Logo

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

Note

This game has long since been ABANDONED. I do not recommend using it as I was new to graphics/gamedev/game engine dev when I wrote it.

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 around 1000+ FPS in game without the scene editor running and 400+ FPS on an Intel HD 4000.

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].