March, 2023

MINECRAFT OPENGL

Minecraft made in C++ with GLSL for shaders using a minimalist engine

Context

This project is a study of a game engine using OpenGL technology as part of my education at CNAM ENJMIN. It involved using a basic engine provided by the professor and learning how to utilize it. The primary goal was to become familiar with working with a custom game engine, as might be encountered in a video game development company. Additionally, it provided an opportunity to delve into GLSL shader design.

Github Project Content

As part of this course, we also practiced procedural generation in a voxel environment and experimented with various lighting behaviors using different shaders in a 3D space.

Developpement

Shadow map (Shaders)

Shadow maps have always been a somewhat obscure concept for me, and I was hesitant to delve into them. However, during this project, I had the opportunity to explore their complexities with fellow students who patiently explained their workings to me. This allowed me to grasp the intricacies of designing a shadow map system. Additionally, I also used the tutorial below to further enhance my understanding.

Tutorial Shadow mapping

I will probably create a summary of what I've understood about the creation of Shadow Maps on this web page later.

Importing *.obj files and RenderDoc compatibility

This part was an opportunity to test the retrieval of data from a *.obj file for the purpose of analyzing its content, which turned out to be relatively straightforward.

Regarding compatibility with RenderDoc, it was necessary to revise the C++ methods used, as some of them on the engine provided by the professor were not compatible. That's why we had to review and adjust the C++ code of the entire engine. This exercise allowed me to delve deeply into the engine's inner workings and learn more about it.

Obj Using :

simple_cube.obj

suzanne.obj

Click to Enlarge

Click to Enlarge

Click to Enlarge

Click to Enlarge

Click to Enlarge