29 septiembre, 2006

De la frustración en los videojuegos

Tengo en mis manos mi copia del GTA San Andreas. Fallo por enésima vez una de las misiones del inicio, y decido que le estoy dedicando unos minutos de mi vida que nunca volverán, y que no me están resultando provechosos en absoluto. Trazo una parábola con la mano y el juego vuela hacia la papelera en bullet time. Stop. El juego flota en el aire.

Antes de que caiga en el olvido, me gustaría hacer un breve recorrido personal sobre aquellas fuentes de frustración que me han resultado más comunes:

- Mecánicas hostiles hacia el jugador: Me refiero a sistemas deficientes de salvado/checkpoints, penalizaciones excesivas sobre los recursos del jugador (vida escasa/munición insuficiente), o escasa información en el juego para afrontar los desafíos.

En el Shadow of the Colossus no te dan mucha información sobre cómo matar a los colosos. Unas pistas muy confusas, todo lo más. La única solución efectiva era… si, amiguitos, echar horas probando tácticas hasta dar con la apropiada, mientras mi barra de ira crecía exponencialmente. Me negué, y me pasé el juego gracias a un walkthrough de internet.

- Una única solución: Al hilo del punto anterior, muchos diseñadores proponen situaciones de juego al usuario que solo pueden ser superadas de un modo, situaciones en las que es fácil quedarse ‘bloqueado’ porque no das con esa maldita manera de pasar la fase. En estas situaciones los diseñadores se lo pasan mejor que el jugador, regodeándose por anticipado de las dificultades del desafío.

El limitarse a una única solución suele llevar aparejado otro problema: dado que solo hay una manera de solucionar el desafío, los diseñadores tratan de ocultar la solución para que el jugador no lo vea fácilmente, el reto sea mayor. En Half life 2 me quedé atrancado en un portón que no se abría. Le disparé, traté de saltar sobre él, lo ingravité, le lloré y supliqué. Nada. Resultó que la solución era relativamente sencilla, pero estaba oculta y no había ninguna pista que te condujera a ella.

- Dobles y triples penalizaciones al morir: De acuerdo, has muerto. Es aceptable ser penalizado. Pero ¿cuánto? En el Diablo, al morir no solo se interrumpía la acción, sino que perdías tu (trabajosamente ganado) equipamiento, debías volver al lugar de la muerte para recoger el equipo, y algunos de los objetos, por su escaso tamaño, eran difíciles de localizar (forzando al pixel search), especialmente si había una tribu de esqueletos saltando sobre tu espalda.

A los chicos de Blizzard este suplicio les debió parecer tan apropiado, que lo perpetuaron en el World of Warcraft, donde consumes una escandalosa parte de tu tiempo de juego buscando tu cadáver por Azeroth.

- Demasiados parámetros: Muchos juegos, especialmente los de estrategia, basan parte de su jugabilidad en centenares de parámetros que el jugador debe gestionar. Si se confunde complejidad con profundidad, puede conducir a dos problemas:

• La cantidad de datos a manejar es tan elevada que el diseñador decide que muchos no trasciendan al jugador para no agobiarle. Son los casos, como decía Sid Meier, en los que la máquina se lo pasa mejor que el jugador.

Como experiencia personal, puedo apuntar que en Imperial Glory el sistema de combate se basaba en un número importante de parámetros, que optamos por simplificar a 4 de cara al jugador para no liarle. Pero pese a que en la superficie el río parecía tranquilo, en la profundidad del código había tantos parámetros en juego que muchas veces sucedían… cosas inesperadas.

• La cantidad de datos es elevada, y todos están disponibles para el jugador. La consecuencia es una impresión inicial abrumadora, y una experiencia de juego basada en gestionar números, más que en divertirse. Si has jugado a cualquier rol basado en las reglas AD&D sabrás de lo que hablo.

- Descubrir que tu juego es otro: Juegas, terminas el juego incluso, y entonces descubres que el juego tiene un universo de cosas que puedes hacer que ni sospechabas.

Yo completé el Indiana Jones y la maldición de la Atlántida sin sospechar siquiera que había otros 2 finales. La elección no estaba lo suficientemente clara, era un diálogo como tantos otros, y eso me privó de la posibilidad de disfrutar plenamente de mi juego.

- Finales pobres: Un problema heredado de los años 80, cuando no había memoria suficiente para permitirse muchas alegrías. Actualmente, me parece innegociable: los jugadores que se han esforzado lo suficiente como para terminar el juego deben tener una recompensa adecuada al esfuerzo. Qué menos que un vídeo, una cutscene cuidada o desbloquear algún contenido interesante.

- Pulsad, pulsad malditos: Como punto de partida no estoy en contra de la mecánica de machacar botones. En algunos juegos está bien integrada. Sin embargo, el exceso conduce a situaciones no solo de frustración, sino directamente de riesgo para la salud. Recientemente el God of War me costó muchos ruegos al cielo para que las escenas de destrozar el pad terminaran cuanto antes, y aunque nunca fueron excesivamente largas, sí lo fueron para mi gusto. Fue una de las razones por las que no seguí jugando.

- English only: Sin ser mi caso, me solidarizo con los miles de usuarios no-angloparlantes. Muchos juegos se lanzan en España sin una localización apropiada, y fuerzan a sus compradores a un curso acelerado de inglés para el cual ni están preparados ni necesitan. Durante años fui el traductor de mi guild en el Star Wars Galaxies de los textos de las quests. Y como no podía ser de otra manera, los desarrolladores habían tenido buen cuidado de que estos textos fuesen interminables, confundiendo cantidad de texto con inmersión.

- Controles imposibles: Muchos juegos exigen del jugador un manejo de los controles solo accesibles para el Dr. Octopus. Es muy habitual en juegos de estrategia, en los que prácticamente todo el teclado tiene una función. Se podría pensar que es un problema exclusivo del PC, pero salta con cierta frecuencia a las consolas: el sistema de reconocimiento de voz de la Nintendo DS es deficiente, y ya veremos los juegos de la Wii…

Es por este tipo de mecánicas que sospecho que Hitler sigue vivo, y encontró trabajo de diseñador. En fin, el GTA vuelve a recuperar el movimiento, y cae a la basura, lugar al que pertenecen algunas de sus mecánicas y (que dios me perdone, porque sigo pensando que el GTA es uno de los conceptos de diseño más prometedores que he visto jamás) algunos de sus diseñadores.
Mostrar/ocultar resto...

18 septiembre, 2006

Flexible complejidad

Ya he leído el documento de diseño, hablado con los diseñadores y discutido con ellos cómo debe funcionar el sistema de alerta de los enemigos. En principio, es algo tan sencillo como que si ven al jugador, su nivel de alerta cambia de "patrulla" a "persecución", te buscan durante un rato y si te encuentran, te atacan, mientras que si consigues despistarlos, vuelven al estado de patrulla al cabo de un tiempo. Suena bien, es lógico y razonable, y la mayoría de los juegos funcionan así. Satisfecho y confiado me dirijo a mi puesto a implementar la funcionalidad.

Lo primero que observo es que no está claro lo que significa "ver" al jugador. Me entran las dudas de si será necesario algún tipo de cono de visión. O si también se podrá detectar al jugador oyéndolo, sin verlo. Es muy probable que los diseñadores quieran controlar externamente cuándo un enemigo está autorizado a ver al jugador y cuándo no. Además por supuesto, se deben poder configurar parámetros como distancia de visión, máximo ángulo vertical y horizontal, etc. Se me ocurre que será interesante también tener en cuenta si algún elemento externo afecta la visión de los enemigos, como el jugador destruyendo bombillas o lanzando una bomba de humo. Lo mejor será preparar un componente de percepción sensorial, que los enemigos usen. Dicho componente tendrá una lista de servicios genéricos que se registrarán en el mundo lógico para recibir eventos. Los eventos atravesarán una serie de filtros abstractos que se podrán añadir para restringir rangos y ángulos, u otras circunstancias como oscuridad o paredes que obstruyen tanto vista como oído. Para conseguir la funcionalidad básica, empezaremos por implementar el servicio de visión, y aplicaremos un filtro para detectar si la visión está obstruida que consista en lanzar un rayo contra el posible objetivo.

Claro, pero aunque el objetivo normalmente sea el jugador, es posible que queramos que los enemigos luchen a veces entre si. Necesitaré organizar los personajes en bandos, en facciones. Asociar cada uno a un bando y un grupo, y luego definir en algún sitio centralizado las relaciones entre ellos, si son enemigos, aliados o neutrales. En cada actualización de la percepción, los personajes evaluarán su entorno usando el sistema de percepción y podrán clasificar a los otros personajes según su bando. Además, las relaciones entre ellos pueden cambiar fácilmente durante el juego, así que puede haber alianzas inesperadas, o nuevos enemigos o compañeros para el jugador. Suena bien, ahora a ver cómo deben reaccionar.

Una buena forma de estar preparado por si en el futuro es necesario incorporar nuevas o diferentes reacciones es implementar un traductor, que convierta los estímulos externos recibidos por la percepción en estados emocionales del personaje. Así, si ve a un enemigo, podemos incrementar su hostilidad, aunque si el enemigo viene muy bien preparado, también afectará a su miedo. Con este sistema, debería ser fácil poner a los enemigos a huir del jugador, si hiciera falta. La implementación la haré usando un mapa cognitivo. Definiremos una lista de estados emocionales, y cada posible evento percibido llevará asociado su efecto, positivo o negativo, sobre dichos estados. También podemos relacionar unos estados con otros, de modo que si la hostilidad sube por encima de cierto valor, el miedo baja o desaparece para simular que el personaje está tan furioso que no le importa ni su integridad física. Por supuesto, los estados emocionales no son un absoluto. Uno no se siente enfadado en general, lo está con algo. Los estados emocionales por tanto deberán ir asociados a los elementos percibidos en el mapa.

Y no basta con trabajar con los personajes que estan siendo percibiendo en un momento dado. Es necesario mantener algún tipo de memoria del pasado, para que aunque pierda a un enemigo de vista el personaje recuerde que debe seguir tratando de acabar con él. Así, los elementos emocionales, con sus estados asociados, perdurarán en el tiempo. Si no se refrescan siendo percibidos directamente, una rutina especial se encargará de afectar a los estados emocionales hasta que acaben olvidando haber percibido el elemento. Esto servirá para que pasado cierto tiempo de ver al jugador, si no le ven de nuevo, dejen de perseguirle.

Ya sólo falta alguna manera de conectar estados emocionales a comportamientos. Eso será fácil con una máquina de estados controlada por los valores emocionales. Según ciertos rangos de valores, el personaje pasará de un estado a otro. Habrá que incorporar cierta histéresis, de modo que si pasamos a un estado (atacando) porque la hostilidad es 20, no volvamos al estado anterior en cuanto la hostilidad descienda a 19, sino que esperemos a un valor algo menor. Así evitaremos oscilaciones de comportamiento. Pero además de la máquina de estados necesitaremos un mecanismo de arbitraje, ya que tendremos varias máquinas corriendo en paralelo, evaluándo como reaccionar a todos los elementos detectados en el mundo. Hará falta un sistema por encima que mediante reglas o puntuación elija uno de los elementos, y haga que el personaje ejecute las acciones correctas para tratar con ese elemento.

Estoy empezando a pensar la lista de comportamientos (el de persecución lo pensaba hacer mediante filtros de partículas, que extiende una lista de puntitos por todo el mapa y hace que el personaje los vaya recogiendo, para hacerlo muy realista), cuando viene un diseñador y me pregunta cuándo podrá tener el sistema de alerta para probarlo.

- Pues dejame que mire, hmmm, dos semanas para el sistema de percepción, una para los bandos, tres para el mapa cognitivo, una la memoria, dos para la máquina de estados y una para integrar todo. Dos meses y medio. Eso sin contar el comportamiento de persecución, pero podrás ver que el enemigo está intentando perseguir al jugador porque aparecerá un texto encima de la cabeza.
- No lo entiendo. ¿Cómo puede tardar tanto? Parece algo sencillo.
- Si, pero no se trata de implementar simplemente lo que necesitais ahora. Voy a montar un sistema que facilitará cambios y nueva funcionalidad más adelante.
- Ya veo. ¿Y cuanto costaría hacer exactamente lo que necesitamos inmediatamente?

Pienso durante un rato. Habría que lanzar un rayo contra el jugador mientras el personaje está en el estado de patrulla. Si el rayo golpea al jugador, cambio el estado a persecucion y empiezo a ejecutar el comportamiento, mientras mantengo un contador cada vez que pierdo al jugador de vista. Si el contador llega a un límite, vuelvo a cambiar el estado, pero si tengo el jugador a tiro empiezo a atacarle.

- Una semana. Incluso daría tiempo de montar un sencillo comportamiento de persecución que se dirigiera a tu posición directamente.

El diseñador permanece en silencio durante un momento.
- Bueno, tú sabes lo que es mejor, pero dos meses y medio parece excesivo. - Se da la vuelta y vuelve a su sitio pensativo.

Y pensando también me quedo yo, cuestionando si realmente necesito toda la flexibilidad que había creído en un primer momento. Es fácil dejarse llevar por el ansia de cubrir todos los casos, de modelar las cosas siguiendo patrones de diseño y técnicas establecidas y generales. ¿Pero es esa realmente la mejor forma de desarrollar juegos? Antes de hallar una respuesta descubro que es la hora de ir a casa. Creo que lo consultaré con la almohada, y mañana veremos.


Mostrar/ocultar resto...

10 septiembre, 2006

El futuro de los "videojuguetes"

Suena el timbre de casa. Me levanto para abrir. Es el amigo de mi hermano pequeño, que como cada día en las últimas dos semanas, viene a casa para jugar al GTA: San Andreas. Le pregunto cuando se va a comprar una PS2, que acaba de bajar de precio. Luego por qué misión va; más que nada por saber si tuvo el valor de completar la persecución que me apeó del GTA hace un par de días.

Me dice que él no juega las misiones. ¿Cómo que no juegas las misiones? ¿Nunca? Me siento en el sofá y me dispongo a observar.
Cargar partida. 0% del juego completado. 0 secretos descubiertos. 25 horas de juego.

CJ aparece con un ramo de margaritas en la mano. El amigo de mi hermano pulsa un montón de botones en una rápida sucesión, invocando con ella a un tanque ruso de 8 metros. Sin soltar el ramo de flores, CJ se sube en él y empieza la locura. Durante los siguientes 120 segundos pasa lo siguiente:

  • Mueren 67 NPCs (8 de los cuales aplastados debajo las cadenas del tanque).
  • Explotan 32 vehículos (un carrito de golf entre ellos).
  • Están a punto de ser atropelladas 3 ancianas que iban hacia el bingo (una de ellas es la mismísima abuela de CJ).
  • El amigo de mi hermano no puede borrar de su cara una enorme sonrisa de satisfacción, soltando una carcajada cuando la abuela de CJ esquiva el tanque por segunda vez con un brinco de metro y medio que la hace chocarse de cabeza contra el único semáforo que se mantiene en pie de toda la calle.
Este artículo pretende, utilizando lo que nos cuenta el caso anterior, reflexionar acerca de los conceptos juego y juguete, intentando descifrar qué papel puede jugar el juguete en una industria que hasta ahora referencia casi exclusivamente al concepto de juego.

Se acostumbra a definir juego como aquella actividad recreacional donde los participantes siguen una serie de reglas para conseguir unos objetivos conocidos y que, en última instancia, definen cuando el juego ha acabado y cual de los participantes ha sido el ganador. Un juguete, sin embargo, se define simplemente como un objeto con el que se entretienen los niños.

Comparemos nuestro caso de estudio con un deporte, por ejemplo el fútbol. El fútbol también puede considerarse como un juego porque hay un reglamento complejo que define las reglas que deben seguir los participantes para la consecución del objetivo principal del juego (marcar más goles que el contrario).

Pero al igual que el GTA, el fútbol puede ser igual o más divertido si se practica sin seguir esas reglas, sin plantearse un objetivo que lleve a la victoria o la derrota, simplemente experimentando con su mecánica base (golpear un balón esférico con cualquier parte del cuerpo a excepción de las manos, en el caso del fútbol).

La competitividad ha sido hasta la fecha uno de los sustentos básicos que han atraído al usuario del videojuego, y como consecuencia, la pauta de diseño primordial que ha seguido la industria de desarrollo. Conceptos como "Puntuación máxima", "Récord", "Victoria", "Derrota" atraen al jugador que busca retos donde demostrar su valía y habilidad.

Sin embargo, a medida que los juegos se convierten en un medio de entretenimiento de masas, el jugador medio empieza a diversificarse, convirtiéndose poco a poco en el "jugador casual", que no va a prestarle más de media hora de su timepo a un videojuego si tiene que dedicarle más esfuerzo y paciencia de lo que está dispuesto a invertir en cualquier otro tipo de oferta de ocio.

Esto significa que nuestro jugador casual no va a regalarle cinco horas de sufrimiento al Counter Strike (los que queráis profundizar en esta experiencia recomiendo leeros el artículo de Sergio en este mismo site acerca de este tema), confiando que a partir de la sexta hora todo va a cambiar y empezaremos a divertirnos.

Competir implica esforzarse, y no siempre queremos esforzarnos en nuestro tiempo de ocio; nos vale con divertirnos. Permitir, quizás inconscietemente, que un videojuego sea experimentado sin las ataduras que implican objetivos y relgas, es en mi opinión una de las razones por las que GTA ha vendido millones de copias en todo el mundo. Algo parecido pasa con los Sims, otro de los videojuegos más vendidos de los últimos tiempos, o con Nintendogs, otro éxito indiscutible.

Como el GTA, los Sims, Nintendogs o el cada vez más popular Second Life, son propuestas donde la experimentación está permitida, donde el jugador puede expresarse y disfrutar de la experiencia interactiva sin la presión de equivocar un salto que implicará repetir 10 minutos de retos superados, no encontrar una pista indispensable para continuar o olvidarse de grabar la partida antes de un enfrentamiento especialmente difícil. Son, posiblemente, algo más cercano a un juguete que a un juego.

Me considero un jugador casual, por suerte o por desgracia como la mayoría de jugadores de videojuegos actuales. Por eso creo que los "videojuguetes" van a ir adquiriendo mayor protagonismo en los próximos años.

No estoy diciendo que deban desaparecer los videojuegos competitivos. Voy a seguir jugando al Pro Evolution Soccer o al Unreal Tournament, porque me gusta competir en ellos. Pero no tengo tiempo de ser competitivo en todos los juegos que me atraen. Así que prefiero un "videojuguete" que me divierta y sorprenda, a 20 "videojuegos" que me recuerden constantemente que no soy suficientemente bueno para ellos. Me gustan los "videojuguetes".

Mostrar/ocultar resto...

01 septiembre, 2006

Se trata de ganar

¿Deben los juegos estar bien equilibrados y ser justos para tener exito? Yo solia pensar que si, hasta que jugue a Counter Strike.

Puede que este post sea el resultado de mi frustracion con el juego (desde luego no estoy esperando que los marines intenten reclutarme gracias a mi extraordinaria habilidad), o puede que haya algo de verdad en la idea de que Counter Strike esta terriblemente desequilibrado a favor de los jugadores mas habiles, y eso es en parte lo que lo hace tan irresistiblemente atractivo.

Para empezar, veamos el concepto de realimentacion. En un juego continuo, el exito en una mision suele tener un efecto en el rendimiento en futuras misiones. Puede ser que hayamos conseguido mejores armas, subido nuestras estadisticas, o hayamos eliminado parte del enemigo. La realimentacion es el hecho de que acciones presentes se "realimentan" en el sistema, y modifican su estado.

El resultado de esta modificacion puede variar. Si al jugar muy bien un nivel obtengo facilidades y me resulta mas facil avanzar en los siguientes niveles, lo llamamos realimentacion positiva. Cuanto mejor juego, mas a favor lo voy teniendo, y mejores resultados obtendre. Es como una bola de nieve. Cada vez lo tengo mas y mas facil, y lo hago mejor y mejor.

El opuesto es, claro, la realimentacion negativa. Si lo hago muy bien, el juego varia para compensar y no darme ventajas, o incluso hacerse mas dificil. De esta manera el desafio tiende a estabilizarse. Si meto mucho la pata, el juego me sigue dando oportunidades, hasta llegar a mi capacidad. Si, contra todo pronostico, lo hago muy bien, el juego ira introduciendo handicaps, hasta alcanzar un equilibrio.

Los ejemplos mas claros de realimentacion se ven en lo que se llaman juegos de suma-cero (zero-sum games). En este tipo de juegos, como en los negocios, para que un jugador gane otro tiene que perder. Durante el desarrollo del juego, si tenemos realimentacion positiva, en cuanto un jugador que obtenga una pequeña ventaja la realimentacion la amplificara, plantando una alfombra roja que el jugador puede seguir comodamente hasta la victoria final. Por contra, con realimentacion negativa, el jugador que va perdiendo nunca esta demasiado lejos de recuperarse y hasta tomar la iniciativa, con lo que la emocion y la lucha se mantienen hasta el mismo final.

Veamos Counter Strike. En una partida cualquiera, dos equipos compiten uno contra otro. Un desafortunado terrorista estaba mirando hacia otro lado al doblar una esquina y se encontro con una bala entre ceja y ceja. En Counter Strike, una vez mueres estas muerto. Fin de la historia. Eso significa que la habilidad del policia con la SMG, no solo le ha valido un frag, sino que ha dejado al equipo contrario en inferioridad. Ahora los policias son mas, y lo tienen mas facil. No solo eso, las armas del difunto estan a disposicion del policia, en caso de que quiera esa granada extra que el terrorista nunca tuvo tiempo de lanzar. Pero no acaba ahi, no. La velocidad con la que puedes resultar muerto en Counter Strike es alarmante. Un solo disparo, bien colocado, y eres historia. No hay demasiada opcion para rectificar un error: si te sorprenden eres picadillo. Esa es la definicion de diccionario de realimentacion positiva, aunque podria ser incluso peor. Imaginad que en vez de matar al enemigo, lo pudieras pasar a tu bando con un arma especial. En ese caso, la realimentacion positiva seria aun mayor. Convertir a un terrorista le restaria un integrante a su bando, y aumentaria la potencia de combate de las fuerzas de ley y orden, al mismo tiempo.

Asi que tenemos realimentacion positiva en una partida. Veamos el juego en general. Una mecanica basica de Counter Strike es que cuando mueres pierdes todas tus armas y proteccion. Termina una partida vivo (victorioso o no) y tu shotgun y tu traje de kevlar seguiran ahi, preparados para mas accion. Las armas son, obviamente, importantes, y para comprarlas hace falta una sustancial cantidad de dinero, que hay que reunir laboriosamente, bien ganando rondas o al menos matando enemigos. De nuevo se premia ampliamente a los que han tenido exito y se castiga a los que no. Si yo tengo algo mas de habilidad que tu, lo mas probable es que de media consiga mas dinero, y ademas necesite gastar menos, ya que conservare mis armas. Voila. Realimentacion positiva en accion.

Obviando los tecnicismos, el resultado observable empiricamente en los ciber-cafes es que las partidas de Counter Strike suelen ser rapidas y decantarse para uno u otro bando (exceptuando ese policia que se esconde con el rifle de sniper, y que exaspera a todo el mundo), y ademas uno de los dos bandos suele derrotar al otro con frecuencia. Asi que, si eres un buen jugador de Counter Strike, enhorabuena, podras dar tremendas palizas a los novatos, y raramente te sorprenderan, como suele suceder en algunos juegos de lucha (donde gana habitualmente el que pulsa los botones sin criterio a mayor velocidad).

Claro que si eres novato... Y esta es la parte que mas me sorprende. El atractivo de Counter Strike para los novatos es, por una parte, la ocasional hazaña heroica en la que, contra todo pronostico, mataste de un tiro con la pistola a ese terrorista que habia liquidado a tres compañeros y venia con la ametralladora a todo meter, y por otra, morir y morir repetidamente de formas estramboticas, tras vaciar dos cargadores y dibujar la silueta del adversario sin acertarle un tiro, que de tan vergonzosas resultan inmensamente divertidas.

Por supuesto, tras un cierto numero de veces de encontrarse accidentalmente con balas enemigas, uno empieza a perder su sentido del humor, y hace cosas como escribir posts en un blog. Oh, vaya. Otra partida. Bueno, a jugar otra vez.


Mostrar/ocultar resto...