Instituto Cardan Logo
INSTITUTO CARDANDigital_Engineering

¿Qué es un Motor de Videojuegos y cómo funciona por dentro? (Guía Técnica)

Desde el 'Game Loop' hasta el renderizado de píxeles. Explicamos qué hacen realmente Unity y Unreal Engine bajo el capó y por qué los ingenieros deben entender esto.

¿Qué es un Motor de Videojuegos y cómo funciona por dentro? (Guía Técnica)
Carlos Lara

Carlos Lara

Senior Audio Engineer & Founder

Publicado

2025-12-26

Lectura

9 min

Para un ingeniero, un videojuego es una mentira matemática ejecutándose 60 veces por segundo. En nuestra Facultad de Ingeniería en Videojuegos, diseccionamos la arquitectura de software que hace posible la simulación en tiempo real. En nuestra Ingeniería en Desarrollo de Videojuegos en el Instituto Cardan, no solo aprendes a usar motores, sino a entender el Game Loop y la gestión de memoria desde sus cimientos.

La Anatomía del Infinito: El Game Loop

A diferencia del software web o de escritorio, que espera pasivamente a que el usuario haga clic (Event Driven), un videojuego nunca duerme. Es un bucle infinito `while(true)` que debe completarse en menos de 16.6 milisegundos para lograr 60 FPS. Si tarda 17ms, el jugador notará 'lag'.

cppCopy
// Representación simplificada de un Game Loop en C++
void RunGame() {
    Setup();
    while (!GameOver) {
        double current = GetTime();
        double deltaTime = current - lastTime;
        
        ProcessInput();     // 1. ¿Qué presionó el jugador?
        Update(deltaTime);  // 2. Mover mundo basándose en el tiempo
        Render();           // 3. Dibujar el resultado
        
        lastTime = current;
    }
}

Concepto Crítico: Delta Time

Nunca escribas `posicion = posicion + 5`. Si la computadora es rápida, el personaje volará. Siempre escribe `posicion = posicion + (5 * deltaTime)`. Esto normaliza la velocidad indpendientemente de los FPS.

Los Subsistemas Vitales

Un motor moderno como Unreal Engine 5 es una colección de 'Managers' trabajando en paralelo. Aquí está la jerarquía técnica:

SubsistemaResponsabilidad PrincipalTecnología Estándar
Rendering EngineConvertir vértices 3D en píxeles 2D (Rasterización).DirectX 12, Vulkan, Metal
Physics EngineDetección de colisiones y resolución de fuerzas.NVIDIA PhysX, Havok, Jolt
Audio EngineMezcla de sonido 3D, Doppler y Oclusión.FMOD, Wwise
Scripting EnginePuente entre el núcleo (C++) y el gameplay.C# (Mono), Blueprints, Lua

El Pipeline de Renderizado (Paso a Paso)

Cuando dices 'Render', ocurren miles de operaciones matemáticas en la GPU. Es vital entenderlas para optimizar:

  1. Input Assembler: La GPU recibe la lista de triángulos (vértices).
  2. Vertex Shader: Programa que calcula dónde está cada vértice en la pantalla (Matriz de Proyección).
  3. Rasterizer: Determina qué píxeles cubre cada triángulo.
  4. Pixel Shader: Calcula el color final de cada píxel basándose en luces y texturas.
  5. Frame Buffer: La imagen final se envía al monitor.
Diagrama técnico del Graphics Pipeline de OpenGL mostrando las etapas de Vertex a Fragment Shader.
El 'Pixel Shader' es donde ocurre la magia de la iluminación y los materiales.

¿Update o FixedUpdate?

Uno de los errores más comunes de los juniors es no saber distinguir entre el ciclo de juego (Frame variable) y el ciclo de física (Tiempo fijo). La física NO debe correr a los FPS del monitor, debe tener su propio tic de reloj estable (usualmente 0.02s o 50Hz) para ser determinista.

csharpCopy
// MALO: Física dependiendo del framerate
void Update() {
    rb.AddForce(Vector3.up * 10); // Resultado impredecible
}

// BUENO: Física en intervalos fijos
void FixedUpdate() {
    rb.AddForce(Vector3.up * 10); // Resultado consistente siempre
}

Conclusión: Sé el Arquitecto, no el Albañil

Cualquiera puede aprender a usar Unity viendo tutoriales. Pero un Ingeniero en Videojuegos comprende la máquina que hay debajo. Sabe por qué un `Mesh Collider` es costoso para la CPU y sabe cómo escribir un *Shader* personalizado cuando el motor no ofrece lo que necesita. Esa es la diferencia entre un hobby y una profesión de alto nivel.

¿Listo para el código real?

En la Facultad de Videojuegos del Instituto Cardan, tu examen final de primer semestre es programar un motor de física 2D desde cero, sin librerías externas. ¿Te atreves?

FAQ

Q.¿Qué es realmente un Game Engine?

Es un Framework de software que abstrae las capas más difíciles del desarrollo: Renderizado (Graphics API), Física (Rigidbodies), Audio (DSP) e Input (HID), permitiendo al desarrollador enfocarse en la lógica del juego (Gameplay).

Q.¿Por qué C++ sigue siendo el rey?

Por el control de memoria. En un motor, el programador debe decidir cuándo nace y cuándo muere cada variable para evitar picos de 'Garbage Collection'. C++ ofrece ese control manual; lenguajes como C# o Python no.

Q.¿Qué es el Delta Time?

Es el tiempo (en milisegundos) que pasó entre el frame anterior y el actual. Es vital para que el juego corra a la misma velocidad en una PC de la NASA y en una laptop vieja.