¿Cómo se programan los códigos de trucos en los juegos?

Mi punto de vista puede estar algo anticuado, porque generalmente he jugado con juegos que fueron creados para consolas más antiguas, que generalmente no tenían ningún soporte para subprocesos múltiples.

En varios casos, puede ser algo más difícil que un simple if. Esto se debe a que el núcleo de un juego es el bucle del juego, que es esencialmente un bucle infinito donde el código básico se ejecuta en repetición. Una de estas funciones básicas es “sondear” el controlador, o ver qué botones se están presionando actualmente. El juego no puede esperar a que presiones todos los botones en secuencia; Tiene otras cosas que hacer, como colocar sprites y calcular el daño.

Podría haber varias formas de manejar esto. Por otro lado, sé que muchos juegos implementarán una lista de pulsaciones de teclas que han sucedido. Si se ha presionado una tecla, la colocará en una lista, llamada cola. El código posterior puede verificar la lista, obtener la clave al principio de la lista y procesarla de alguna manera. Si una cadena de claves que procesa coincide con un código de trucos, entonces realiza ese truco.

Hoy en día, el subprocesamiento múltiple puede hacer que dicho procesamiento sea más fácil y limpio. En cuanto a dónde está ubicado, para mí dependería de cómo esté diseñado el juego. Si solo se pudiera ingresar en una escena específica, colocaría la verificación del código de trucos donde se procese la entrada para esa escena.

Así es como lo haría y cómo lo vi hacer varias veces. Como muchas cosas en el desarrollo de juegos, diferentes personas pueden jugarlo de diferentes maneras.

Primero, necesita un umbral de temporizador para restablecer el código de entrada. Digamos que comienza con una entrada, toca otra, toca otra pero, si el tiempo entre las entradas es mayor que el umbral, la secuencia se detiene y se reinicia.

Para verificar si la secuencia se ajusta a la esperada, puede usar múltiples alternativas. Vi gente usando Colas o Listas almacenando la secuencia actual, y Colas / Lista prefabricadas con las posibles para comparar. De manera similar, vi personas usando cadenas para comparar. Simplemente asigne un carácter a cada entrada y concatene la secuencia y compárela con las cadenas almacenadas.

Incluso vi a un chico haciendo un gráfico de posibles entradas apuntadas en un orden específico para crear las posibles combinaciones. En cada evento de entrada, ingresó al gráfico y comenzó a moverse hasta que se encontró una solución final.

Hay varios tipos de códigos de trucos. Supongo que no quiere decir códigos de trucos que ingrese en cualquier tipo de campo de texto (que funciona como cualquier otra validación en ese campo, al operar en toda la cadena).

Supongo, en cambio, que estás hablando algo así como el código Konami, una secuencia mágica que se introduce durante el juego normal.

Esto funcionaría como un combo, y probablemente use el mismo código que los combos.

Los combos funcionan con un “motor de estado”.

Digamos que su combo se realiza escribiendo la palabra “combo”.

En el bucle principal del juego, tiene una variable, llamada, por ejemplo, `$ ComboCodeState`, inicialmente establecida en cero.

Cada vez que el ciclo principal del juego maneja una pulsación de tecla que le interesa, verá el valor en esa variable y luego el personaje en la posición de ese valor en la cadena.

Si esa no era la tecla recién presionada, establece el contador de estado nuevamente en cero, a menos que la tecla presionada fuera el carácter en la posición cero, en cuyo caso lo establece en 1.

Si fue la tecla que se acaba de presionar, incrementa el contador de estado, y si el contador ahora es igual a la longitud del código, entonces el código se activa y el contador vuelve a cero.

Si alcanza la longitud del código, entonces el código se activa y el contador de estado vuelve a cero.

Digamos que escribe “xcoxccombobreaker”.

El contador comenzará en 0, presionando x lo mantendrá en 0, luego con las letras siguientes irá 1, 2, 0, 1, 1, 2, 3, 4, 5 (activando el combo), 0, 0, 0, 0, 0, 0, 0 …

Y puede tener un montón de contadores de estado diferentes haciendo lo mismo. Uno para el combo hadouken, uno para el código konami, uno para … etc.

Ahora, dije “una pulsación de tecla que te interesa”. Eso es porque a veces no desea que todas las entradas restablezcan su combo. En un juego de lucha, es posible que desees que tu personaje pueda moverse sin romper sus combos.

Por lo tanto, puede codificarlos para cambiar el estado independientemente de la tecla presionada (código konami), o solo cuando se presiona una tecla de acción (¡hadouken!), O solo cuando se trata de una tecla de letra (idspispopd), etc.

Si presiona la primera tecla, ejecute la segunda instrucción if

Si pulsa la segunda tecla, ejecuta la tercera sentencia if

Pronto…

también podría ser una función, y a veces también ponen un límite de tiempo

No estoy seguro de cómo se implementan los códigos del juego, pero solo hago los míos. Si está en la PC, use tsearch o cheat engine. En PSP, cheatmaster (que ayudé a diseñar) si en ps vita, GoHANmem.