Skip to content

OpenGL and SDL2 game engine written in C++. Features ECS architecture, 3D model loading and rendering, text rendering, collision detection and physics simulation, and more.

License

Notifications You must be signed in to change notification settings

kaminskyalexander/GLEngine

Repository files navigation

OpenGL Game Engine Project

OpenGL and SDL2 game engine written in C++. This project was created in collaboration with Maxwell Hunt.

Current features

  • Built with Entity Component System1 (ECS) architecture
  • 3D model loading and rendering with transformations
  • Texture mapping
  • Text rendering
  • Access to the user input in multiple forms
  • Collision detection and physics simulation with dynamics and collision resolution

What we learned

Over the course of this project we learned how OpenGL works to render the graphics that many of us take for granted when we play video games, watch an animation, or use any kind of 3D software. We learned how to structure projects around the framework and documented them so that they are usable, readable and maintainable.

We also learned how to debug, test and fix low-level issues using RenderDoc and the Visual Studio C++ debugger and profiler.

Demo

Here's a quick video showcase of the 3D model rendering, collision detection and physics engine simulation, text rendering and user input systems in action: Game Engine Physics Demo Video

Installation

Before building this project, you will need Microsoft Visual Studio 2022 with the Desktop development with C++ workload.

Next, clone the project and open GLEngine.sln using Visual Studio. The project should already be configured and necessary binaries are present; build in either Release x64 or Debug x64.

Currently no binaries are released, this may change in the future.

Credits

Helpful links for understanding the project

License

Please see the LICENSE for more information.

Footnotes

  1. Software architecture pattern sometimes used for game development. It consists of, as the name would suggest, components, entities, and systems. Components refer to pieces of connected data, entities refer to collections of components which are stored together in memory and systems are processes which act on entities which have certain specified components.

About

OpenGL and SDL2 game engine written in C++. Features ECS architecture, 3D model loading and rendering, text rendering, collision detection and physics simulation, and more.

Topics

Resources

License

Stars

Watchers

Forks