Movimiento basado en tiempo para videojuegos
¿Quieres que tus videojuegos tengan una buena experiencia de juego en cualquier computadora? Usa el movimiento basado en tiempo en lugar de cuadros por segundo.
Es crucial para los desarrolladores de videojuegos basar las animaciones en tiempo, en lugar de cuadros por segundo (fps), para crear experiencias de juego auténticas y equitativas.
Los videojuegos son programas que se ejecutan en una variedad de hardware, lo que puede afectar la velocidad y el rendimiento. Nuestro trabajo como programadores es asegurar que la experiencia de juego sea la misma en todos los dispositivos, independientemente de las diferencias en los componentes.
Imaginemos un juego como Tetris, en el que las piezas caen una unidad por cuadro. Si se ejecuta en una computadora más rápida, las piezas caerán más rápido, lo que afectará la mecánica del juego. En un juego en línea como Fortnite, esto podría dar a algunos jugadores una ventaja injusta y arruinar la experiencia de juego para otros.
En un juego en línea como Fortnite sería una desventaja competitiva que un jugador pueda correr cinco veces más rápido por tan solo tener un mejor equipo de cómputo, ¿no crees?. Y peor aún, en una supercomputadora sería injugable ya que todo sucedería en un instante, privando al jugador de la oportunidad de reaccionar.
Para evitar estas desigualdades, es esencial que los objetos se muevan de un punto A a un punto B en un tiempo determinado, sin importar la velocidad de la computadora. Si es necesario, se puede sacrificar la fluidez de la animación para lograr una experiencia de juego justa para todos.
Una computadora que puede dibujar a 50 cuadros por segundo, para animar un objeto que se desplace de A a B en un segundo, dibuja el objeto cada dos unidades (un total de 50 veces).
Una computadora que puede dibujar a 100 cuadros por segundo, dibuja el objeto cada unidad (100 veces).
En ambas se llegará en un segundo al punto B, pero a diferencia de la computadora más rápida, la computadora que solamente puede dibujar a 50 cuadros dibujará en pantalla el objeto la mitad de las veces.
Podemos lograr esto usando la técnica conocida como Delta Timing. Esta técnica implica calcular el tiempo transcurrido desde la última iteración en nuestro ciclo del juego (game loop) para luego utilizarlo en cualquier cálculo de posición o animación. La fórmula es sencilla: el delta (diferencia de tiempo) se multiplica por las unidades que se desean mover en un segundo.
De esta forma, el movimiento de los objetos será independiente de la velocidad de la computadora y la animación siempre tendrá una velocidad constante. La fluidez del movimiento podrá sacrificarse ligeramente si es necesario para asegurar que los objetos lleguen al destino en el tiempo previsto.
En resumen, basar las animaciones de tus videojuegos en tiempo, en lugar de cuadros por segundo, es esencial para crear juegos que ofrezcan una experiencia de juego uniforme en cualquier hardware. La técnica de Delta Timing nos permite lograr esto al calcular el tiempo transcurrido y utilizarlo para cálculos de posición y animación, asegurando que los objetos se muevan a una velocidad constante, independientemente de la velocidad de la computadora.
Comparte y sigamos creando juegos 😎