top of page

Custom Graphic Engines

To be a competent developer, it is essential to not only know how to use the tools that were given to you, but it is crucial for one’s personal improvement to be able to create them on your own to fully comprehend the logic behind game development and to contribute efficiently to it.

 

During these years, I have tried to explore all the areas related with the video games development, to be able to find which ones I would like to specialised in. Making graphic engines, gameplay and UI are definitely my favourites.

After making these engines, based on OpenGL and DirectX11, the next step will be to learn more about Vulkan, in order to create a multiplatform game engine, able to renderize using each of these graphic libraries.

 

"Wolfy3D" is a custom Direct11 based 3D graphic engine developed from scratch in C++. It was developed during the last year of my BSc in Computer Science for Games.

 

In the graphics programming module we were asked to use a premade rendering framework to implement some features like 3D animations. Once it was implemented, I decided to make the same demo, but in this ocassion, with a self-made graphic engine based on directX.

 

The reason to make it was that I like to follow the motor sports philosophy which says that the best riders are the ones who knows about mechanic, as they are able to understand how the engine is made, so they can otpimize their performance.

OpenGL - enJIne

Why the name "enJIne"? The answer is simple, it’s a graphic engine developed by Julio Marcelo Picardo and Iván Sancho. https://www.linkedin.com/in/ivansanchodev/


When I began learning how to programme I thought that I will need years until my skills were good enough to make a game, but on the first year of my HND in ESAT, our teacher gave us a simple graphic library. The API was so simple that I was able to make a game in just a few weeks. Then I started thinking that I would love to know how to programme a library like this, so future students could use it to learn.


During my last year in that HND, we were asked to make a graphic library based on OpenGL. Then I thought, it’s the right moment to do that graphic engine. I had to create an API which would be clear enough so that beginners could get into it easily.

 

We are still passionate about improving our graphic programming, so that we can continuously develope new tools and features. The next ones that we have planned to integrate are deferred shading, PBR and DirectX 11.

OpenGL - enJIne

"enJIne" is a custom OpenGL based 3D and 2D graphic engine developed from scratch in C++.

Designed with the main idea of making a complete game engine that can be used for students to start learning about game and graphic programming.

 

The main features implemented are:

  • Multithreading (Logic and render are separated).

  • Post-processing.

  • Shadows.

  • Super Material.

  • Tree node hierarchy system.

  • Audio.

  • Oriented to components. (light, transform, render and audio).

  • 2D features (buttons, sprites, texts and animations).

  • Particle system prototyped.

  • Augmented reality.

OpenGL

DirectX11 - Wolfy3D

"Wolfy3D" is a custom Direct11 based 3D graphic engine developed from scratch in C++. It was developed during the last year of my BSc in Computer Science for Games.

 

In the graphics programming module we were asked to use a premade rendering framework to implement some features like 3D animations. Once it was implemented, I decided to make the same demo, but in this ocassion, with a self-made graphic engine based on directX.

 

The reason to make it was that I like to follow the motor sports philosophy which says that the best riders are the ones who knows about mechanic, as they are able to understand how the engine is made, so they can otpimize their performance.

Features

The main features implemented are:

  • 3D hierarchical animations.

  • Skybox.

  • Multiple geometries.

  • Tree node hierarchy system.

  • Super Material.

  • Oriented to components.

 

The main components of the engine are:

  • Transform: The rotation transformations are internally made using quaternions, but there are methods that will simulate that the engine is working with Euler angles, as they are more user friendly.

  • Render: All the information of the transform, material and geometry will be given to the shader.

 

Source code:
https://github.com/juliomarcelopicardo/Wolfy3D

DirectX
bottom of page