Blog
Notas técnicas sobre sensación de juego, ingeniería de rendimiento y arquitectura de motor. La mayoría nacieron como apuntes mientras arreglaba algo.
Unreal Engine 5 GAS: building an ability system right
My dash ability fired once on the client and then went silent. The bug was not GAS itself, it was touching an attribute without a GameplayEffect.
Unity Profiler: Find the Real Bottleneck, 22 ms to 8 ms
Frame time hit 22 ms and everyone blamed the shaders. The Unity Profiler capture said otherwise; here is how measuring took it down to 8.7 ms.
Coyote time y jump buffer: las doce líneas de un buen salto
Cuando los jugadores dicen «el salto no se siente bien», normalmente hablan de dos funciones que faltan. Ambas se escriben en media hora.
Compensación de Lag: Por Qué Tu Disparo Perfecto No Contó
Cómo se implementa la compensación de lag del lado del servidor en shooters: el búfer de retroceso, los números que lo afinan y el punto donde la ventana debe detenerse.
Gestión de memoria en C++ en un motor de juego: ¿quién consume el frame?
Llamar a new dentro del frame generó picos de 13 ms en el profiler; después de introducir un arena de frame y un pool de objetos, el pico máximo descendió a 7,9 ms. Así fue como se resolvió.
Blueprint o C++ en Unreal: el coste real que medí en ms
La VM de Blueprint es invisible en casi cualquier escena, pero con decenas de miles de nodos por tick nos costó 7 ms. Este es el reparto híbrido, con números.
Lo que aprendí tras una migración a DOTS/ECS
Migramos parte de un proyecto en producción a ECS y el tiempo de frame bajó un 34 %. Pero la ganancia no vino de donde esperábamos.
Draw calls y overdraw: 17 FPS más en Android de gama media
Mi escena de tower defense se quedaba en 41 FPS en un Android de gama media. Así medí draw calls, materiales y overdraw hasta llegar a 58 FPS estables.
Sistema de partículas GPU en HLSL: más allá del millón
Trasladé el estado de las partículas por completo a la GPU con StructuredBuffer y DrawProceduralIndirect: pasé de 40 mil a un millón, con mediciones.
La forma más simple de explicar la predicción del cliente
El movimiento en multijugador parece complicado. En realidad son tres pasos: predecir, comparar, corregir.
Game engine architecture from scratch: six layers, one loop
Writing your own engine starts with getting the layer order right. Notes on subsystem order, fixed timestep simulation, and when to move to a ready engine.
URP vs HDRP: choosing the right Unity render pipeline
Your target platform list may have already decided; I measured HDRP's volumetric and SSR bill, URP's mobile advantage and what a late pipeline switch really costs.
Iluminación estilizada: más allá del cel shading
Las sombras en bandas son el primer paso que todos conocen. El carácter real está en la luz de contorno y en cómo se elige el color de sombra.
Pathfinding con NavMesh, A* y flow field para 200 agentes
Por qué el pathfinding se atasca en una escena de asedio con 200 agentes, dónde el NavMesh te miente en silencio y dónde está el límite entre A* y un flow field.
Arquitectura de servidor dedicado: 48 jugadores por contenedor
Separamos el servidor de juego autoritativo del backend, reescribimos el matchmaking y la asignación de salas, y medimos el coste real por jugador concurrente.
Por qué tu character controller parece que patina en el suelo
Cuando los jugadores dicen que un character controller patina, describen cuatro fallos distintos: frenado, detección de suelo, pendientes e interpolación.
¿Behavior Tree o Utility AI?
Ambos pueden ser la respuesta correcta. Lo decisivo es cuántas cosas tiene que sopesar tu enemigo a la vez.
CI/CD en el desarrollo de videojuegos: builds nocturnas
Montar la automatización de builds en un equipo pequeño llevó cinco días: la vida media de un commit roto bajó de 2,5 días a 9 horas y las entregas se calmaron.
Publicar un juego en Steam: qué hacer y en qué momento
En mi primer juego abrí la página de tienda tres semanas antes del lanzamiento y salí con 480 wishlists; en el segundo construí el calendario hacia atrás.
Qué buscan de verdad los estudios en el portfolio de un programador
También he estado al otro lado de la mesa en entrevistas. Hay unas cuantas cosas que se repiten en los portfolios que destacan.
3 resultados
Saquemos la próxima build juntos.
Puesto a tiempo completo, proyecto freelance o consultoría técnica — la bandeja siempre está abierta.