Lecciones gratuitas de GameDevLessons.com, por Chris DeLeon

Vol 6 - 10 de Septiembre, 2009


¡Hola!


Soy Chris DeLeon (acerca de mi), y gracias por acompañarme en mi boletín mensual de desarrollo de videojuegos, vol. 6. Estos boletines son una de las formas en las que espero ayudar a empezar a nuevos desarrolladores, mientras ayudo a los que ya están en ello a llevar su trabajo en nuevas direcciones.



I.) Ediciones anteriores, suscripción

II.) Principiante - Los caminos del autodidacta

Puedes aprender por ti mismo

Hay un proceso para ello

Libros

Sitios web

Documentación de lenguajes de programación/API

Foros/compañeros

Librerías de código

Ejemplos de código

Practica

Tus archivos de proyectos anteriores


III.) Nivel medio - Definiendo al diseñador de videojuegos

Habilidades sociales

Es muy raro que repita puesto

No sólo ajustes

No sólo diseño de niveles

Inventando una disciplina para cada juego

Ejemplo simple

Conexión con juegos más grandes

Las franquicias caracterízan la innovación


IV.) Avanzado - Tipos de dificultad

¿Por qué hablar de la dificultad?

¿Tipos de dificultad?

La importancia de los juegos difíciles

Fuentes de dificultad no ajustable

¿Qué es justo?

Nota especial acerca de la dificultad inicial


V.) Ponte en acción - No seas un burro

Te presento al burro

Demasiadas ideas, insuficiente acción

Como diferenciar las malas de las buenas

Como saber como diferencir las malas de las buenas

Lo más rápido y lo más fácil - Porque las primeras ideas siempre son las más pobres

Sobreproducción

Solución


VI.) Donaciones


VII.) El próximo boletín

Edición especial - Una entrevista con Warren Robinett




I.) Ediciones anteriores, suscripción


Para leer ediciones anteriores, o suscribirte: http://gamedevlessons.com/?page=free (Cada boletín está en inglés, con un enlace a la traducción al español, si está disponible)


Si encuentras este enlace en algún otro lugar que no sea tu correo electrónico, y te gustaría que te informara cuando salgan las nuevas ediciones, únete a mi lista de correo (libre de spam). Sólo te llevará un minuto, nunca te enviaré más de un correo al mes (sólo para anunciar estos boletines), y si cambias de opinión puedes darte de baja en cualquier momento.


Los boletines no pretenden ser acumulativos - así que no tendrías por qué leer las ediciones anteriores para entender este - pero los diferentes temas tratados en cada uno pueden serte de ayuda. En particular, si eres un recien llegado a mis boletines, recomiendo Boletín Vol. 1 por su introducción a la programación de una forma no técnica, así como por sus enlaces a recursos gratuitos para editar imágenes, audio, modelar en 3D, y otros recursos necesarios en el desarrollo de videojuegos.


II.) Principiante - Los caminos del autodidacta


Puedes aprender por ti mismo


Puedes aprender por ti mismo la mayoría de las habilidades que necesitas para hacer juegos.

...dice el tio que dedica con devoción la mayor parte de su tiempo libre enseñando a hacer videojuegos.

Lo que más me gusta hacer es ayudar a la gente que ya sabe como hacer videojuegos a aprender a hacerlos mejor. Los proyectos específicos y consejos en diseño de juegos que ofrezco no son de mucha utilidad a no ser que ya puedas hacer videojuegos, y una gran parte de eso es el saber como programar. Al compartir materiales e información gratuita para ayudarte a aprender por ti mismo, estoy aumentando el número potencial de desarrolladores con los que puedo trabajar en los desafios que me resultan más interesantes.

Hay un proceso para ello


En una reciente tira cómica de xkcd (N. del T. en inglés) hace un estupendo trabajo al resumir de forma muy concreta el "conocimiento informático".

Ser bueno con los ordenadores no significa saberlo todo. Es el saber como buscar o averiguar lo que no sabes. De forma similar, aprender por ti mismo como hacer videojuegos es, con mucho, un tema relativo a saber que recursos tienes disponibles, y como utilizarlos de la mejor forma para acelerar tu progreso.

Hay unos cuantos recursos, aparte de Google, a considerar en este caso. Los principales recursos que tienes disponibles para tu aprendizaje autodidacta son Libros, Sitios web, Documentación de lenguajes/API, Foros/compañeros, Librerías de código, Código de ejemplo, y tus propios proyectos anteriores.

Libros


Hay libros sobre cualquier tema, para cualquier especialidad.

Aquí hay algunos
libros electrónicos gratuitos sobre lenguajes de programación (N. del T. en inglés, aunque ya os proporciono la traducción de google, que también se aplica a los libros en línea, no descargables. En español no hay tanta oferta, puedes probar en http://www.galeon.com/neoprogramadores/booksprg.htm).

A pesar de que están disponibles en internet de forma gratuita, igualmente recomiendo salir a comprar uno real. O buscar uno en la biblioteca.

Depender desde el principio de demasiados recursos digitales crea hábitos descuidados que evitan aprender mejor, como copiar y pegar código en vez de habituarse a escribirlo. Leer una pantalla de ordenador también cansa más, sobretodo si acabas haciéndolo por la noche antes de irte a la cama. Los recursos digitales son increibles para buscar información - se pueden realizar búsquedas en ellos sin problemas y al instante - pero comparados con el papel aun no son lo suficientemente buenos para el tipo de exposición prolongada que se necesita para desarrollar un riguroso entendimiento de las habilidades fundamentales.

El coste puede ser un factor, ya que los libros buenos en estos temas pueden estar con facilidad en el rango de los 50€-100€, pero es importante pensar que (a.) el coste por hora es bastante bajo, (b.) el coste total es ridículo en comparación a pagar por clases, y (c.) es imposible estimar el valor de la expresión "Este contenido, editado profesionalmente, fue el que me permitió aprender esto" (yo mismo he podido decir esta última frase con unos cuantos libros con los que crecí).

(Llamadme antiguo, pero una copia impresa de Alicia en el país de las maravillas es infinítamente más fácil de leer que una versión en PDF, sin importar lo bien formateada que pueda estar (N. del T. libro en inglés).

Sitios web


Los sitios web son recursos increibles para dar respuesta a preguntas específicas, y encontrar enlaces a otros recursos útiles como ejemplos de código. Tal y como se explica arriba, creo que son inferiores a la hora de cubrir conceptos básicos (ver las notas antes de la sección de libros).

Documentación de lenguajes de programación/API


APIs, o "Application Programming Interfaces" (interfaz de programación de aplicaciones), son enormes directorios de múltiples ramas con información indicando las funcionalidades y formas de uso de un lenguaje de programación. Los lenguajes más modernos que el C/C++, especialmente los lenguajes de programación que se usan en el contenido online, tienen extensas APIs, como
Java API (no recomiendo usar Java para programar juegos, pero su API es clásica) y aquí está el API para ActionScript 3 (ActionScript 3 es el 1º lenguaje que recomiendo para hacer juegos para la web).

Hay ahí más información de la que una persona sería capaz de leer en su vida, y un buen 95% probablemente no es para nada relevante para lo que necesitas a la hora de hacer un videojuego. Estas referencias son útiles para tenerlas a mano, y pueden ser determinantes para aclarar algunos detalles acerca de que puedes esperar en términos de control de errores y casos límite. Pero una vez más, los recursos digitales son sólo una buena forma de buscar respuestas específicas a problemas que te encuentres, o para encontrar otros recursos.

Pero aprender a programar empezando con el API sería como aprender escritura creativa en un lenguaje extranjero usando su diccionario.

Foros/compañeros


Igual que cuando vas a clases, si tienes una pregunta, es muy probable que otros en tu aula, aprendiendo lo mismo que tu, también tengan esa misma pregunta.

Al contrario que en las clases, en este caso el "aula virtual" tiene cientos de miles de personas, y hay un registro detallado de cada pregunta que se ha hecho en la última década o incluso antes.

Si estás atascado en algo - y sé que parece obvio, pero haría mal si no lo repitiera - haz una búsqueda en internet o recorre un foro web relativo al tema para encontrar una respuesta. Si no puedes encontrar nada, entonces sigue con la analogía de las clases - haz un favor a cientos de miles de personas en la siguiente década hablando del tema en foros en alguna web donde otros como tu encontrarán la respuesta.

Librerías de código


En programación, una librería es un conjunto de códigos empaquetados que alguien escribió para manejar funcionalidad específica. Esto podría incluir operaciones de red, mostrar texto, reproducir sonidos, manipular/cargar/mostrar imágenes, simulación física, etc.

Una buena librería de programación puede ocuparse de asuntos sobre los que no tengas ni la más remota idea, de una forma que será (a.) rápido (b.) fácil (c.) y te hace dependiente de esa librería, ya que te deja sin pistas acerca de como resolver algo sin usarla. Si tu objetivo es aprender sobre algo en particular, como programación gráfica o código de red, el punto (c) puede ser un problema. En muchos casos, una librería se usará para hacer algo que gente muy inteligente ha solucionado tras décadas de investigación y perfeccionamiento. En ese caso, esa librería te ahorrará literalmente años de frustración, y te dejará por tanto centrarte en lo que haces con los gráficos, con la red y con la física para hacer que tu juego destaque del resto.

Código ejemplo


¡Premio!

Encontrar buenos ejemplos de código fuente puede ser la diferencia entre "disparar a ciegas" acerca de como se montan las cosas, y trabajar con confianza en que lo que estás iniciando funcionará. También es realmente valioso al principio porque empezar con código que sabes que funcionará te ayudará a determinar si tu entorno de desarrollo está bien instalado y configurado - si falla con código ejemplo que venga de una fuente fiable, sabrás que tu proyecto, entorno o compilador no está bien configurado. Es una forma mejor que romperte la cabeza cambiando cosas en tu código preguntándote porqué no funciona.

Encuentra código de ejemplo. Lee código de ejemplo. Compila código de ejemplo. Teclea código de ejemplo. Modifica código de ejemplo. Intenta comentar varias líneas del codigo de ejemplo para ver como afecta y que ocurre. Añade comentarios a código de ejemplo.

Busca código de ejemplo que sea apropiado para tu nivel de comprensión. Si no es muy largo y no lo entiendes del todo aún, verifica que compila en tu entorno e imprímelo para tener junto a tu material de aprendizaje para revisar de vez en cuando.

Practica


Los buenos programadores son muchísimo más rápidos y más eficientes que los menos buenos.

Cuando decimos "bueno" nos referimos al total de años de experiencia, cuantos lenguajes de programación se sabe, o en cuantos proyectos se ha estado involucrado. "Bueno" se refiere a lo rápido que uno puede sintetizar el código necesario para resolver un problema, lo bien que alguien puede generar código que esté estructurado y con la mente puesta en futuras necesidades/legibilidad/adaptación, y lo fácil que una persona puede digerir e interpretar código de otros.

Algunos se manejan de forma fluida en programación como en su lenguaje materno. Otros lo usan como si fuera un lenguaje secundario que recuerdan vagamente de cuando lo aprendieron hace muchos años en la escuela/instituto.

Yo asocio esa diferencia a la comodidad obtenida después de incontables horas de práctica. El tipo de uso que va más alla de cumplir con los desarrollos que alguien te pide. El tipo de experiencia que se obtiene al investigar o aplicar conocimientos para resolver problemas, o crear un proyecto en el que el programador está involucrado personalmente.

En un extremo del espectro, está la forma en la que alguien con cero conocimientos en programación, pero acceso a internet, puede reunir código que no entiende para hacer que algo ocurra. En el otro extremo del espectro, hay alguien que se ocupará de cualquier problema que se le ponga delante, quizás empleando ocasionalmente un tiempo para documentarse o copiar algo de su basta librería de archivos en proyectos pasados.

Reitero esta distinción por una importante razón:

1.) Te interesará, positivamente, indudablemente, estar en el segundo grupo. Querrás ser el tipo de persona que domina sus cosas.

2.) No hay duda, ninguna de hecho, acerca de como puedes terminar o no en ese grupo, en vez de en el primero: práctica.

Tus archivos de proyectos anteriores


Tus archivos de proyectos anteriores son como código de ejemplo. La diferencia principal es que entiendes todo lo que tiene. Porque eres responsable de los porqués y cómos, y sabes exactamente donde encontrar cada cosa.

Durante tiempo y tiempo, mi montaña de código de proyectos anteriores ha sído la fuente de mi confianza al afrontar nuevos proyectos. Dado que he hecho algo igual en un proyecto anterior, o algo parecido, no hay duda en mi mente de que sé como hacerlo, y probablemente puedo hacer que funcione de nuevo sin perder mucho tiempo. En vez de gastar tiempo de desarrollo pensando como hacer algo, puedo partir de mi anterior solución, y emplear ese tiempo buscando una forma de mejorarlo.

La única forma de conseguir esa montaña de código de proyectos anteriores es (y aquí viene de nuevo) práctica. Con tu propio tiempo.

Si se hace en el tiempo para cumplir con un trabajo de clase, no será muy diferente del tiempo u objetivos que ha tenido cualquier otro programador durante su aprendizaje académico.

Si se hace en el tiempo para cumplir con objetivos comerciales, es seguramente con código que será propiedad de la empresa y no serás libre de reusarlo.

Practica.

Con tu propio tiempo.


III.) Nivel medio - Definiendo al diseñador de videojuegos


Habilidades sociales


En las grandes compañías, donde podemos encontrar un alto grado de especialización en cualquier área, hay una pregunta resonando por todas partes, por parte de artistas, programadores, empresarios, expertos en audio y similar: "¿Qué hace realmente un diseñador de juegos?"

La respuesta implícita es "nada". No dibujan las imágenes, no codifican la funcionalidad del juego, no negocian la financiación, y no hacen efectos de sonido.

La falta de claridad acerca de lo que hace un diseñador de juegos puede ser un gran problema para alguien que esté haciendo un proyecto en solitario - es muy posible que uno se involucre tanto creando imágenes, código, y sonidos como para darse cuenta de las consideraciones de diseño.

Para la gente de fuera de nuestra industria e intereses, cuando oyen "diseñador" piensan "diseñador gráfico", como el tipo de persona con amplios conocimientos sobre tipos de letra y experto en hacer folletos. Los diseñadores de juegos no suelen entrar en ese tipo de diseño.

Tanto si tienes experiencia en diseño de juegos como si no, tanto si te es familiar el significado del rol como si no, os animo a seguir leyendo. Mi punto de vista acerca del rol puede ser complementario a lo que ya sabes, o quizás ayudarte a explicarlo a otros.

Es muy raro que repita puesto


Tanto los diseños empleados en Solar SFUN, Topple, iZombie Death March (las docenas de juegos independientes gratuitos que he hecho antes) como por mis contribuciones a los títulos de EA Medal of Honor Airborne y Boom Blox, todos se componen de diferentes tipos de ideas, trabajos y resultados. Si nos centrásemos estrictamente en juegos de puzzle, juegos de deporte, o juegos de disparos en primera persona, podríamos presentar una lista más exacta de lo que significa el diseño de videojuegos para esos géneros - ¿pero como es posible que diferentes trabajos en diferentes tipos de juegos quepan bajo el mismo paraguas de "diseño de videojuegos"?

No sólo ajustes


La parte más visible del trabajo de un diseñador de videojuegos es el ajuste y balance. Consiste en modificaciones en valores: para la altura de los saltos, velocidad del movimiento, tiempo de recarga, grado de atención de los enemigos, probabilidad de aparición de las piezas en un puzzle, coste de mejora de personaje, y otros números que afectan a la jugabilidad. Si se configura incorrectamente, los valores pueden hacer que un buen juego sea lento, frustrante, injusto, aburrido, o demasiado simple.

Los números suelen escogerse por una combinación de suposición educada (establecer valores iniciales por convención o asuntos estéticos), ajustes amplios y brutos sobre importantes variables (salud del jugador, coste de unidad en un ejército basada en otro tipo de unidad, otros factores que afectan por completo a todo el juego/nivel), y por último pequeños ajustes a través de varias iteraciones en un conjunto escogido de números hasta que las cosas encajen bien.

He visto a desarrolladores de complejos juegos de estrategia usar hojas de cálculo y modelos lineales para aproximar el balance entre ejércitos - y he hecho algo parecido cuando desarrollé
TriChromic.

Mientras las hojas de cálculo pueden generar valores iniciales con eficiencia, no sustituyen la iteración dentro del juego. En un juego con cualquier elemento en tiempo real, el cuanto tardan las unidades en rotar, apuntar y reproducir animaciones puede ser un factor, igual que la forma en la que un artista modela/anima una unidad cuando toma varias acciones (dependiendo de como se maneja la detección de colisiones). Incluso en un juego de estrategia por turnos, donde estos factores están igualados, es difícil para una hoja de cálculo tener en cuenta las complejas dinámicas que varios grupos de unidades pueden desarrollar en proximidad y en distintos escenarios.

La parte que diferencia a un diseñador de la jugabilidad de ser simplemente testeadores con acceso a los archivos de datos: determinar que valores son los que deben ser ajustados. El diseñador de videojuegos también tiene que considerar soluciones a problemas que pueden involucrar cambios fundamentales en la funcionalidad. Por ejemplo, si el problema identificado es que el jugador puede morir muy rápido por ataque enemigo, en vez de incrementar la salud del jugador o decrementar el daño enemigo, la solución del diseñador puede ser añadir un breve tiempo de invulnerabilidad para que el jugador se recupere, destacando que esta solución da lugar a momentos excitantes ya que el jugador puede ser más rudo cuando se enfrente a grupos de atacantes. (Nuevas variables para ajustar, introducidas por esa característica: ¿cuanto tiempo debería durar la invulnerabilidad?)

No sólo diseño de niveles


El otro aspecto claramente visible de lo que hace un diseñador de videojuegos es en la forma de arquitectura de niveles y colocación de objetos/enemigos. Hay más en el diseño de niveles que configurar emboscadas, construir circuitos de obstáculos, y colocar decoraciones modeladas por los artistas. En alguos juegos - sobretodo juegos de puzzles o juegos de acción procedurales - el diseño de niveles consiste en algo completamente distinto: manejar probabilidades.

(Para dos ejemplos de juegos de acción procedurales, mira mis viejos juegos gratuitos
Burn 2 - mira el archivo Burn 2 Readme.txt para los controles - o Battleship 88. Estos juegos llevan "diseño de niveles", aunque no hay niveles prediseñados en ninguno de los dos. Los niveles están generados aleatoriamente usando un rango de posibilidades premeditadas.)

Para juegos en géneros menos establecidos, o para juegos que desafían convenciones establecidas, hay una pregunta más grande acerca de qué se califica como éxito en un nivel, que tipo de estructuras son navegables en un nivel y lo similar que debe ser el jugar un nivel de una vez a otra.

De la misma forma que un músico que pone 20 canciones en un album no está tan interesado en qué canciones están ahí, como en el orden en el que van y como esa composición afecta a la experiencia de un oyente cuando lo escucha por primera vez, los diseñadores de juegos no pueden pensar sólo en diseño de niveles aislados. Deben considerar como el orden y la variedad puede afectar el ritmo, la historia, y las necesidades de contenido para desarrollar por el equipo.

Aquí tienes más información gratuita sobre diseño de niveles (en el Vol 5).

Inventando una disciplina para cada juego


No es una coincidencia que muchos diseñadores de videojuegos versátiles (no confundir con gente identificada especialmente como "diseñadores de niveles" o con habilidades limitadas a un género concreto) expresen un interés en filosofía. No se trata de filosofía en el sentido de lo que los Idealistas Alemanes dicen acerca de los antiguos Griegos, si no filosofía en el sentido de metacognición - pensar críticamente acerca del pensamiento crítico, y planear acerca de la planificación, es decir pensar en como un jugador puede pensar acerca de la forma de resolver (o de disfrutar) un nivel/puzzle/objetivo.

Los diseñadores de videojuegos disfrutan cambiando entre incontables posibilidades en la búsqueda de patrones válidos, para crear términos y etiquetar y categorizar. Como una broma filosófica evolucionada en los campos de bilogía, física, químina, ciencia computacional, leyes, medicina y matemáticas, una mayor parte del diseño de videojuegos es inventar una disciplina mientras se hace contenido para el proyecto actual. A menudo son estudios rápidos, impacientes por profundizar en nueva información, aplicarla, y luego olvidarla rapidamente para llenar sus cabezas con nuevos sistemas. (Compara esto con el aprendizaje acumulativo de especialistas en disciplinas más consistentes como programación, negocios, o arte digital aplicado).

¿Cuales son los términos y conceptos relevantes necesarios para discutir y dar forma a la dirección del juego? ¿Qué decisiones afectarán las opciones de futuras decisiones, y en qué orden se pueden tomar las decisiones para minimizar tirar por la borda otras consideraciones relevantes?

Ejemplo simple


En el 2004 hice un pequeño
juego llamado "Una de estas cosas no se parece a las demás" (en inglés, y aquí la traducción de google) para mi puesto en el carnaval de primavera de mi fraternidad (en la universidad). Lo pongo aquí para que sirva como ejemplo simple.

La jugabilidad en ese juego consiste en presentar cuatro imágenes a la vez, y el usuario debe indicar cual de las cuatro es diferente a las demás. Sólo hay una respuesta válida, que debe ser identificada por el usuario en un tiempo límite, y la máquina está preprogramada para saber cual es la respuesta correcta (no hay explicación o justificación). El juego estaba disponible para visitantes públicos de todas las edades, que se acercaban durante unos minutos, a un mueble de tipo kiosko, donde estaba montado todo.

¿Simple, verdad?, inmediatamente me empezaron a llegar sugerencias de cosas por amigos bienintencionados. Muchas de esos conjuntos sugeridos no eran válidos.

Y hé aquí el porqué: a pesar de que la meta fundamental, la interacción, y el contenido es simple, hay aún un modo correcto e incorrecto de pensar en un conjunto de 4 imágenes para usar para una de esas cosas que no es como las demás.

Piensa en este conjunto:
Pato Pez
Águila Pingüino

Digamos que alguien sugiere este conjunto, pensando en que se seleccione el pez, ya que es el único que no es un pájaro. ¡Esta pregunta es injusta! ¿Ves porqué?

El problema es que, como podrás haber supuesto, el águila tampoco es como los demás, ya que es el único de la lista que no pasa una cantidad de tiempo significativa en el agua.

O que tal este conjunto:






Este conjunto tampoco es justo. ¿Puedes ver más de una razonable respuesta?

Miralos escritos:

Toothpaste (dentrífico) Mouthwash (enjuague bucal)
Toothbrush (cepillo dental) Triangle (Triángulo)

Esta vez el problema no es el objeto en cuestión. El triángulo es claramente el único en la lista que no está relacionado con la higiene dental, y es el único objeto abstracto.

El problema es que no se dedique suficiente atención a las palabras, o a detalles de la composición en cada imagen. Mouthwash (enjuague bucal) es la única palabra en la lista que no empieza por T. El cepillo es la única imagen que no tiene un fondo blanco. Llegados a este punto, hay al menos tres válidas conclusiones que podrían funcionar como respuestas correctas, haciendo la cuarta opción (el dentrífico) diferente a las demás por no ser una respuesta factible. Este tipo de rompecabezas, especialmente bajo límite de tiempo, lleva a los jugadores a un estado de frustración, al no poder entender en qué pensaba el diseñador para determinar que criterio es más importante.

Conexión con juegos más grandes


De la misma forma que se pueden identificar que consideraciones nos valdrán para separar contenído válido del inválido, desafíos justos de los injustos, los objetos y niveles para juegos de tiempo real pueden ser creados según un conjunto de principios. ¿Cuanto hace falta que se introduzca el jugador en un nivel para que ocurra la primera secuencia de acción? ¿Cuantos enemigos a la vez debería haber en una estancia de un tamaño determinado? ¿Con que frecuencia deberían introducirse nuevos objetos? ¿A que ritmo es justo ir incrementando la dificultad? y ¿que cantidad de veces puede el juego reutilizar elementos y configuraciones para ser consistente, y ahorrarnos costes sin parecer cutre y repetitivo?

Las franquicias caracterízan la innovación


En un género establecido, como un FPS con marines espaciales, un Survival Horror en tercera persona, o un puzzle de bloques, el primer objetivo de un diseñador de videojuegos debe ser investigar qué se ha hecho antes por otros competidores en ese área para aprender de sus experiencias y mejorar sus errores. Es un desafío muy distinto cuando tenemos que crear el 25º juego de futbol en una serie, intentando innovar lo suficiente para satisfacer a los críticos y atraer a antiguos jugadores sin alinear la base de fans.

Para que quede claro, el diseño para una secuela todavía consiste en simplificar un complejo espacio de posibilidades en un sistema manejable de términos y conceptos, para usarlo como base de diseños expandidos y desarrollo de contenido.


IV.) Avanzado - Tipos de dificultad


¿Por qué hablar de la dificultad?


Cuando un desarrollador casi ha terminado su juego, lo habrá jugado miles de veces, o quizás más, y habrá practicado sus controles y sus puzzles desde la primera vez que tomaron forma. Lo que parece apropiado como desafío para un jugador nuevo, puede ser aburrido para el diseñador del juego, y lo que entretiene al diseñador será exagerádamente difícil para un nuevo jugador. Al hacer la dificultad del juego, es importante asegurarse no sólo de prestar atención al grado de dificultad, sino que este se ajusta correctamente a diferentes tipos.

Si el origen de la dificultad para un nuevo jugador no está identificado con claridad antes de que el jugador pueda empezar a resolver cosas, no habrá ningún ajuste o variable que podamos regular para compensarlo, lo que es peor, intentar resolver las cosas de la forma incorrecta introducirá otros problemas en el valor de entretenimiento del juego.

¿Tipos de dificultad?


A pesar de que esta sección está enfocada en mostrar las formas en las que un juego puede, por error, tener el tipo equivocado de dificultad, resulta útil nombrar unos cuantos ejemplos de tipos de dificultad para poder tener una visión clara sobre los orígenes del "desafío"-

Myst es un juego difícil.

Street Fighter II es un juego difícil.

Final Fantasy es un juego difícil.

Cualquiera familiarizado con estas franquicias reconoce que estas son tres declaraciones muy diferentes. Repasando:

En la mayoría de los casos, Myst hace que sea fácil hacer lo que quieres hacer, pero difícil el averiguar "qué" hacer.

Street Fighter II hace que sea facil averiguar lo que quieres hacer, pero difícil el hacerlo.

Final Fantasy consume tiempo, y lo fácil que quieras que resulte depende del tiempo que quieras emplear en subir de nivel.

La importancia de los juegos difíciles


Antes de que nos sumerjamos en las diferentes formas en las que los videojuegos pueden ser "difíciles", merece la pena clarificar porqué es deseable hacer que un juego sea "difícil" de alguna forma. Al hacer el videojuego más fácil, es importante no pasarse y olvidar que el juego tiene que plantear un desafío.

El movimiento que llevó a las grandes publicaciones a escribir historias para un nivel de comprensión bajo se está extendiendo a la industria del videojuego. El argumento, que tiene cierto sentido económico, es que el contenido se hace para llegar al mayor número de personas posible, y cuando con unos ajustes se puede conseguir llegar a la gente mayor, a la gente joven, a la gente menos paciente, y a la gente ocupada, tanto los desarrolladores como los jugadores se benefician.

El problema, si puedo usar una hiperbole, es que ocurren cosas muy distintas entre una piscina infantil y una piscina olímpica.

Lo que me preocupa es que cuando un juego difícil puede entrenar a una persona para afinar su habilidad aplicando estrategia, determinación, práctica, paciencia, cooperación y lograr dominar la frustración, un juego fácil enseña a cualquiera que el éxito es sólo cuestión de estar con lo mismo el tiempo suficiente. (He tocado este tema antes, unas cuantas lecciones atrás en
El valor oculto en los videojuegos.)

Fuentes de dificultad no ajustable


Y ahora, echaremos un vistazo a las diversas formas en las que un juego puede ser difícil injustamente. Muchas de estas fuentes de dificultad no pueden ser resueltas ajustando puntos de daño, potencia o velocidad. Corregir esto suele requerir repensar las cosas y rediseñarlas. Ignoraremos los casos extremos de las fuentes de dificultad identificadas antes - que resulte demasiado confuso lo que se debe hacer, que sea demasiado difícil ejecutar movimientos importantes, o que se requiera demasiado tiempo en tareas repetitivas y necesarias para poder vencer en el juego - porque ya han sido comentados.

Examinar sin enseñar En las escuelas no hacen exámenes antes de enseñar el temario. Hacer esto frustra y enoja a la gente. Y al contrario que el temario escolar, no hay probabilidades de que alguien sepa los entresijos de como funciona tu videojuego hasta que se lo digas. Sería útil e ideal pensar en introducir las mecánicas de juego siguiendo los pasos: introducción, estudio de la oportunidad, y luego test/desafío. Como mínimo esa enseñanza introductoria es esencial si queremos que alguien pueda llegar a dominarlo.

Esperar que nos lean la mente Si algo parece tener múltiples soluciones, pero el puzzle o la batalla está concebida de forma que sólo puede ser completado tal y como el diseñador lo pensó, el juego está creando la situación en la que el jugador se cabreará y dirá "esto debería funcionar". La apariencia de múltiples soluciones deberían traducirse en múltiples soluciones, o debería replantearse cuidadosamente las posibilidades para llevar al usuario hacia la solución deseada.

La victoria recae en comportamiento emergente inexplicable La mayoría de los juegos con controles incluso moderadamente complejos tienen algunas combinaciones inintencionadas para saltar un poco más alto, correr un poco más rápido, mover piezas de puzzle mientras otras están callendo, etc... En Doom y Goldeneye 007, es posible correr sobre un 40% más rápido moviéndose lateralmente ("strafing") y hacia delante - los vectores de velocidad se suman. Estos y otros pequeños trucos para ahorrar tiempo/salud pueden parecer tan naturales a los diseñadores como las interacciones principales después de muchas horas de práctica, pero tienen que ser introducidas explícitamente al jugador si son necesarias para tener éxito.

Curvas de dificultad inexperádamente empinadas Asumiendo que tu juego no resulta ser el primero al que juegue una persona, casi con seguridad recorrerá una parte tranquilamente sin ser vencido hasta su primera derrota. Si hace falta repetir muchas veces el cruzar ese primer obstáculo, tu juego volverá a la estantería, probablemente para siempre. Un jugador en esta situación, pasando de no repetir nada a repetir la misma sección muchas veces sin progresos, es muy probable que le eche la culpa a los desarrolladores por realizar malos ajustes u ofrecer instrucciones inadecuadas, en vez de pensar que es debido a un problema con su propia habilidad.

Pobre intuitividad Intuitividad es un término de diseño que se refiere a la forma en la que la estructura, estilo o forma de algo sugiere su uso adecuado a un usuario. Una agarradera sugiere "tirar", un dial sugiere "girar", un botón sugiere "pulsar", y un suelo lleno de picas sugiere no-me-toques-o-morirás. El ejemplo clásico de intuitividad apropiada en videojuegos son los puntos débiles de los jefes finales - áreas que brillan en rojo u otras áreas particularmente vulnerables (cerebros, ojos...) que están justo donde se puede atacar al jefe.

Un diseño pobre en la intuitividad se convierte en un problema cuando el personaje al que el jugador debe hablar está en medio de una multitud sin destacar visualmente en la escena (puede ser un problema de ubicación), o cuando resulta difícil diferenciar una puerta que puedes abrir de una que no hasta que pruebas en las dos (se podrían quitar las manillas en las puertas que no pueden ser abiertas), o cuando el jugador no puede identificar si un muro es frágil para romperlo (suele ser indicado por grietas, desconchados, decoloración significativa...).

Puzzles de intuición Un puzzle de intuición es un desafío que no ofrece un resultado visual cuando estás apunto de resolverlo, de forma que resolverlo requiere un cambio no trivial en como se piensa, un salto entre los datos proporcionados y la solución. En la vida real estos aparecen como acertijos, en la escuela aparecen como pruebas avanzadas. En un videojuego toman la forma en la necesidad de que te des cuenta de que el espejo no es realmente un espejo sino una ventana, que los malos pueden ser lanzados contra pinchos y así usarlos como puente o que las flechas se convertirán en flechas de fuego cuando las dispares atravesando una antorcha.

Cuando sea posible, proporciona intuitividad (mira el punto anterior) como un objetivo gigante de hielo cerca de la antorcha, o una pista sutil, como dejar que el jugador vea a uno e los malos andando sobre los pinchos sin hacerse daño, estas cosas pueden hacer la diferencia entre que el jugador se sienta inteligente dejando que se de cuenta y piense que es su idea, o que el jugador se quede atascado.

¿Qué es justo?


Al final, el videojuego es algo hecho para los jugadores, y será jugado sin explicación o demostración.

En consecuencia, la mejor forma de comprobar si es justo es sentar unos cuantos testeadores, por separado, que no hayan trabajado en el juego, y que no hayan visto a nadie jugándolo. Si puede pasar la parte en cuestión con un poco de práctica y sin pistas o explicaciones externas, probablemente es justo.

Si no pueden, entonces investiga si podría ser una de las causas de dificultad que acabamos de comentar; si no está relacionado con estas, considera reajustar alguna de las variables involucradas. Entonces encuentra un grupo fresco de testeadores - como en la caza, es importante que la presa no sepa por donde vienes.

Nota especial acerca de la dificultad inicial


Hay una regla famosa, de los viejos tiempos de Atari, que dice que es imposible hacer tu primer nivel demasiado fácil o demasiado corto. Por pura virtud de la mente del jugador adaptándose a nuevas configuraciones, nuevos controles, nuevos personajes, nuevas dinámicas, y nuevo audio, el cerebro recién llegado está sobrecargado y desafiado sin que haga falta añadir dificultad a la jugabilidad. Al final se sobreponen a la sobrecarga, buscando una respuesta acerca de si su inversión en tiempo merecerá la pena. Mientras tanto, es crucial llevarlos rápidamente desde esa configuración corta, fácil y sencilla a una jugabilidad real, para no perder la atención del jugador creando la impresión de que la actividad del juego es muy superficial.

Es fácil perder al jugador abrumándolo con un examen de rendimiento demasiado pronto. Esto puede asustar a los que prueben el juego haciéndoles creer que no pueden controlar la dificultad del juego.

Es fácil perder al jugador aburriéndolo ignorando el nucleo de la jugabilidad por demasiado tiempo. Esto puede perder a los que prueben el juego por una sensación de que el juego no es muy convincente.

Mientras tanto, la inmediata recompensa de progreso sirve como un aperitivo hacia el plato principal del juego.

Es imposible hacer tu primer nivel demasiado fácil o demasiado corto.


V.) Ponte en acción - No seas un burro


Te presento al burro


"Si no estás seguro de la opción a escoger entre dos alternativas para hacer algo, hazlo de las dos formas posibles y mira cual es mejor."

-John Carmack



El burro de Buridan (tradicionalmente conocido como "
Asno de Buridan") es una parábola filosófica en la que un burro, enfrente a dos balas de paja, es incapaz de decidir cual escoger para comer. Paralizado por la indecisión, el burro muere de hambre, justo al lado del doble de la comida que necesita.

Demasiadas ideas, insuficiente acción


Mucha más gente tiene las habilidades relativas a la realización de juegos - programación, arte digital, escritura de historias - que el número de personas involucradas en la realización de juegos. El problema en muchos casos no es la falta de ideas para videojuegos, es que se tienen demasiadas ideas para videojuegos, y no se está seguro acerca de como eliminar las malas y dejar las buenas.

Sin ser capaz de diferenciar las malas de las buenas, ¿como puede alguien saber en qué conceptos debería empezar? ¿Cual será el uso más efectivo de su tiempo?

Igual que intentar colar demasiado por un embudo, el camino del cerebro a las manos se atasca con la incertidumbre acerca de como reducir las posibilidades.

Como diferenciar las malas de las buenas


Puedo darte mi respuesta a esta pregunta, pero no te será de mucha ayuda.

Lo que es una buena idea para mi está basado en los videojuegos que conozco mejor, las ideas que más me apasionan, los tipos de trabajos que en mi experiencia personal me han llevado a ver con más claridad.

Lo que queremos saber es "¿qué es una buena idea para ti?", y sólo hay una forma de saberlo...

Como saber como diferenciar las malas de las buenas


Hacer juegos que acaban siendo pobres es la forma en la que aprendes qué ideas son malas para ti.

Hacer juegos que acaban saliendo bien es la forma en la que aprendes qué ideas son buenas para ti.

Realmente no hay una forma mejor de saberlo. Nadie puede saberlo por ti.

No puedes saber por adelantado hasta que ya has hecho algunos juegos como tener un sentido de tu forma de trabajo, lo que te dirige, la forma en la que ves las cosas mientras trabajas en ello, y como la gente que respetas responde a diferentes aspectos de tu trabajo.

Coje una de tus ideas de videojuegos que puedas crear rápida y fácilmente. Si no puedes decir con seguridad cual de tus ideas es la más rápida/fácil, suelen ser las más pequeñas y simples, o simplemente coge una al azar. ¿Por qué la que puedas crear más rápidamente y fácilmente? Mira
la vieja regla de Atari para la dificultad inicial.

Luego, haz ese juego.

Lo más rápido y lo más fácil - Porque las primeras ideas siempre son las más pobres


Casi sin excepción, sea cual sea la idea que una persona decide hacer primero será siempre pobre, da igual lo que intente. Esto es particularmente cierto si alguien está haciendo un juego por su cuenta, en vez de hacer equipo con alguien que tenga más experiencia.

Más claro: la mayoría de primeros proyectos serán, con total seguridad, malos.

Eso es cierto aunque el proyecto tenga potencial para ser bueno si se hace después de acumular más experiencia. Los desarrolladores principiantes necesitan salir fuera del sistema. Cuanto antes lo hagan, antes podrán aplicar las lecciones aprendidas en ese proceso a un segundo proyecto de juego. Entonces es posible enterrar ese primer trabajo mortecino bajo una pila de nuevos y mejores trabajos, como el resto de nosotros, los que llevamos ya un tiempo, hemos hecho.

Ver a la gente comenzar su juego soñado como su primer juego es descorazonador. Es un plan seguro para fracasar y quemarse. Nunca tendrá la suficiente calidad para que te sientas bien lanzándolo, pero la incapacidad para finalizar el primer proyecto (y el efecto asociado a relacionar desarrollo de juegos con arruinar un proyecto soñado) puede distraer e impedirte regresar al desarrollo de juegos. Lo he visto ocurrir a docenas y docenas de colegas estudiantes que tenían ilusión por desarrollar videojuegos.

(El que el primer juego de un desarrollador será malo, y debería ser tirado, era el punto 1 de 3 en una vieja presentación que monté en el 2006 para principiantes en el desarrollo de videojuegos.
Échale un ojo a los puntos 2 y 3, para enfrentarte a esos desafíos.)

Sobreproducción


A pesar de que la fama de Carmack como un programador legendario significa que sus citas se aplican típicamente a la programación de videojuegos, cada pequeña parte de ellas es relevante para el arte, diseño y audio. Mi mejor trabajo vino de cuando creé el 50% o más de niveles o características que pretendía mantener, y luego me deshice de la parte más floja de lo que hice (sobre 1/3). Algunas ideas excitantes no funcionaban tan bien dentro del juego, y es difícil saberlo con anterioridad. Este modelo de sobreproducción promueve el tomar riesgos y aprovechar oportunidades, intentando ideas que puede que no funcionen, porque hay pocas opciones para retroceder.

El 60% del trabajo de cualquiera es, obviamente, mejor que el otro 40% de su trabajo.

La idea de la sobreproducción es un poco como hacer prototipos, excepto que en vez de centrar toda tu energía en una cosa como una prueba de concepto, divides tu energía intentando unas cuantas opciones distintas a la vez. Si tu gastases tu tiempo haciendo 9 niveles hasta la mitad, cuando sólo necesitas 6, bocetar 4 variaciones de un icono cuando sólo necesitas uno, o intentar unas pocas variaciones del núcleo de la jugabilidad o la velocidad de juego, antes de decidirte por una, con estas cosas eliminas un montón de suerte de la ecuación. Hay cosas que no podemos saber hasta que las intentemos y las veamos funcionando en la pantalla con un mando en la mano, y esas son las cosas que hacen que un videojuego sea diferente.

No sólo se ha de ir más allá en la programación, también hay que hacerlo en la creación de contenido, lo que nos lleva también a hacerlo con la creación de juegos.
Mis mejores juegos gratuitos descargables no son los únicos seis proyectos en los que he trabajado - han sido posibles en el contexto de los muchos otros juegos gratuitos descargables que he creado. Mis 42 experimentos de jugabilidad favoritos no son los únicos 42 que he hecho, para que existan he tenido que emplear 7 meses haciendo un total de 219.

En la industria musical, uno de los patrones típicos, de donde sale un disco fantástico e irrepetible, es cuando el primer lanzamiento importante de un grupo se empaqueta con 18 de las mejores canciones que han tocado, de entre docenas, incluso cientos. Cuando su próximo CD sale, están compitiendo contra el mejor material que han acumulado en los años previos a hacerse famosos.

Incluso los mejores futbolistas no consiguen un gol siempre que lo intentan, cada obra que escribió Shakespeare no fue impresionante (algunas de ellas se consideran bastante malas), y cada juego que un desarrollador hace no será su mejor trabajo. Pero al haberlo creado aumenta el conjunto de ideas, conceptos y código que podría emplearse en nuevos proyectos. Al haberlo creado se incrementa el cúmulo de experiencias con variedad, extensión, y subproductos tangibles, donde un desarrollador puede rebuscar y repasar para identificar sus mejores trabajos.

Solución


Es difícil diferenciar que idea parece mejor, ve por las más rápida. Si no puedes diferenciar cual es la más rápida, coge una al azar, lanza una moneda si es necesario. Si tienes tiempo, dinero, pasión, y el estomago para ello, cóme las dos balas de paja, empezando por cualquiera.

Come la paja. No tengas hambre.

Si estas sentado pensando hacer videojuegos y aun no los has hecho, tanto si sigues mis lecciones como si no, tanto si piensas que tienes tiempo o no, ve y haz el videojuego más fácil y rápido que puedas. ¿Necesitas más ayuda para empezar? Mira esto
las otras lecciones gratuitas, para obtener más información y enlaces a recursos. Da igual que excusa tengas en mente, otros miles de lectores están pensando lo mismo - si encuentras la forma de ponerte en marcha y motivarte lo suficiente, estarás inmediatamente por delante de miles de aspirantes a desarrolladores.


VI.) Donaciones


Estas lecciones gratuitas están desarrolladas como un regalo a la comunidad, y me gustaría continuar desarrollándolas, pero me lleva bastante tiempo prepararlas. Si crees que estas lecciones te resultan valiosas, y puedes permitirte hacer una pequeña donación de 10$ (el precio de un libro pequeño), 30$ (el precio de una sesión de asesoramiento en grupo), o incluso unos pocos dólares (para mostrar tu apoyo, y motivarme), lo apreciaría muchísimo y me ayudaría a continuar dedicando el tiempo necesario para mantener la calidad como una prioridad en estas lecciones. PayPal hace que las transacciones sean seguras y sencillas - ni siquiera necesitas tener una cuenta en PayPal si tienes acceso a una tarjeta de credito:





VII.) Próximo boletín


Edición especial - una entrevista con Warren Robinett


Hace poco he tenido la oportunidad de entrevistar a la leyenda del videojuego Warren Robinett (desarrollador de Adventure para Atari, y cofundador de "The Learning Company"). Me hubiese gustado incluir algunas notas de esa entrevista en este boletín, pero la transcripción y edición de la charla informal consume más tiempo del que esperaba. Estará lista para el boletín del mes que viene - ¡confiad en mi!


Chris DeLeon

chris@gamedevlessons.com


PD Estoy escribiendo estos boletines para ayudar a la gente, y quiero que su contenido llegue al máximo número de personas posible. Por favor pasa este enlace si sabes de alguien al que le podría ser útil; http://gamedevlessons.com/lessons/carta5.html Enviar el enlace es mejor que copiar el texto entero y enviarlo, ya que de esta forma siempre verán la última versión con preguntas y respuestas o correcciones.








Nota sobre la traducción: este boletín ha sido creado originalmente en inglés y para una audiencia anglosajona por Chris DeLeon. He procurado adaptar, en la medida de lo posible, el texto a una audiencia hispano parlante, y en particular, Española. En sus comentarios Chris habla de la industria del videojuego en el mundo anglosajón, aunque no se apliquen por igual en nuestro caso creo que son bastante útiles.


Aparte del sitio web de Gamedevlessons también podrás encontrar estas traducciones en mi propia página web, en http://www.proyecto-iris.com, donde siempre mantendré una sección dedicada a estos boletines para ayudar en su difusión.


Andrés de Pedro