Over the course of August 2021 I decided that I would like to learn OpenGL. Like most people I started with LearnOpenGL.com this resulted with me wanting to create a 2D game framework that I could use to create basic games. The project however did start to lose my attention as University started a month later. This project originally started off with just learning OpenGL so I also implemented various lighting techniques and shader effects such as point shadows.

Built in C++14 using OpenGL 3.4

Built in 2 months. August 2021 - September 2021

Features

  • Post processing effects
  • 2D Collision Systems
  • Simplistic Sprite Drawing
  • Sprite Atlases
  • UI Framework

  • UI Object Alignment with parent UI Objects
  • Buttons are usable
  • Point Shadows
  • Instanced Drawing
  • Model Loading
  • Tweets

    Challenges

    This was my first project using OpenGL and as such I ran into a few obstacles at first such as using uniforms and understanding how VAOs, VBOs, and IBOs worked in OpenGL compared to DirectX.

    As I shifted the project to creating a 2D framework I was having to make a lot of architectural decisions such as how should I make this system easy to use for the end user. I opted on utilising a large amount of abstraction to remove complexities from the end user while still allowing them plenty of control in how data was processed. To handle button presses and events I opted for utilising the Observer design pattern to handle buttons being clicked or mouse and keyboard events.