Pablo
Pablo
Pablo
Pablo
About Me
📄 Download CV English 📄 Download CV Spanish

My name is Pablo Fernández, I am a video game developer, and I enjoy programming. I have always had a passion for video games, but I did not discover programming until shortly before entering the video game development degree at the Complutense University of Madrid. Throughout the degree, I have learned many things, but I feel most comfortable when programming.

My goal is to join a company as a Software Developer in a position that allows me to grow, learn, and enhance my skills.

Programming Languages

The language I feel most comfortable with is C++, but I also have good knowledge and experience with C, C#, Java, Python, and Javascript.

Development Softwares/IDEs

As for the IDEs I have used the most, they include Visual Studio, Visual Studio Code, and Android Studio. I have experience in managing projects and solutions in each of them. Regarding game engines, I have experience with Unity and Unreal Engine 5.

I have also used the SDL library and I'm proficient in it for rendering, input, audio, etc. I have experience with OGRE, a library with which we developed a 3D game engine in a group project and I'm also using to build my own 3D Engine.

Experience
Experience
Experience
Work Experience

+2 YEARS OF EXPERIENCE

March 2024 - Present

Euromar Technology/Siemens Industry

C++ Software Developer (NX CAD System) Euromar Technology/Siemens - Working in NX CAD System in naval industry - Tools programmer - Internal VCS - Collaborating with QA Team - Unit and automated testing

I have carried out projects from scratch, contributed to many others, and fixed numerous bugs in existing code. This has made me very accustomed to reading other people’s code and has improved my ability to understand it.

Pablo Fernandez
Education
Education
Education
Education
2019 - 2023

Bachelor's Degree in Game Development UCM

It’s mostly a Computer Engineering degree, but it focuses on the types of development and technologies used in the industry. The degree provide me with a solid foundation in software architectures for video games, game engine design, computer graphics, AI, and optimization.

Pablo Fernandez
2024

Unreal Engine 5 C++: The Ultimate Game Developer Course

I have learned to program in Unreal Engine 5 using C++, creating an open-world action RPG from scratch. I have designed realistic environments, implemented combat systems and AI enemies, and worked with advanced UE5 features like Motion Warping, MetaSounds, and Niagara. Through this course, I have gained hands-on experience in gameplay programming, level design, and professional game development practices.

Pablo Fernandez
Interests
Interests
Interests
Interests

Game Engine Development

I have a deep interest in game engine development. Throughout my degree and my final project, I gained experience developing both 2D and 3D engines. I love exploring the different areas involved in creating a game engine physics, graphics, AI, audio, gameplay architectures, and more.

Commercial Game Engines used in the Industry

I have some knowledge about Unity and Unreal Engine 5, but I would like to continue learning more about them and explore new engines such as Godot.

I would also love to work with proprietary engines used by companies to learn about them and compare their architecture and design with the engines I already know.

Pablo Fernandez

My Projects

In-progress 3D Custom Engine with OGRE3D

The goal of this project is to learn about 3D engine development. To achieve this, I will convert my 2D engine into a 3D one. This requires replacing the necessary modules; I will build the engine around OGRE3D, which is a middleware library that abstracts the user from low-level graphics concepts and provides a scene and resource manager, among other features.

For example, for physics, I will switch from Box2D, which is a 2D physics library, to Bullet3D or PhysX. The same happens with the Audio module, etc. For the user, the gameplay architecture will remain the same, but internally I will reuse the ECS from the 2D engine and integrate it with OGRE’s entity and node system.

Enhacements to 2D Engine from Final Degree Project

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 enhancements. 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 architecture model), Rendering System (uses SDLImage) and Sound System (uses SDLMixer). The goal is to improve the 2D engine and create some tools, make a simple game with it to showcase it's posibilities.

In the image on the left, you can see a clone of the famous videogame Angry Birds. To create the level, I used the TILED map editor, and with the help of the Tileson library, I processed the map data to create the corresponding entities in my scene.

In the image on the right, you can see a Breakables system in action, implemented using the Voronoi subdivision algorithm.

Shy Engine | 2D Engine for Non-Programmers (Final Degree Project)

Shy is the name of the project we developed as a team of three for the final degree project (TFG). It is a 2D game engine and editor designed for non-programmers. The objective is to provide a tool for creating simple 2D games with a lower learning curve compared to the more commonly used engines today, focusing on individuals with limited experience in programming or game development in general. The development of the project was divided into three main parts: core engine, editor and scripting system

In the image on the right, you can see the Shy engine editor, composed of windows such as the Viewport, File Explorer, Object Hierarchy, Components, Console others.

In the image on the right, you can see the scripting view, implemented through connected visual nodes.

DOME | 2D Survival-Shooter game developed using SDL

DOME is a 2D survival shooter set on the frozen planet Aurora, where the player controls one of the last survivors of a failed colony. Each day is divided into two phases:
Daytime (12 hours): explore and loot various locations (pharmacies, supermarkets, etc.) for resources like food and medicine, limited by the player’s condition and inventory.
Nighttime (12 hours): return to the shelter to craft, manage resources, heal, and rest. Each night offers five action points to perform tasks before sleeping.

The ultimate goal is to collect spaceship parts to rebuild and escape the planet while surviving the extreme cold and managing health, fatigue, and supplies.

Mini-games developed using PS4 Development Kit

Some minigames programmed using a PS4 Development Kit. They were implemented using CPU for rendering, using two threads: one for logic processing and the other for rendering. The logic thread sends render commands to the render thread, which then processes them. Communication was facilitated through a concurrent queue. Something cool to mention is that the player can move the cursor with the controller gyroscope.

Pablo Fernandez Pablo Fernandez Pablo Fernandez