Custom 2D/3D Engine

Description

The goal of this personal project is to learn game engine development. For that, I isolated the Engine part of my final degree project and started making enhacements. As a brief summary, the engine is divided into several parts: Core/Utilities, IO System with support for mouse, keyboard and multiple controllers, Physics System (uses Box2D), Entity-Component-System (The runtime arquitecture model), Rendering System (uses SDLImage) and Sound System (uses SDLMixer)

My goal for this project is divided in 3 main parts:
1.- Improve the 2D engine and create some tools, make a simple game with it to showcase it's posibilities.
2.- Make it 3D using OGRE and Bullet3D/PhysX and create a simple scene with all the 3D additions.
3.- Implement my own graphics API/Layer over OpenGL/Vulkan (Materials, Modles, Rendering Pipelines, Light, Animations.. etc.).

Learning new stuff

+ Learned to use Memory deleaker to track memory leaks deeply
+ Learned how to use a Profiler tool
+ Learned about Concurrent Programming

Improving the 2D engine / New tools

+ Removed scripting module from the engine
+ Created automation script to build dependencies and compile the engine
+ Fixed some bugs in physics components such as BoxBody and CircleBody
+ Added world raycast to the engine
+ Added breakable system using voronoi subdivision algorithm
+ Added a proper render ordering system
+ Added component "AtlasImage" for rendering a custom texture composed of diferent images
+ Added component "CustomBody" to create Box2D polygons
+ Added component "CustomImage" for rendering images with custom texture coordinates so the engine user can draw textured polygons

Cool things about the Angry Birds clone:

+ Trajectory prediction system with Raycast
+ Used tileson lilbrary to read maps from TILED (TILED works as my world editor)
+ The blocks used to build the level have Breakable components so are destructible by the player (bird)

TILED

Gallery

2D

Angry birds gameplay

Levels

Arriba izquierda Arriba derecha Abajo izquierda Abajo derecha

Breakable system with Voronoi subdivision

Parallax

Contact

Where to find me

Las Rosas, 28017

Madrid, España

Contact information

pablofa01@gmail.com

+34 675456362

Social

LinkedIn

GitHub