20 agosto, 2006

Cuestión de puntería

Todo aquel que haya jugado alguna vez a un FPS en consola sabrá lo frustrante que puede llegar ser el sistema de apuntado en este tipo de juegos. Sólo después de muchas horas de práctica y frustración empezaremos a dejar de pensar que nos estamos enfrentando al controlador y podremos, por fin, disfrutar de nuestro shooter.

Sin embargo, la mayoría de jugadores habrán desistido mucho antes. Sus cinco primeros minutos en el juego, supuestamente excitantes, se habrán limitado a estar constantemente compensando de un lado a otro el punto de mira con ligeros toques al stick.

Ante tal demostración de habilidad en el arte del apuntado, que haría sonrojar al mismísimo Torrente, nuestros enemigos empezarán a mirarnos con compasión, y nos daremos cuenta que no nos aciertan tampoco ellos. Los diseñadores se dieron cuenta durante la fase de testeo que tenían que hacerles medio ciegos para evitar que el jugador estuviera muriendo constantemente.

Este artículo pretende ilustrar con algunas soluciones prácticas cómo se puede mejorar el apuntado en juegos de disparos que utilicen un stick analógico para ello. La mayoría de estas soluciones se exponen ya en el siguiente artículo de Gamasutra y se han utilizado en algunos juegos ya publicados (Halo sigue siendo el ejemplo a seguir) así que la idea de este artículo es resumir las más interesantes allí expuestas, proponer otras no contempladas allí y tratar de encontrar, a modo de pequeño brainstorming colectivo, algunas más que se nos vayan ocurriendo entre todos.

Empecemos entonces con las principales soluciones propuestas:

  1. Respuesta no lineal a inclinación del stick analógico: un mapeado lineal del controlador nos arruinará la experiencia de apuntado porque el desplazamiento de la retícula en la pantalla requiere de mucha mayor precisión de la que podemos obtener moviendo con nuestros dedos el stick analógico. La solución más obvia es hacer que la respuesta sea no lineal y ajustable según el rango de inclinación, de modo que podamos, por ejemplo, reducir la sensibilidad en giros muy suaves (mejorando asi la precisión) a la vez que que incrementando la respuesta a partir de cierta inclinación del stick (asegurando que los cambios de orientación de cuerpo que quiera hacer el jugador respondan con suficiente celeridad). Cómo estaréis intuyendo, el modo más visual de controlar este tipo de ajuste será normalmente una gráfica, en la que uno de los ejes es el grado de inclinación del stick analógico, normalmente destinado al apuntado, y el otro la respuesta del punto de mira (expresada en grados por segundo, por ejemplo).

  2. Reducción de la sensibilidad en movimientos verticales del punto de mira. Normalmente no necesitaremos orientar verticalmente nuestro punto de mira más allá de un ángulo de 30 grados, así que podemos reducir su sensibilidad de respuesta, evitando así que nuestro jugador se encuentre mirando al suelo o al cielo constantemente por haber inclinado en exceso el stick. Lógicamente, en caso de juegos donde los tiroteos en distintas alturas son constantes, esta solución debería tener en cuenta un ángulo coherente al diseño de niveles.

  3. Autoapuntado suave (o "soft lock", en inglés). Magistralmente utilizado por Halo, els sistema consiste en hacer que el punto de mira tienda a quedarse sobre los objetivos cuando se encuentra encima de ellos, facilitando que permanezcan dentro de él incluso cuando el objetivo se mueve. Idealmente, el jugador no se dará cuenta que el juego le está ayudando, manteniendo por tanto la sensación de ser él el que está realmente apuntando a los enemigos.

  4. Autoapuntado forzado. A diferencia del sistema anterior, el trabajo realizado por el sistema es percibido por el jugador, ya que éste dispone de un botón exclusivo para fijar el punto de mira en el objetivo más cercano a la posición del punto de mira antes de tal pulsación. Podemos encontrar dos tipos de utilización de este sistema de apuntado, según si una vez fijado el objetivo utilizando el botón éste sigue fijado indefinidamente hasta que se suelta el botón de lock (caso de Metroid: Prime Hunters), o si el objetivo se fija tras la pulsación pero no se vincula en caso que éste se mueva o sea el jugador el que mueva el punto de mira (ver la versión de XBOX 360 de Call of Duty 2).

  5. Autoapuntado forzado ajustable. Esta es una variación de la solución anterior. La diferencia aquí es que, una vez fijado el objetivo en nuestra retícula, el jugador puede aún mover el punto de mira con el controlador, sin salirse del objetivo, apuntando por ejemplo distintas partes del cuerpo.

  6. Combinación de sistemas de autoapuntado. También relacionada con las dos soluciones anteriores, en este caso se trata de un sistema que se fundamenta en utilizar un sistema de autoapuntado forzado dentro de otro. El primer sistema fijaría uno de los objetivos, de los distintos que puede haber en pantalla, según la posición de nuestro punto de mira y después de la pertinente pulsación del botón de lock. Una vez fijado el objetivo, el segundo sistema permitiría movernos directamente entre distintos sub-objetivos (partes de un coche o un enemigo, por ejemplo), inclinando el stick de modo acentuado hacia el sub-objeto al que queremos ir o utilizando otro botón que ciclará entre los sub-objetos presentes, por ejemplo.

  7. Autoapuntado inteligente. En este caso, la solución consiste en hacer que el juego haga que nuestras balas impacten correctamente en aquellas situaciones en las que el punto de mira no está exactamente ubicado sobre nuestro objetivo. El modo de camuflar este pequeño truco es presentar en pantalla un punto de mira suficientemente grande como para que el jugador no se dé cuenta. El problema que implica, sin embargo, es que puede complicar la efectividad de los sistemas de daño localizados al no ser completamente controlable qué parte del cuerpo recibirá un impacto cuando el juego haga impactar en el enemigo una bala que no hubiera impactado si se hubiera hecho caso de la posición central del punto de mira.

  8. Compensación de apuntado en salto. Esta sencilla solución, cuya funcionalidad está ya cubierta por los sistemas de "soft lock", consiste en reducir automáticamente la altura de la orientación vertical del punto de mira cuando el jugador efectúa un salto. De este modo, se consigue facilitar el apuntado sobre enemigos que permanezcan en el suelo.

  9. Ajuste de la velocidad de ascensión/caída en saltos. Un salto es por definición un movimiento brusco; por lo tanto, su ejecución no va ayudar al proceso de apuntado. Sin embargo, si por la experiencia de juego que buscamos va a resultar necesario disparar durante la ejecución de un salto, deberemos reducir tanto cómo sea posible la velocidad a la que ascendemos/caemos. De este modo (Halo es, una vez más, un buen ejemplo de esta solución) daremos más tiempo al jugador para que pueda apuntar a sus objetivos de un modo efectivo. El lado negativo de esta solución es que la percepción visual del salto va a estar afectada inevitablemente por este tipo de ajustes, generando normalmente la sensación que estamos bajo gravedad lunar.

  10. ...


Mostrar/ocultar resto...

9 Comments:

At 20/8/06 20:24, Blogger sgarces said...

Yo añadiría que para el soft lock, hay al menos dos maneras de conseguirlo. Una es la que menciona Cesc, "sujetando" el punto de mira cuando pasa por encima de un enemigo, reduciendo la velocidad de movimiento para que el jugador tenga una mayor ventana de oportunidad de soltar el stick y dejar al enemigo centrado. Esta sería pasiva, espera a que el jugador apunte, y entonces le ayuda. Una forma mas activa sería tener "atractores" en los enemigos, de modo que si el jugador apunta suficientemente cerca, el sistema le ayuda corrigiendo y acercando el punto de mira al enemigo. Probablemente una combinación de ambos, utilizados sabiamente, sea ideal. El atractor acerca el punto de mira al enemigo y el sujetador lo mantiene ahi.

Por otra parte, en un FPS no todo es apuntar y disparar. Moverse es importante, como lo es girar. Hacer giros bruscos es difícil con un mando de consola, por eso hay una serie de ayudas al movimiento:
- La velocidad de giro no es constante, y va aumentando según mantienes el stick en un extremo para girar. Esto es parecido pero distinto a la respuesta no lineal del mando. La velocidad aumenta con el tiempo pero el stick está en el límite. Es la cuarta dimension :-)
- Para giros bruscos, si el sistema detecta un cambio brusco de dirección (el stick pasa de un extremo a otro, o del centro a un extremo en muy poco tiempo), la velocidad se dispara directamente al maximo. Así se facilitan cosas como darle la vuelta rápidamente cuando tienes un enemigo detrás.

Y si todo esto falla, siempre puedes pillarte la Wii...

 
At 21/8/06 01:34, Anonymous Anónimo said...

En el tema de la sensibilidad de los ejes, otro truco precioso es reducir la sensibilidad del eje vertical cuanto más desplazado esté el stick en el eje horizontal.

 
At 21/8/06 16:51, Anonymous Anónimo said...

Puff... un montón de cosas que decir por aquí. Esperemos no aburrir.

Mi experiencia con este tema es el ajuste del control del malhadado Commandos: Strike Force y, creedme, esto es un jaleo de no te menees para hacerlo funcionar. Empecemos con el Halo y el 'soft lock' tal y como lo llamáis en el artículo. Hay que tener en cuenta que hace unos meses que no reviso esto, así que hablo un poco de memoria y es posible que se me escapen algunos detalles; pero estuve dando una charla a unos chavales de la facultad de informática de la Complutense hace no demasiado, con el Halo arrancado, y después de tanto estudiarlo todavía se me escapó algún detalle.

A) El Halo no hace ningún esfuerzo para mantener el punto de mira sobre el enemigo sin input por parte del jugador. Es decir, si tienes la retícula encima de un enemigo, y sueltas el controlador, la retícula no se moverá si el enemigo se mueve.

B) Lo que hace el Halo es ayudarte a mantener la retícula según te mueves. Tenemos dos vertientes para esto:

b1) Asistencia al circle-strafe: si moviéndote de izquierda a derecha tu retícula pasa por encima de un blanco, el avatar del jugador gira para mantener el blanco bajo la retícula. Es posible jugar durante años y no darse cuenta de esto, pero el resultado es excepcional: tienes la sensación de hacer un perfecto circle-strafe gracias a tus magníficas cualidades de jugador, cuando en realidad todo el trabajo lo está haciendo la máquina.

b2) Cambios de nivel: si, teniendo a un blanco bajo la retícula, asciendes o desciendes por un desnivel del terreno, la retícula baja o sube para compensar y mantener al blanco a tiro. También ocurre si saltas y te estás desplazando adelante o atrás (si saltas 'en el sitio', no sucede).

Si alguna vez queréis enseñar la complejidad real detrás de algo tan aparentemente sencillo como el control de un FPS en consola, os recomiendo que reproduzcáis estas dos situaciones. La gente se queda con la boca abierta.

C) Punto de mira gordo: que es como llamo yo a 'autoapuntando inteligente'. En mi experiencia es uno de los métodos más sencillos y efectivos.

c1) Para empezar, la mayor parte de los juegos modernos no presentan el punto de mira como un punto, sino generalmente como un círculo o área marcada por cuatro segmentos. Además, el jugador tiende a no darse cuenta de la trampa.

c2) Una variación (presente en el Doom3 para XBox, por ejemplo, y creo que también en el Halo) es aprovechar los disparos consecutivos para ir acercando el punto de mira al blanco; de este modo, aunque una ráfaga comience relativamente alejada del blanco, el final de la ráfaga está completamente sobre él. ¿Por qué hacer esto? Porque el jugador suele odiar que la retícula se mueva por su cuenta, pero con el retroceso y las animaciones de disparar el efecto queda bastante disimulado.

D) Respuestas no lineales de los sticks analógicos: como muy bien dice Sergio, no basta con tener una respuesta no lineal. Cuando el mando está totalmente inclinado en una dirección es interesante añadir una aceleración para facilitar los giros rápidos. Algunos detalles más:

d1) En mi limitada experiencia, la detección de un cambio brusco para forzar la velocidad máxima no es demasiado práctica: el jugador casi siempre usa bruscos movimientos del stick analógico. Si aceleras al máximo lo que consigues es que el jugador esté sobre-compensando sistemáticamente sus movimientos. Es un poco parecido a controlar un simulador de coches con teclas.

d2) En el CSF encontré útil tener DOS intervalos de respuesta no lineal para cada eje, cada uno con una función exponencial distinta. Con una única función exponencial (incluso teniendo aceleración en el extremo) no conseguía una respuesta del controlador cómoda.

El mejor resumen de todas estas cosas es que es necesario un conjunto mixto de técnicas para facilitar la tarea de apuntar en un FPS en consola. Si miráis los últimos títulos, veréis que la mayor parte de los desarrolladores ya se han aprendido la lección.

Respuestas a los demás:

A Sergio: ¿La Wii? Como espero que ya sabrás, no puedes hacer un FPS donde la retícula esté centrada en la pantalla. Los movimientos del brazo son inevitables, y lo que iba a suceder es un templeque digno de un gran caso de Parkinson según el juego mantuviera el punto de mira fijo pero tuviera que mover el resto de la escena. Claro que lo mismo luego veo el Red Steel y me como mi comentario con patatas.

A Jare: en mi experiencia con el CSF, dado que la respuesta del controlador en las diagonales no es (1,1) sino más bien (0.7,0.7), no eché de menos un factor de reducción arriba / abajo mientras giras izquierda / derecha. Aunque no dudo que lo mismo hubiera venido bien.

Saludos a todos y disculpad por la redacción, que se supone que estoy currando.

 
At 21/8/06 18:16, Anonymous Anónimo said...

He estado trasteando con el tema que dice Juande (y bajo su amable sugerencia y supervision - que no todos los diseñadores son unos paketes! :D) para ver qué ocurre si convertimos la respuesta circular de un stick de gamepad típico (las diagonales son 0.7, 0.7), en una respuesta cuadrada (las diagonales son 1,1), con la siguiente fórmula (WARNING: C++ CODE DETECTED):

void NormalizeCircularStick(float &x, float &y)
{
float r = sqrtf(x*x + y*y);
if (r > 0)
{
float ax = fabsf(x);
float ay = fabsf(y);
float f = (ax > ay)? r/ax : r/ay;
x *= f;
y *= f;
}
}

A Juande y a mi nos ha parecido que la sensacion mejora algo, eso es cierto, dado que cuando estás girando a tope hacia un lado y decides empezar a girar también hacia arriba, el giro horizontal se mantiene a velocidad completa. Vamos, es un tema un poco dificil de explicar en texto, pero parece que conviene tener esa formula en el arsenal.

 
At 22/8/06 10:12, Anonymous Anónimo said...

Pese a que estoy completamente de acuerdo, convendría que alguno de los presentes (venga, yo mismo!) recordara cuánto daño nos han hecho a todos como jugadores los FPS en PC.

Y ahora sin la coña: hay un problema mas alla del hecho de que sea dificil o no de controlar un fps con un pad, y es que los jugadores muchas veces vienen de jugar en pc con raton+teclado, y suelen opinar sobre si es mas dificil o mas facil, cuando es ridiculo comparar ambas cosas pq son radicalmente diferentes. Un stick analogico no es comparable a un raton y viceversa.

Si estoy un tiempo jugando a [rellenar con un fps para pc que este de moda, o incluso el world of warcraft, me da igual] y luego intento jugar al halo en xbox, directamente no puedo, me siento como un inutil (mas). Y otro tanto me sucede si lo intento al contrario.

Ademas cualquier usuario de pc esta mas entrenado para usar raton... el interfaz de apunta y dispara es el mismo que seleccion un icono y haz doble click. El pad simplemente es un elemento nuevo que hay que aprender a controlar, igual que la primera vez que juegas a un dancing stage o guitar hero. Una vez que has aprendido es mucho mas facil pasar de un fps de consola a otro.

Un saludo!

 
At 22/8/06 10:57, Anonymous Anónimo said...

Por supuesto, con la práctica la cosa se iguala bastante. Una de las bellezas del Halo original es que, siendo más de PC que el güindous como soy yo, apenas tardé media hora en hacerme con los controles. Pero para usuarios de 'pro', el ratón sigue siendo infinitamente mejor que el pad.

La razón es más o menos sencilla, aunque no tengo el vocabulario para describirlo con exactitud, pero el quid de la cuestión radica en que el mapeo entre el ratón y la pantalla es 1 a 1 con las dos dimensiones del plano (x,y), que es un mapeo 'natural'. Con un pad, el mapeo es dinámico: implica dirección y tiempo, es decir (x,y,t). Y nuestro pobre cerebro no está para tantos trotes.

 
At 22/8/06 16:31, Anonymous Anónimo said...

Supongo que te refieres al concepto de que el movimiento con el raton es instantáneo (dentro de los artificiales limites de la alfombrilla supongo, en el caso de que exista) mientras que con un stick analogico tardas un tiempo en completar un giro, ya que, aunque lo pulses al maximo eso no tiene pq significar haber "llegado" hasta tu destino.

Si no era a eso a lo que te referias no te he entendido.

Si era eso creo que la unica solucion posible seria algo asi como aumentar la sensibilidad del stick, igual que se puede hacer con el raton (mayor giro de bola == mayor desplazamiento). Pero dado el poco recorrido que tiene un stick no me parece muy util, se perderia toda la precision en cualquier movimiento.

Alguien ha probado a jugar a un FPS con algo parecido a un trackball? Supongo que la experiencia tambien debe cambiar mucho.

Se me ocurre una combinacion de stick + giroscopio (he oido wii? lastima que no tenga demasiada fe en nintendo a estas alturas) para combinar inclinacion del stick e inclinacion del mando indicando asi diferentes "intensidades" de movimiento. Desde luego seria un control complicado para acostumbrarse, pero me gustaria probar algo asi a ver que tal funciona.

Un saludo!

 
At 22/8/06 17:20, Anonymous Anónimo said...

Hace unos cuantos años alguien fabrico una Máquina Recreativa de Quake (con red incluida), y en vez de raton y teclado tenia un trackball y un tablero de botones especificos. Creo que no tuvo mucho exito, pero no creo que fuera por el trackball; el principal problema que le veia a ese cacharro era una inercia relativamente alta para los movimientos tan rápidos y bruscos que requiere un FPS loco. No lo he vuelto a probar.

Tambien conoci a uno que jugaba a Quake con un Spaceball. Ese mando, una version no móvil de un trackball, detectaba rozamiento (giro) y presion (movimiento), y era muy usado en rollos de Realidad Virtual. Aunque este tio jugaba de vicio a Quake con este mando, resultaba practicamente inmanejable para un jugador "normal"; ninguno de nosotros pudo llegar a manejarlo con un minimo grado de efectividad y comfort.

Lo que está claro es que los fabricantes de consola no han optado por este tipo de dispositivos, con lo cual mejor no hacerse muchas pajas y sacar el máximo partido a los Dual Sticks y Wiimotes.

 
At 23/8/06 10:06, Anonymous Anónimo said...

Un pequeño detalle que me parece muy importante es, concretamente, el de los enemigos a la espalda. Independientemente de la sensibilidad del mando a la hora de ajustar milimétricamente el punto de mira o el incremento de velocidad si pulsamos a un lado de golpe, yo encuentro sumamente útil en un FPS que provea un mecanismo para darte la vuelta instantáneamente.

Por ejemplo, creo recordar que en un Quake de la PS One, si pulsabas bruscamente el stick hacia atrás, el personaje giraba a toda velocidad (mucha más que cuando rotaba normalmente al máximo) y se paraba de golpe al alcanzar 180 grados. Por lo general, uno no podía controlar a esa velocidad dónde parar el giro, de modo que el jugador no debía mantener el stick pulsado, sino iniciar el movimiento y esperar a que el sistema le parara mirando hacia atrás.

Otras posibilidades son las provistas por el primer juego de la saga del Tenchu, también de la PS One. El mecanismo de dar la vuelta bruscamente existía como movimiento especial. De hecho, se proveían dos maneras de quedar mirando directamente hacia atrás, cada una con sus propósitos distintos (y muy espectaculares), una dando una voltereta en el aire (muy útil para enemigos a diferentes alturas) y otra rodando por el suelo. La cuestión es que a través del stick no se podía rotar al personaje, pero si pulsabas alguna de las diagonales "abajo/atrás", el personaje rotaba a una velocidad elevada.

Me pareció una buena idea comprimir otros movimientos en las posiciones del stick que no se usaban a menudo (prácticamente nunca utilizabas esas diagonales), para evitar tener que utilizar otros controles físicos. Así pues, lo bueno de este sistema es que no tenías que usar el stick derecho para rotar al personaje, ya que el juego disponía de abundantes combinaciones de botones y uno no podía estar con las manos en todos sitios. Además, una ventaja extra (en aquel tiempo) es que era perfectamente válido tanto para el stick analógico como para el pad.

 

Publicar un comentario

<< Home