Hi, I’m Joaquin

I’m a graphics programmer building Cabrankengine — a 2D/3D game engine written in C++23 with OpenGL. This is my devlog.

Batch Rendering

Ver en español Switch to English The first renderer worked. It opened a window, drew a quad with a texture, and that was honestly enough to feel good about for a day. Then I started thinking about what it would take to draw a hundred quads — and realized I had a problem. El primer renderer funcionaba. Abría una ventana, dibujaba un quad con textura, y con eso era suficiente para sentirse bien por un día. Después empecé a pensar en lo que haría falta para dibujar cien quads — y me di cuenta de que tenía un problema. The cost of one draw call per object Every draw call has overhead. When you tell the GPU to draw something, the driver has to validate state, pack commands, and synchronize with the GPU — and that work happens every single time you call it. For a handful of objects you’ll never notice. For a 2D scene with hundreds of sprites animating at once, calling glDrawElements per sprite is a fast way to tank your framerate. ...

May 26, 2026 · 9 min · Joaquin Cabrera

The Engine Foundation

Ver en español Switch to English From the beginning, the goal was clear: I wanted to learn how to build an engine, not just how to render a triangle. That distinction matters more than it sounds. Desde el principio, el objetivo era claro: quería aprender a construir un motor, no solo a renderizar un triángulo. Esa distinción importa más de lo que parece. A proper engine, not just a triangle Having worked with OpenGL and SDL2 before, I wasn’t starting from zero. I knew how to open a window, send vertices to the GPU, and get something on screen. What I didn’t know was how to turn that knowledge into an actual engine — something with architecture, a lifecycle, and a surface clean enough for someone to build a game on top of. ...

May 19, 2026 · 8 min · Joaquin Cabrera

Why I Built a Game Engine

Ver en español Switch to English There is a question I’ve been asked more than once since starting this project: why would you build a game engine when Unity, Unreal, and Godot already exist? The short answer is that I wasn’t trying to replace them. The longer answer is the whole reason this series exists. Hay una pregunta que me han hecho más de una vez desde que empecé este proyecto: ¿por qué construirías un motor de videojuegos cuando Unity, Unreal y Godot ya existen? ...

May 9, 2026 · 8 min · Joaquin Cabrera