MAMEngine

Graphics, C++, OpenGL

September, 2022 - In development

A custom videogames engine built in C++ from scratch using OpenGL.

MAMEngine is a custom Videogames Engine developed in C++ that uses OpenGL as its graphics library. It is an engine built from scratch where all the design and development is done by Carmen Martín Moreno and myself.

It is a project currently in development, so this page will be modified periodically with the new updates.

The repository of this project is private but temporary access may be given to anyone interested in its implementation. Contact me for more information.



What I did

  • Implementation of classes (such as Shader, Program, Texture) to abstract the use of OpenGL.
  • Design and implementation of the Entity-Component-System architecture.
  • Design and implementation of the draw loop of the engine.
  • Design and implementation of the Input system.
  • Design and implementation of the MAMEngine's editor, a graphic interface using DearImGui to use the Engine effortlessly.
  • Implementation of the components: Transform, Renderer and Light.
  • Implementation of the lit and unlit materials.
  • Implementation of the lighting system and shaders.

Features

  • Graphic core for the Engine that abstracts the use of the basic openGL objects.
  • Entity-Component-System architecture used to create objects in game.
  • Lighting system using the Phong model with forward rendering.
  • Graphic interface using DearImGui to facilitate the use of the Engine.
  • Dependencies with libraries to load images, load meshes, play audio, implement unitary tests.

Features in development

  • Implement deferred rendering.
  • Implement PBR materials.
  • Implement an abstraction of the audio library.
  • Enhance the graphic editor by adding: entity and component destruction, guizmos, ability to select entities and modify their transform with guizmos.