[{"id":"78","link":"https:\/\/alexgomez.me\/game-engine\/","name":"game-engine","thumbnail":{"url":"https:\/\/alexgomez.me\/wp-content\/uploads\/2026\/01\/imagen_2026-01-08_022618929.png","alt":""},"title":"Game Engine","author":{"name":"alexgomez.me","link":"https:\/\/alexgomez.me\/author\/alexgomez-me\/"},"date":"Jan 7, 2026","dateGMT":"2026-01-07 00:06:12","modifiedDate":"2026-01-08 02:56:18","modifiedDateGMT":"2026-01-08 02:56:18","commentCount":"0","commentStatus":"open","categories":{"coma":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>","space":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>"},"taxonomies":{"post_tag":""},"readTime":{"min":0,"sec":59},"status":"publish","content":"Since I began my studies at university, I developed a deep curiosity about the engines I was using for my projects. I wanted to understand"},{"id":"220","link":"https:\/\/alexgomez.me\/schwarzschild-black-hole-simulation\/","name":"schwarzschild-black-hole-simulation","thumbnail":{"url":false,"alt":false},"title":"Schwarzschild Black Hole Simulation","author":{"name":"alexgomez.me","link":"https:\/\/alexgomez.me\/author\/alexgomez-me\/"},"date":"Dec 4, 2025","dateGMT":"2025-12-04 03:35:47","modifiedDate":"2025-12-04 04:13:59","modifiedDateGMT":"2025-12-04 04:13:59","commentCount":"0","commentStatus":"open","categories":{"coma":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>","space":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>"},"taxonomies":{"post_tag":""},"readTime":{"min":1,"sec":48},"status":"publish","content":"https:\/\/youtu.be\/WSeJlfYcrb0?si=52PI9QJyoV3ptBcc I developed a full CPU-based relativistic ray tracer capable of rendering how light behaves around a Schwarzschild black hole. The system traces each pixel"},{"id":"198","link":"https:\/\/alexgomez.me\/unreal-engine-engine-modifications\/","name":"unreal-engine-engine-modifications","thumbnail":{"url":"https:\/\/alexgomez.me\/wp-content\/uploads\/2025\/11\/uelogo.png","alt":""},"title":"Unreal Engine - Engine Modifications (By me)","author":{"name":"alexgomez.me","link":"https:\/\/alexgomez.me\/author\/alexgomez-me\/"},"date":"Nov 24, 2025","dateGMT":"2025-11-24 04:03:40","modifiedDate":"2026-01-19 13:35:05","modifiedDateGMT":"2026-01-19 13:35:05","commentCount":"0","commentStatus":"open","categories":{"coma":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>","space":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>"},"taxonomies":{"post_tag":""},"readTime":{"min":6,"sec":1},"status":"publish","content":"Click to see more details: The Living World Streaming System is a custom Unreal Engine subsystem that extends World Partition with state-aware, performance-oriented streaming of"},{"id":"175","link":"https:\/\/alexgomez.me\/fluid-simulation-sph-smoothed-particle-hydrodynamics\/","name":"fluid-simulation-sph-smoothed-particle-hydrodynamics","thumbnail":{"url":"https:\/\/alexgomez.me\/wp-content\/uploads\/2025\/01\/imagen_2025-01-30_034403388.png","alt":""},"title":"Fluid Simulation - SPH (Smoothed Particle Hydrodynamics)","author":{"name":"alexgomez.me","link":"https:\/\/alexgomez.me\/author\/alexgomez-me\/"},"date":"Jan 30, 2025","dateGMT":"2025-01-30 02:21:12","modifiedDate":"2025-01-30 03:04:59","modifiedDateGMT":"2025-01-30 03:04:59","commentCount":"0","commentStatus":"open","categories":{"coma":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>","space":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>"},"taxonomies":{"post_tag":""},"readTime":{"min":1,"sec":11},"status":"publish","content":"https:\/\/youtu.be\/UgRRNOQ9iug?si=ivOu7mBHOVvNlQtE I created an advanced Smoothed Particle Hydrodynamics (SPH) simulation utilizing C++ and OpenGL, meticulously engineered to model and visualize realistic fluid dynamics in real-time."},{"id":"111","link":"https:\/\/alexgomez.me\/xor-neural-network\/","name":"xor-neural-network","thumbnail":{"url":"https:\/\/alexgomez.me\/wp-content\/uploads\/2024\/04\/imagen_2024-04-15_033612212.png","alt":""},"title":"XOR Neural Network","author":{"name":"alexgomez.me","link":"https:\/\/alexgomez.me\/author\/alexgomez-me\/"},"date":"Apr 15, 2024","dateGMT":"2024-04-15 01:34:31","modifiedDate":"2025-11-25 04:11:12","modifiedDateGMT":"2025-11-25 04:11:12","commentCount":"0","commentStatus":"open","categories":{"coma":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>","space":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>"},"taxonomies":{"post_tag":""},"readTime":{"min":1,"sec":1},"status":"publish","content":"Implementing a neural network from scratch in C++ to perform XOR operations presented a fascinating challenge. Although XOR is a simple operation, constructing a neural"},{"id":"106","link":"https:\/\/alexgomez.me\/calculator-ast\/","name":"calculator-ast","thumbnail":{"url":"https:\/\/alexgomez.me\/wp-content\/uploads\/2024\/04\/imagen_2024-04-15_031229523.png","alt":""},"title":"Calculator (AST)","author":{"name":"alexgomez.me","link":"https:\/\/alexgomez.me\/author\/alexgomez-me\/"},"date":"Apr 15, 2024","dateGMT":"2024-04-15 01:23:20","modifiedDate":"2025-11-25 04:11:51","modifiedDateGMT":"2025-11-25 04:11:51","commentCount":"0","commentStatus":"open","categories":{"coma":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>","space":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>"},"taxonomies":{"post_tag":""},"readTime":{"min":1,"sec":11},"status":"publish","content":"On the surface, implementing a calculator in C++ might seem like a straightforward task, but the project quickly revealed its complexity, especially in terms of"},{"id":"92","link":"https:\/\/alexgomez.me\/custom-stl-wip\/","name":"custom-stl-wip","thumbnail":{"url":"https:\/\/alexgomez.me\/wp-content\/uploads\/2024\/04\/imagen_2024-04-14_184411029.png","alt":""},"title":"Custom STL (wip)","author":{"name":"alexgomez.me","link":"https:\/\/alexgomez.me\/author\/alexgomez-me\/"},"date":"Apr 15, 2024","dateGMT":"2024-04-15 00:38:49","modifiedDate":"2024-04-15 01:48:37","modifiedDateGMT":"2024-04-15 00:48:37","commentCount":"0","commentStatus":"open","categories":{"coma":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>","space":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>"},"taxonomies":{"post_tag":""},"readTime":{"min":1,"sec":5},"status":"publish","content":"Since beginning my programming journey, I have extensively used various containers and functionalities provided by the C++ Standard Template Library. Motivated by a desire to"},{"id":"89","link":"https:\/\/alexgomez.me\/2d-pathfinder\/","name":"2d-pathfinder","thumbnail":{"url":"https:\/\/alexgomez.me\/wp-content\/uploads\/2024\/04\/imagen_2024-04-14_183346980.png","alt":""},"title":"2D Pathfinder","author":{"name":"alexgomez.me","link":"https:\/\/alexgomez.me\/author\/alexgomez-me\/"},"date":"Apr 15, 2024","dateGMT":"2024-04-15 00:33:18","modifiedDate":"2024-04-15 01:59:00","modifiedDateGMT":"2024-04-15 00:59:00","commentCount":"0","commentStatus":"open","categories":{"coma":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>","space":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>"},"taxonomies":{"post_tag":""},"readTime":{"min":0,"sec":39},"status":"publish","content":"I developed a 2D A* pathfinder application that leverages a multithreaded architecture. This design allows the application to perform efficiently by processing pathfinding operations while"},{"id":"85","link":"https:\/\/alexgomez.me\/shader-editor\/","name":"shader-editor","thumbnail":{"url":"https:\/\/alexgomez.me\/wp-content\/uploads\/2024\/04\/Captura-de-pantalla-2023-09-25-015810.png","alt":""},"title":"Shader Editor","author":{"name":"alexgomez.me","link":"https:\/\/alexgomez.me\/author\/alexgomez-me\/"},"date":"Apr 15, 2024","dateGMT":"2024-04-14 23:31:25","modifiedDate":"2024-04-15 00:31:26","modifiedDateGMT":"2024-04-14 23:31:26","commentCount":"0","commentStatus":"open","categories":{"coma":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>","space":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>"},"taxonomies":{"post_tag":""},"readTime":{"min":0,"sec":38},"status":"publish","content":"https:\/\/github.com\/Masgolini\/Kusanagi-shader-editor I developed a C++ OpenGL shader editor designed to serve as a fast and comfortable playground for shader programming enthusiasts and professionals. The core"},{"id":"50","link":"https:\/\/alexgomez.me\/namastech\/","name":"namastech","thumbnail":{"url":"https:\/\/alexgomez.me\/wp-content\/uploads\/2024\/04\/logo_Namastech.png","alt":""},"title":"Namastech (May 2019 - Sep 2019)","author":{"name":"alexgomez.me","link":"https:\/\/alexgomez.me\/author\/alexgomez-me\/"},"date":"Apr 14, 2024","dateGMT":"2024-04-14 21:18:05","modifiedDate":"2024-04-15 19:37:39","modifiedDateGMT":"2024-04-15 18:37:39","commentCount":"0","commentStatus":"open","categories":{"coma":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>","space":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>"},"taxonomies":{"post_tag":""},"readTime":{"min":0,"sec":29},"status":"publish","content":"At Namastech, I embraced the role of a full-stack web developer, which provided me with a comprehensive experience spanning both front-end and back-end development. This"},{"id":"48","link":"https:\/\/alexgomez.me\/visyon\/","name":"visyon","thumbnail":{"url":"https:\/\/alexgomez.me\/wp-content\/uploads\/2024\/04\/visyon360_logo.jpg","alt":""},"title":"Visyon (Jul 2020 - January 2022)","author":{"name":"alexgomez.me","link":"https:\/\/alexgomez.me\/author\/alexgomez-me\/"},"date":"Apr 14, 2024","dateGMT":"2024-04-14 21:15:45","modifiedDate":"2024-04-15 21:58:06","modifiedDateGMT":"2024-04-15 20:58:06","commentCount":"0","commentStatus":"closed","categories":{"coma":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>","space":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>"},"taxonomies":{"post_tag":""},"readTime":{"min":0,"sec":48},"status":"publish","content":"During my time at Visyon, my primary focus was on utilizing C# for various innovative projects, predominantly in the realms of Virtual Reality (VR) and"},{"id":"20","link":"https:\/\/alexgomez.me\/crytek\/","name":"crytek","thumbnail":{"url":"https:\/\/alexgomez.me\/wp-content\/uploads\/2024\/04\/crytek-logo.png","alt":""},"title":"CRYTEK (Feb 2022 - Jan 2025)","author":{"name":"alexgomez.me","link":"https:\/\/alexgomez.me\/author\/alexgomez-me\/"},"date":"Apr 14, 2024","dateGMT":"2024-04-14 16:01:06","modifiedDate":"2026-01-30 01:15:54","modifiedDateGMT":"2026-01-30 01:15:54","commentCount":"0","commentStatus":"closed","categories":{"coma":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>","space":"<a href=\"https:\/\/alexgomez.me\/category\/blog\/\" rel=\"category tag\">Blog<\/a>"},"taxonomies":{"post_tag":""},"readTime":{"min":1,"sec":3},"status":"publish","content":"I have been working as an Engine Programmer at Crytek since February 1, 2022. Over this period, I have had the opportunity to work with"}]
Since I began my studies at university, I developed a deep curiosity about the engines I was using for my projects. I wanted to understand not just how they worked internally, but also how I could build something of my own. That curiosity eventually grew into a practical challenge: for my final degree project, I decided to implement my own engine. At the time, it was as much a learning exercise as it was a project, pushing me to explore systems design, rendering, and the fundamentals of building software from the ground up.
After many years, I recently revisited this engine with a fresh perspective. The professional experience I gained at CRYTEK has been invaluable, providing me with insights into production-quality code, performance optimization, and large-scale engine architecture. With this knowledge, I decided to refactor the original project—not only to clean and improve the existing codebase, but also to expand its features and capabilities. What began as a student project has now become an ongoing endeavor to transform the engine into something far more robust and versatile, reflecting the skills and experience I’ve built throughout my career.
You can find the code in my Bitbucket!
