Archivo de Septiembre 2006

Ron Gilbert, consejos sobre puzzles en aventuras

Viernes, 29 de Septiembre de 2006

Por qué las aventuras gráficas apestan

Y qué podemos hacer para solucionarlo.

©1989, Ron Gilbert

De todas las clases de juegos, los que más disfruto son las aventuras gráficas. No es casualidad que es el género que diseño. Me gustan los juegos donde el ritmo sea lento y la recompensa venga por pensar, más que por tener reflejos rápidos. En mi opinión, lo que hace vivir a una aventura es la historia que teje. Si se hace correctamente, se convierte en una forma de contar historias que va fascinando de una forma que sólo la interacción puede brindar. La clave aquí es �hacerlo bien�, que pocas veces se da.

Una de las cosas que me molesta es la tendencia para llamar a estos juegos "películas interactivas�. Son interactivos, pero no son películas. El hecho que la gente quiera llamarlas películas indica cuán perdidos estamos. Lo que necesitamos hacer es establecer un género que podamos llamar nuestro. Las películas han hecho sus propias referencias, y es eso lo que tiene que pasar con las aventuras gráficas.

El deseo de llamarlas Películas Interactivas viene de distintos lugares. El primero es el marketing. La meta del marketing es encajar todo en una categoría para que pueda ser reconocible.

Esta gente piensa que lo más parecido a las aventuras gráficas son las películas. La otra fuente es lo que llamo "la envidia de Hollywood". La mayoría de la gente involucrada en este negocio quieren secretamente (o no tan secretamente) hacer películas, no desean hacer videojuegos. ¡Déjalo ya! Si de veras quieres hacer películas, entonces ve a una escuela y deja el diseño de juegos a la gente que quiera hacerlos.

Las aventuras gráficas no son películas, pero las dos formas tienen mucho que compartir. No es justo simplemente ignorar las películas. Podemos aprender mucho de ellas en lo que se refiere a contar historias de un modo visual. Sin embargo, es importante descubrir que hay más diferencias que similitudes. Tenemos que descubrir qué tomar prestado y qué descubrir por nosotros mismos.

La mayor diferencia es la interacción. No puedes interactuar con una película. Sólo te sientas en el cine y la miras. En un juego, el jugador tiene la libertad de explorar la historia. Pero el jugador no siempre hace lo que el diseñador pensó, y esto causa problemas. Es difícil crear una trama cohesiva cuando no tienes idea de qué va a hacer el jugador. Este problema requiere una forma especial de contar historias, y es algo que recién comenzamos a delinear.

Hay un estado de la mente llamado �suspensión de incredulidad�. Cuando miras una película, o lees un libro, tu mente cae a ese estado. Sucede que te metes tanto en la historia que ya no recuerdas que estás en un cine o sentado en un sofá. Cuando la historia se hace lenta, o la trama empieza a decaer, esta suspensión se pierde. Pronto empiezas a mirar a tu alrededor, viendo a la gente que tienes enfrente o el cartel verde de salida. La forma en la que juzgo a una película es por la cantidad de veces que me doy cuenta de que estoy en un cine.

Lo mismo sucede con las aventuras gráficas (como también casi todos los juegos). Mientras la historia se teje, más nos involucramos en ella y vamos dejando el mundo real atrás. Como diseñadores, nuestro trabajo es mantener a la gente en este estado por el tiempo que sea posible.

Cada vez que el jugador tiene que recuperar una partida, o golpearse la cabeza contra el escritorio por la frustración, esa suspensión se pierde. Seguramente apagará el PC y se irá a ver la televisión, por lo tanto nada tuvo sentido.

He creado unos principios que minimizan la pérdida de la suspensión de incredulidad. Como todas las reglas, siempre hay excepciones. En mis diseños, siempre espero que si estas reglas no se cumplen, sea por razones artísticas más que por pereza. En Maniac Mansion, en un lugar u otro, rompí alguna o todas las reglas. Algunas fueron rotas por el diseño, otras por pereza. Si pudiera rehacer Maniac Mansion, todas las violaciones serían removidas y sería un juego mejor.

Algunos dicen que seguir estas reglas hace que el juego sea demasiado fácil. Yo digo que no. Lo que hace difícil a algunos juegos son los puzzles arbitrarios y desconectados de todo. La mayoría son resueltos por casualidad o por secuencias repetitivas como "encender la vela con el fósforo", "encender el papel con el fósforo", "encender la alfombra con fósforo" hasta que algo sucede. Esto no es un juego difícil, es masturbación. He jugado a un juego que requería que arroje un papel de chicle en una habitación para poder abrir una trampilla (los nombres de los objetos fueron cambiados para proteger la identidad). ¿Por qué razón? No hay ninguna. Me dijeron que eso es un puzzle avanzado.

Aquí, entonces, están los principios de Gilbert:

El objetivo final debe ser claro

Está muy bien si el objetivo cambia a la mitad del juego, pero en un principio el jugador debe tener una visión clara de lo que quiere conseguir. Nada es más frustrante que vagar preguntándote qué deberías estar haciendo y si lo que haces te está llevando a algún lado. Las situaciones en las que no sabemos qué hacer pueden ser divertidas en algún momento del juego, pero es algo raro y difícil de sobrellevar.

Las misiones tienen que ser obvias

Casi todas las buenas aventuras gráficas están divididas en varias pequeñas misiones. Dejar saber al jugador al menos la primera misión es esencial para conectarlas luego. Si la meta principal es rescatar al príncipe, y el jugador está atrapado en una isla al principio del juego, entonces que haya otro personaje en la historia que le diga al jugador cuál es el primer paso: salir de la isla. Esta es una buena forma de contar una historia. Ben Kenobi presenta el viaje de Luke en los primeros veinte minutos de Star Wars. Esto le permite al público seguir el progreso del personaje principal. Para alguien que no está acostumbrado a romperse la cabeza contra el escritorio, esta simple pista puede significar el completar el juego antes de abandonarlo en la primer hora. Cuando se diseña es muy fácil olvidarse de esto y de no recordar que el jugador no sabe nada de tu historia.

Vive y aprende

Como regla, las aventuras gráficas deberían poder ser jugadas desde el principio al fin sin necesidad de morir o de guardar la partida cada cinco minutos. Es malo poner un puzzle y situaciones en el juego que requieran que el jugador muera para entender qué no tiene que hacer.

Esto no quiere decir que todas las escenas de muerte deberían ser sacadas del juego. El peligro es inherente en el drama, pero debería ser superviviente si el jugador es astuto.

Como ejercicio, toma un camino de la historia y cuéntaselo a alguien más, como si fuera una historia normal. Si descubres lugares donde el personaje pudo no saber cierta información (el jugador que la descubrió ha muerto), entonces tienes un agujero en la trama.

Puzzles inversos

Los puzzles inversos pueden ser lo que más me molesta en una aventura. He creado mi porción de ellos; y como todos los desperfectos en el diseño, es más fácil dejarlos que rediseñarlos. Los puzzles inversos ocurren cuando la solución se encuentra antes del problema. Idealmente, la grieta debería ser encontrada antes que la cuerda para descender. Lo que esto hace en la mente de un jugador es ponerle una meta. Él sabe que necesita descender por la grieta, pero no hay ningún camino. Ahora el jugador tiene un objetivo en la cabeza mientras continúa su búsqueda. Cuando encuentra una cuerda, se le prende una luz y completa un puzzle. Para un jugador, cuando el diseño funciona, no hay nada como esa experiencia.

Me olvidé de recogerlo

En realidad esto es parte de los puzzles inversos, pero de una forma peor. Nunca pidas que un jugador recoja algo para usarlo más adelante si no puede volver a atrás. Es muy frustrante descubrir que un objeto aparentemente pequeño sea necesario, y que la única forma de recogerlo es empezar el juego nuevamente. Desde el punto de vista del jugador, no hay razón para recogerlo en primer lugar. Algunos diseñadores defienden esta práctica diciendo "los aventureros tienen que recoger todo�. Esta es una forma de evitar el problema. Si la jarra de agua necesita ser usada en una nave espacial, y sólo puede encontrarse en la tierra, entonces inventa un uso en el planeta que asegure que el jugador la tomará. Si el tiempo entre esas dos cosas es lo suficientemente largo, entonces es seguro que el jugador incluso olvidará que lo tenía con él.

La otra solución para este problema es dar pequeñas pistas al jugador para que la recoja. Si hay extraterrestres en el planeta que sugieren que busquemos agua antes de subir a la nave, y esta sugerencia es ignorada, entonces la culpa es del jugador.

Los puzzles deben avanzar la historia

No hay nada más frustrante que resolver puzzles sin sentido. Cada puzzle resuelto debería acercar al jugador al conocimiento de la historia y del juego. Debería ser claro cómo resolver este puzzle acerca al jugador a la meta final. Qué pérdida de tiempo para el jugador y el diseñador si los puzzles detienen la marcha del juego.

El tiempo real es algo malo

Uno de los puntos más importantes en el drama es el tiempo. Todos los que hayan diseñado un juego saben que el jugador raramente hace las cosas en el momento preciso, en el orden correcto. Si dejamos que el juego corra de forma independiente a las acciones del jugador, es seguro que pasarán varias cosas algo dramáticas con el tiempo. Cuando Indiana Jones rodó por debajo de la puerta de piedra y agarró el sombrero justo a tiempo, la audiencia gritó y se emocionó. Si esa escena hubiese sido hecha en una aventura, el jugador habría muerto las primeras cuatro veces que intentó pasar por la puerta, y las siguientes seis veces se le hace muy tarde para tomar el sombrero. ¿Esto es buen drama? No lo parece. La clave está en usar el tiempo de Hollywood, no el tiempo real. Dale al jugador una oportunidad cuando hagas un puzzle de tiempo. Intenta buscar determinación. Si el jugador está trabajando en la solución y ya casi la tiene, espera. Espera hasta que tome el sombrero, y luego cierra la puerta. El jugador pensará "lo logré" y por lo tanto será mucho mejor y dará esa emoción que se busca. Cuando diseño un puzzle de tiempo, me gusta dividir el tiempo en tres categorías. El 10% de los jugadores hará el puzzle tan rápido que quedará tiempo para gastar. Al otro 10% le tomará mucho tiempo y fallará, lo que deja un 80% de personas que llegarán justo a tiempo.

Recompensa creciente

El jugador necesita saber que está logrando algo. La manera más rápida para aburrir a un jugador es dejar que la trama se vuelva floja y que no avance. Esto cuenta especialmente para las personas que juegan a una aventura gráfica por primera vez. En estos juegos, las recompensas vienen a través de descubrir nuevas áreas del juego. Nuevos gráficos y personajes son básicamente lo único que se necesita para mantener a un jugador entretenido. Por supuesto, si intentamos contar una historia, revelar nuevos elementos de la trama es lo mismo, o más.

Puzzles arbitrarios

Los puzzles y sus soluciones deben tener sentido. No tienen que ser obvios, simplemente tener sentido. La mejor reacción luego de resolver un puzzle debería ser "¡Claro! ¿Cómo no se me ocurrió antes?" La peor, y la más frecuente luego de ver la solución es "nunca hubiera imaginado eso". Si la solución sólo puede ser alcanzada a través de pruebas y errores o suerte, es un mal puzzle.

Eventos no conectados

A veces ciertos juegos cierran algunas secciones hasta que algún evento suceda. No hay nada malo en esto, a veces es una necesidad. El problema viene cuando el evento que abre esa nueva sección del mundo está desconectado. Si el diseñador quiere asegurarse que seis objetos sean recogidos antes de abrir una puerta, debe asegurarse de que hay una razón para que estos objetos afecten a la puerta. Si el jugador tomó seis objetos y está esperando a que la puerta se abra (o peor, intentando descubrir una forma de abrirla), el acto de recoger una linterna no tendrá sentido en relación a la puerta.

Dale opciones al jugador

Muchos juegos utilizan la técnica que puede ser mejor descripta como enjaular al jugador. Esto ocurre cuando el jugador tiene que resolver pequeños puzzles para avanzar a la siguiente sección del juego, que a su vez está presentada con otros pequeños puzzles. Una vez que estos puzzles son resueltos, en una serie de cajas interminables, el jugador entra a esta próxima zona con más puzzles. Esto puede ser muy frustrante si el jugador no puede resolver un puzzle en especial. Las áreas para explorar tienden a ser pequeñas, así que la única actividad es caminar hasta encontrar la solución.

Intenta ver estos puzzles como una caja en donde el jugador está atrapado, y la única manera de salir es encontrar la llave. Una vez que se encuentra la llave, el jugador se encuentra en otra caja más grande. La mejor manera de diseñar esto es imaginar al jugador fuera de las cajas, y los puzzles contenidos dentro de ellas. En este modelo, el jugador tiene más opciones sobre qué hacer. Puede seleccionar una de entre muchas cajas para abrir. Si la solución a una no se encuentra, puede elegir otra, y así se incrementa la actividad útil.

Por supuesto, querrás algunos puzzles que cierren ciertas áreas del juego, pero esas áreas deberían ser grandes e interesantes. Un buen indicador del síndrome de las cajas es ver cuán lineal es el juego. Si la trama sigue una línea muy recta, es muy probable que el diseñador esté encerrando al jugador en el camino. No es fácil desenjaular un juego, requiere atención a la trama vista desde el punto de vista del jugador. La mejor manera es crear diferente interacción para una misma situación, dependiendo del orden encontrado.

Conclusión

Si pudiera cambiar al mundo, habría algunas cosas que cambiaría, y francamente ninguna tiene que ver con los juegos o las computadoras. Pero ya que este artículo es sobre juegos…

Lo primero que haría es deshacerme de las partidas guardadas. Si tendría que haberlas, sólo servirían para cuando queremos salir del juego y continuarlo mañana. Las partidas guardadas no deberían ser parte del juego. Esto lleva a un diseño desaliñado. Como objetivo, piensa cómo diseñarías un juego sin partidas guardadas. Si tienes el placer de ver a una persona que no juega videojuegos jugar una aventura, notarás que intentan salvar la partida de una forma diferente al jugador avanzado. Algunos las usan como mecanismo de defensa frente a los golpes que les da el juego, el resto simplemente deja de jugar.

Lo segundo que cambiaría sería el precio. Por cuarenta o cincuenta dólares, la gente espera jugar mucho por el dinero que gastó. Esto casi siempre lleva a que los juegos agreguen puzzles sin sentido y laberintos. Si el diseñador cree que el juego es muy corto, arroja un puzzle o dos. Y siempre terminan siendo los menos cuidados y los más difíciles para resolver. Yo haría juegos que pudieran ser jugados en cuatro o cinco horas. El juego sería lo mismo que yo diseñé, simplemente removería los puzzles sin sentido y llevaría al jugador a un intenso viaje. La experiencia con la que terminarán será más entretenida y menos frustrante. Los juegos seguirían siendo desafiantes, pero sin jugar con la paciencia del jugador.

Si algún juego va a hacer un puente entre los juegos y el contar historias, seguramente serán las aventuras gráficas. Tendrán menos puzzles pero más historias, será el diseño con el que se hará el futuro. Lo que no podemos olvidar es que estamos aquí para entretener, y para la mayoría de la gente, el entretenimiento no consiste en noches y fines de semana llenas de frustración. El americano promedio pasa casi todo el día fallando en la oficina, lo último que quiere es llegar a su casa y fallar al intentar estar relajado y ser entretenido.

Mejorar enlaces con CSS

Jueves, 28 de Septiembre de 2006

Los selectores de CSS permiten aplicar un estilo en concreto a nuestras etiquetas basandose en el contenido de sus atributos. Así, podemos aplicar un estilo distinto a nuestros enlaces (etiqueta anchor A) en función del contenido de su atributo href.
Por ejemplo, con este ejemplo (sacado de anieto2k) obtenemos lo siguiente:

- Añadir una imagen external.gif a los enlaces externos (los que empiezan por http)
- Añadir una imagen email.gif a los enlaces a correos electrónicos (los que empiezan por mailto)
- Añadir una imagen en concreto en función de la extensión del recurso al que enlazamos. En este último caso, los archivos que acaban en .pdf tienen la imagen acrobat.gif

a[href^=”http:”] {
    background: url(external.gif) no-repeat right top;
    padding-right: 10px;
}
a[href^=”mailto:”] {
    background: url(email.gif) no-repeat right top;
    padding-right: 10px;
}
a[href$=”.pdf”] {
    background: url(acrobat.gif) no-repeat right top;
    padding-right: 10px;
}

A todos los estilos se les añade un padding a la derecha de 10 para que el texto no se solape con la imagen de fondo.

Bansky, otra vez

Jueves, 28 de Septiembre de 2006

Esta vez ha colado un muñeco disfrazado con las ropas de los presos de Guantanamo en una atracción de Disneyland en California.

bankdis3.jpg

Noticia original, vía Pixel y dixel

Eliminar espacios en Javascript

Jueves, 21 de Septiembre de 2006

A veces nos puede hacer falta saber el contenido de una cadena en Javascript sin los espacios del principio y del final. Por ejemplo, es común hacer la siguiente validacion de un campo de un formulario para saber si esta vacío:

function valida() {
    if (document.forms['f'].campo.value == "") {
         alert('Campo vacio');
    }
}

O algún mañoso habrá intentado:

function valida() {
    if (document.forms['f'].campo.length == 0) {
         alert('Campo vacio');
    }
}

Estos dos sistemas funcionan, pero solo aparentemente. El usuario puede engañarte y meter un espacio, dejando el campo en blanco, pero que ocupa una posición (o más) y no es exactamente la cadena vacía (”") con la que comparamos.
Podemos intentar algunos trucos para eliminar los espacios, pero buscando por internet, he encontrado el método más eficaz.

String.prototype.trim = function() { return this.replace(/^s+|s+$/g, ""); };

Con esta línea, estamos declarando una función llamada trim() en la clase String. Es decir, que en cualquier cadena de texto podemos llamar al método trim() para que nos devuelva el contenido sin espacios por delante ni por detrás. La sustitución se hace con una expresión regular. Más elegante y sencillo imposible.
Ahora nuestra podemos completar nuestra validación como sigue:

String.prototype.trim = function() { return this.replace(/^s+|s+$/g, ""); };
function valida() {
    if (document.forms['f'].campo.trim().length == 0) {
         alert('Campo vacio');
    }
}

Y aunque inserten espacios en blanco, funcionará.
De todas formas, siempre es más comodo utilizar alguna librería en Javascript de validación de formularios, además de volver a validar los parámetros en el servidor.

Un test de la función:

String.prototype.trim = function() { return this.replace(/^s+|s+$/g, ""); };
var str = "   esto es una prueba   ";
alert("Cadena original: '" + str + "'");
alert("Sin espacios: '" + str.trim() + "'");

La función la he cogido de este post en Bigbold. Fijaos bien en los comentarios porque el primer método propuesto no funciona correctamente, he cogido el del primer comentarista. Ese es el que funciona y el que os acabo de poner aquí.

Iniciar Windows sin introducir login/password

Lunes, 18 de Septiembre de 2006

Vía Tecno Chica obtenemos el siguiente truco de Windows XP.
Está indicado para las personas u hogares donde el ordenador solo lo utiliza una persona. O varias personas pero con la misma cuenta. En esos casos, puede resultar molesto tener que introducir en cada arranque el login y password.
Al instalar Windows por primera vez, el instalador nos pregunta si deseamos entrar automáticamente con un usuario. Si en ese momento no lo hicimos, podemos utilizar el siguiente truco.

Para iniciar Windows XP automáticamente sin introducir login y password:

  • Abriremos el cuadro de diálogo de Ejecutar, que encontraremos en el menú de Inicio.
  • Teclearemos: control userpasswords2 (si, tal cual está escrito).
  • Se nos abrirá un cuadro de diálogo.
  • Acabamos de abrir la herramienta de control de usuarios más potente que existe en XP, desde donde podremos acceder incluso a la consola de configuración de usuarios y grupos, así como administrar fácilmente y de una forma más potente los usuarios de nuestro sistema y las contraseñas de red, que con la herramienta de administración de usuarios que encontramos en el Panel de Control. De todas formas vamos a lo que nos interesa, hacer que XP se inicie automáticamente sin introducir login y password.
  • Debemos fijarnos en la casilla de verificación (check box) cuya descripción es “Los usuarios deben escribir su nombre de usuario y contraseña para usar el equipo” la cual debemos desmarcar y darle a Aceptar, a continuación nos aparecerá otro cuadro de diálogo.
  • Este cuadro de diálogo es el que nos pregunta con que usuario queremos que se inicie XP automáticamente, para ello introduciremos los datos que nos pide y clickearemos en Aceptar.
  • La próxima vez que iniciemos Windows XP automáticamente hará login con el usuario que hemos especificado, pudiendo cambiar de usuario cuando queramos.

Espero que os sea de utilidad. A mi personalmente me ha gustado el administrador de usuarios que tiene Windows XP escondido y que se arranca con “control userpasswords2″. ¡Mola!

Los foros técnicos

Lunes, 11 de Septiembre de 2006

¿Qué es lo que hace todo informático que se precie antes de comprar algo, sea lo que sea? Efectivamente, se lee 300 páginas web sobre el tema, especialmente foros donde gurús sobre el tema nos enseñan todos los secretos. Lo que interesa es encontrar un sitio o varios en los que se hable a “nivel pro”. Uno distingue algo “pro” cuando:

- De entrada no conocemos casi ninguna marca o modelo
- Se echan pestes de lo que más se vende o es más popular y sería nuestra primera opción si no hubiéramos leído esa web/foro (veis por eso hay que investigar!)
- En general todo es caro, y de lo que más se habla es lo más caro aunque en principio todo el mundo admite que solo un 0.1% de la gente que lo use sería capaz de notar la diferencia
- La web o foro tiene un diseño ultracutre, que parece sacado de 1993. Esto es opcional pero da puntos

Sigue leyendo a Pablo Varasa

La última de Bansky

Miércoles, 6 de Septiembre de 2006

paris_hilton_bansky.jpg
Bansky se lo ha currado otra vez. Ha sustituido 500 copias del nuevo disco de Paris Hilton en 42 tiendas del Reino Unido por una edición suya personalizada, con fotos retocadas en las que sale semi desnuda.

Las nuevas canciones remezcladas tienen nombres como “Why am I famous” (por qué soy famosa), “What have I done” (qué he hecho) y “What am I for” (para qué sirvo).

paris2.jpg

La gente ha comprado pensando que era el original y se ha encontrado con esto. Incluso el código de barras era el mismo, para que al pasar por caja diera como válido. Ahora las copias se cotizan muy altas en e-bay. Arte moderno por el precio de un CD. Bansky de nuevo.


Montilla responde

Miércoles, 6 de Septiembre de 2006

A raiz del post de ayer han surgido muchas dudas sobre esta nueva ley.
Desde Las Penas del Agente Smith nos traen una instantánea del ministro Montilla durante una entrevista concedida en exclusiva.

montilla.jpg

Fuera de bromas, no me parece tan descabellada la similitud. No tendría sentido bloquear ciertas páginas, estilo china. Sin embargo, el poder de la SGAE si parece llegar hasta el punto de presionar tanto al gobierno como para crear leyes tan poderosas como ambiguas que permitan bloquear las redes P2P. A ver qué pasa.

58 antivirus contra 150000 virus

Martes, 5 de Septiembre de 2006

Aunque este listado no es determinante de la calidad de un antivirus, creo que hay que tenerlo en cuenta.
Se han analizado 150.000 virus (que se dice pronto, pero son muchos virus juntos) con una gran cantidad de Antivirus y han publicado el resultado de aciertos en una lista.

Los 10 primeros los copio y pego aqui.
Podéis ver la lista entera y datos del test aquí.

1. Kaspersky version 6.0.0.303 - 99.62%

2. Active Virus Shield by AOL version 6.0.0.299 - 99.62%

3. F-Secure 2006 version 6.12.90 - 96.86%

4. BitDefender Professional version 9 - 96.63%

5. CyberScrub version 1.0 - 95.98%

6. eScan version 8.0.671.1 - 95.82%

7. BitDefender freeware version 8.0.202 - 95.57%

8. BullGuard version 6.1 - 95.57%

9. AntiVir Premium version 7.01.01.02 - 95.45%

10. Nod32 version 2.51.30 - 95.14%

Vía kriptopolis

Ahora la censura se llama “impulso”

Martes, 5 de Septiembre de 2006

Leo en CNN plus la noticia: Internet: España podrá cerrar el acceso a contenidos internacionales

El Gobierno podrá impedir el acceso desde España a servicios o contenidos internacionales cuya interrupción o retirada haya decidido un órgano competente, cuando se apruebe la nueva Ley para el Impulso de la Sociedad de la Información, ha dicho este lunes el ministro de Industria, José Montilla.

Sin comentarios. Voy a buscar más noticias sobre esto porque me parece increible.

Vía Mangas Verdes