Un Tic en los juegos Doom puede ser o bien un Realtic o un Gametic.
- Un realtic tiene una duración de 1/35 de segundo (aproximadamente 28,571 milisegundos), medido por el temporizador del sistema en de tiempo real (reloj de pared) y es una velocidad de fotogramas (frame rate) diseñado para el juego.
- Un gametic es una actualización de estado de un juego, que idealmente se puede completar en una realtic con tiempo de sobra. Sin embargo, a veces (sobre todo en los juegos multijugador sujetos a retrasos en la red) los gametics toman más tiempo, y entonces el juego se ralentizará.
Cada gametic corresponde a una estructura ticcmd_t. Estas estructuras representan el estado de los dispositivos de entrada (teclado, ratón y joystick) en un momento dado y se utilizan para actualizar el estado del juego. Este mecanismo proporciona una gran flexibilidad, ya que los ticcmd_ts se pueden pasar por la red para juegos multijugador y hacia / desde archivos en el disco para grabar y reproducir demos.
Técnica[]
En el código fuente de Doom, el ticcmd_t se define de la siguiente manera:
// The data sampled per tick (single player) // and transmitted to other peers (multiplayer). // Mainly movements/button commands per game tick, // plus a checksum for internal state consistency. typedef struct { char forwardmove; // *2048 for move char sidemove; // *2048 for move short angleturn; // <<16 for angle delta short consistancy; // checks for net game byte chatchar; byte buttons; } ticcmd_t;
La función G_BuildTiccmd en g_game.c rellena una estructura ticcmd_t basado en los estados de teclado, ratón y joystick. Utiliza el estado de los controles "run" y "strafe on" para interpretar correctamente los otros controles.
- forwardmove y sidemove graban el total neto firmada de los diversos controles adelante / atrás y derecha / izquierda (cada total limitado a no más de 50 y no menos de -50).
- angleturn registra el ángulo total neto girado de los controles de movimiento.
- consistancy (sic, mal escrito, pero así está en el código fuente) normalmente es x-posición del jugador y se usa para confirmar que los juegos en red están sincronizados.
- chatchar puede ser un personaje que se añade al área de mensajes entre jugadores en el display de avisos.
- buttons codifica las siguientes acciones: ataque, uso, el cambio de armas (incluyendo nuevo número de arma), hacer una pausa y guardar el juego (incluyendo el número de ranura de partida guardada).
Trivia[]
- El término tic es a la vez una contracción de "garrapata" en inglés (tick), a la vez que hace referencia al "tictac" del reloj.