Speedrun asistido por herramientas (abreviado como TAS [1] ): acelera el juego usando las herramientas integradas del emulador , como guardar y sobrescribir, ralentizar e ingresar cuadro por cuadro, ver el contenido de la memoria y analizar el código ejecutable . La idea detrás de TAS es trascender los límites de la reacción humana y la capacidad del jugador para alcanzar los límites teóricos del juego, es decir, los límites de las capacidades reales del motor del juego . El objetivo principal de trabajar en TAS es crear videos entretenidos que muestren el paso completo del juego seleccionado.
La película de demostración grabada con el emulador no es un archivo de video. Esta es solo una secuencia de pulsaciones de botones registradas en el tiempo ( registro de entrada ). Si se ve en las mismas versiones (o compatibles) del emulador y la ROM en la que se grabó, la respuesta del juego a la entrada del jugador siempre será la misma, incluidas las acciones de IA del juego y la generación de números pseudoaleatorios . Debido al determinismo de los motores de juegos, las pulsaciones de teclas al mismo tiempo producen el mismo resultado.
El objetivo de cada era TAS (el creador de un pasaje TAS) es encontrar la secuencia óptima de clics que conduzca al resultado deseado en un tiempo mínimo. Para ello, se utilizan los siguientes métodos.
La velocidad de emulación se puede aumentar o disminuir. Ease se usa para monitorear con mayor precisión los eventos del juego durante la grabación de TAS. Por lo tanto, el jugador puede pensar cuidadosamente cada acción, abstrayendo de la velocidad de su reacción.
La aparición de la función de avance de cuadro en los emuladores modernos , es decir, el avance cuadro por cuadro [5] del juego, hizo posible presionar previamente las teclas necesarias para cada cuadro individual. Grabar TAS en este modo le permite ingresar al juego una secuencia de clics, ajustada dentro de un marco (la unidad mínima indivisible de tiempo de juego).
La reescritura de secciones del juego completadas de manera ineficiente se lleva a cabo sobre la base de guardados instantáneos : la capacidad de guardar y cargar el juego en cualquier lugar. Solo la última versión del pasaje entra en la película de demostración final. Por lo tanto, TAS-er puede reproducir repetidamente cualquier parte del juego, optimizando tácticas o experimentando con el motor del juego. Por ejemplo, el premio que cae de un enemigo asesinado en algunos juegos depende de en qué momento fue asesinado el enemigo. Esta característica se basa en la llamada manipulación de la suerte , es decir, el control indirecto de los valores de las celdas de memoria responsables de un elemento de juego en particular.
Es necesario escanear la memoria para obtener información precisa sobre varios elementos del juego, como la salud/estado de los personajes, sus coordenadas y la velocidad al píxel fraccionario más cercano . Dicha información facilita enormemente el análisis y la adopción de decisiones óptimas por parte del jugador.
Para monitorear estos valores, necesita conocer las direcciones de las celdas correspondientes en la memoria del decodificador . Son diferentes en cada juego. La celda de interés se puede encontrar mediante un filtrado progresivo. Además, esta celda se agrega a la lista de direcciones que el jugador ve constantemente.
La revisión de la memoria, combinada con la ralentización y la sobrescritura, te permite controlar el personaje del jugador y, por lo tanto, el curso de los acontecimientos de todo el juego, con extrema precisión.
Los usuarios modernos de TAS utilizan las ricas características del lenguaje de programación Lua [6] para hacer que el proceso de aprobación sea más fácil y conveniente. Casos de uso conocidos para Lua:
El contador de fotogramas te ayuda a realizar un seguimiento de cuántos fotogramas dura una acción, para comparar objetivamente diferentes estrategias de juego, evaluándolas en términos de tiempo empleado. El contador de retrasos le permite identificar patrones de ralentización no deseada en el juego y desarrollar una estrategia óptima para minimizar el tiempo perdido debido al retraso .
Ver las pulsaciones de los botones permite a cada espectador de las películas de TAS tener una idea de las manipulaciones que se están realizando y, a menudo, repetir los trucos sin entrar en su esencia [7] .
Desmontar el código del juego abre el acceso a patrones ocultos. Trabajar con el depurador integrado en el emulador , por regla general, requiere un conocimiento especial, pero le permite desmontar la lógica del juego, comprender los principios de funcionamiento de los mecanismos individuales (por ejemplo, el algoritmo para generar números pseudoaleatorios para manipular la suerte sin recurrir al ensayo y error ), detectar posibles errores y vulnerabilidades del motor del juego.
El desmontaje de juegos de consola está estrechamente relacionado con el ámbito del romhacking .
Los programas de bots especialmente diseñados que juegan el juego en lugar de un humano solo se pueden usar durante períodos cortos de tiempo, ya que la cantidad de todos los clics posibles aumenta exponencialmente con cada fotograma siguiente de la película. Además, para crear un material de video realmente entretenido, es necesaria la participación directa de una persona en la grabación, por lo que la programación de bots para TAS se usa solo en casos especiales de manipulación.
Los pasajes difieren en los objetivos establecidos y los métodos utilizados para alcanzarlos. Estos son algunos de ellos [8] :
El objetivo es llegar a la final lo más rápido posible. La etiqueta principal de la mayoría de los juegos. En aras del tiempo, el jugador a menudo pierde premios, ya que el cálculo de los puntos de bonificación lleva tiempo extra, pierde los golpes de los oponentes, esquivando lo que tomará varios cuadros, y la destrucción de los oponentes a menudo ocurre de la manera más inesperada [9] .
Se juegan varios juegos diferentes al mismo tiempo, es decir, se escribe un archivo de entrada que funciona en todos ellos. Al transcodificar a un archivo de video, todos los pasajes se colocan en una pantalla [10] .
En el camino, el autor se salta algunos niveles utilizando trucos públicos, como pasajes secretos y teletransportaciones de bonificación . A veces es posible saltar a través de varios niveles debido a un error en el código o el diseño del mapa. Junto con tales ejecuciones, generalmente se publica en el sitio un tutorial del juego sin saltos: sin deformaciones .
Cuando la cantidad de energía deja de depender del azar o del error, una persona puede controlar su nivel dependiendo de la tarea. En casi cualquier juego, hay secciones que tardan más en completarse si ahorras energía. TAS-er intercambia una reserva de energía por tiempo, calculando finamente dónde se puede ahorrar y dónde se puede gastar con mayor beneficio.
Literalmente - la manipulación de la suerte. Una técnica bastante compleja, que implica una comprensión de la lógica del juego. Dado que cada valor de cada celda de memoria es estrictamente determinista, es posible controlar lo que un jugador normal considera un elemento aleatorio. Por sí solo, manejar estos elementos no es tan difícil como encontrar el factor que los influye.
Para acelerar el paso de los TAS-ers, a menudo usan los errores de los desarrolladores ( desequilibrio del juego, supervisión de los evaluadores, errores de los programadores). Dichos errores ocurren debido a las severas limitaciones de la consola.
Usando la plataforma NES como ejemplo , para descargar memoria, los desarrolladores simplifican las comprobaciones realizadas por el juego. Si el personaje comienza a caminar hacia la pared, la pared lo alejará de sí mismo, impidiéndole entrar. Sin embargo, si ya está en esta pared, comenzará a empujarlo en la dirección opuesta del movimiento. Y puedes entrar en él si no lo haces, pero, por ejemplo, salta mientras estás sentado [11] .
A veces, estas películas pueden asombrar al espectador con una extravagancia de eventos incomprensibles. Algunos speedruns literalmente se balancean al borde de congelar el juego. Esta clase de tutoriales implica que una persona controla un glitch , calculando qué comportamiento anormal del juego es más beneficioso para él: las posibilidades del comportamiento del personaje para cada cuadro y las respuestas del motor del juego a este comportamiento. están marcadas [12] .
En algunos juegos, el personaje no regresa al comienzo del nivel al morir. Además, después de la muerte en muchos juegos, el héroe recibe invulnerabilidad por un corto tiempo [13] .
Una persona controla dos personajes a la vez (a veces más, hasta cuatro). Hay dos formas de implementar esta idea, cada una a su manera. O brinde cooperación a los personajes principales , manteniendo presionadas simultáneamente las teclas para ambos, o use el script multitrack.lua, que le permite registrar el control de cada personaje por separado durante unos segundos: uno se queda quieto, el otro se mueve y el otro. el guión "recuerda" la entrada, luego el juego retrocede y se prescribe el control para un personaje de pie. La dificultad es que mientras el segundo jugador está de pie, una cosa es el comportamiento de los enemigos , y cuando él también se mueve, es otra; hay que corregir de nuevo los movimientos del primero. [catorce]
Para interesar más a la audiencia, el autor de la película elige la dificultad máxima. Esto es aplicable solo en aquellos juegos que se vuelven objetivamente más difíciles en este caso. Si la complicación solo aumenta la energía de los enemigos o reduce el tiempo asignado al héroe, no se utilizará.
Sistema/Consola | Emuladores |
---|---|
NES | FCEUX , BizHawk, FCE Ultra |
súper nintendo | Snes9x, BizHawk, lsnes |
chico virtual | VBjin |
nintendo 64 | BizHawk, mupen64 |
Game Boy , Game Boy Color , Game Boy Advance | BizHawk, VisualBoyAdvance |
Nintendo DS | desmume |
Estación de juegos | BizHawk, PSXjin, PCSX |
Sistema maestro | BizHawk |
Sega MegaDrive | BizHawk, Gens |
Saturno | BizHawk, Yabause |
Arcade , Neogeo | Regrabación de Final Burn Alpha |
Motor de PC | BizHawk, PCEjin, Mednafen |
DOS | JPC-rr |
MSX | OpenMSX |
ventanas | Reloj de arena |
linux | libTAS |