lunes, 30 de junio de 2014

KSP. Para que sirve el Laboratorio móvil. Parte I.

Este artículo no es para mi; es para un amigo que también se está quitando del Kerbal Space Program. Continuaré en primera persona sólo por claridad narrativa, no quisiera que pensaseis que estoy enganchado a esta maravilla de juego.
Pues bien, tras diseñar mis primeros cohetes y recoger los puntos de ciencia de Kerbin, mandé mi primera misión tripulada a Mün. Este viaje, inexplicablemente, terminó bien a pesar de agotar todo el combustible y tener que hacer la maniobra de vuelta al planeta con el RCS. Esto me hizo plantearme la búsqueda de un sistema de recogida de puntos de ciencia más eficiente, ya que esta luna posee 15 biomas; y mandar un cohete desde Kerbin ida y vuelta puede ser un proceso lento.
La solución consiste en utilizar el módulo Mobile Processing Lab MPL-LG-2. Si ponemos este cacharro en órbita alrededor de Mün, volamos una nave más pequeña (un módulo lander) que se ocupe de recoger los puntos de ciencia de las diferentes localizaciones y los subimos después al laboratorio podremos agilizar bastante la recolección.

Laboratorio orbital

Pues dicho y hecho. El primer diseño de laboratorio orbital consta del módulo de comando de 3 kerbals (Mk1-2 Command Pod), el laboratorio Mobile Processing Lab MPL-LG-2 y un habitáculo PPD-10 Hitchhiker Storage Container para los astronautas por si la misión se alarga. También es interesante añadir dos depósitos grandes de combustible para repostar al módulo lander después de cada viaje.
Todo esto se pone en órbita mediante un sistema impulsor de cohetes en espárrago con motores “Mainsail”, los más tochotes que hay.
Aquí os dejo una foto del laboratorio.

Módulo lander

El diseño del módulo lander tiene sus cositas, algunas de ellas discutibles. El viaje original me marcó bastante por lo que ahora, en mis diseños, intento no quedarme corto de combustible bajo ninguna circunstancia. Además, los experimentos están duplicados, por si en algún viaje pudiera tomar datos en dos biomas diferentes (todavía no se ha dado el caso, pero todo se andará…)
Al módulo lander se le añade otro motor intermedio para hacer el viaje desde la órbita de kerbin hasta Mün y además tenemos la fase inicial en espárrago para poner al conjunto en órbita.

Lechera

El laboratorio orbital es bastante grande, por lo que llevarlo a Mün consume gran cantidad de combustible. Por ello es necesario diseñar una tercera nave no tripulada que se dedique a la ingrata y nada heroica tarea del repostaje (lo que viene siendo un aguador espacial).

Ensamblaje

El laboratorio y el lander deben ponerse en órbita y hacer el viaje Mün por separado. Cuando estemos en una órbita cómoda realizaremos el acoplamiento entre ambas.

Como podéis ver la nave está repleta de escaleras. Esto es necesario para que el kerbonauta pueda recoger los experimentos a mano y depositarlos en el laboratorio. Hay un detalle importante que se aprecia en esta captura: la escalerilla que al desplegarse permite que Jebediah acceda al módulo lander.

En las siguientes entregas os contaré más cosas de esta misión.

sábado, 21 de junio de 2014

Puzzles II. Tipos y ejemplos

Uno de los juegos con puzzles con los que mejor lo he pasado es Grim Fandango (LucasArts 1998), una aventura gráfica muy original que forma parte de la edad de oro del género que incluye títulos como Indiana Jones and the Last Crusade: The Graphic Adventure de Lucasfilm Games en 1989 o Indiana Jones and the Fate of Atlantis o toda la serie de Monkey Island (The Secret of Monkey Island, Monkey Island 2).

También son altamente recomendables  Day of the Tentacle o su anciano antecesor Maniac Mansion del año 1987. Los retos a superar en estos juegos suelen basarse en el uso de objetos (items use) en los que usar un objeto determinado en cierto orden permite resolver el reto y continuar el juego obteniendo, posiblemente, otro objeto absurdo que deberemos pensar para qué puede servir durante el juego. 
Grim Fandango

Algunos de ellos los podéis encontrar como abandonware en la web de clásicos básicos, como en anteriormente mencionado Grim Fandango. Un rato de entretenimiento está garantizado.


Maniac Mansion. Las acciones que se pueden realizar están listadas (Fuente http://retrogamerschool.blogspot.com.es)
El día del tentáculo. Como veis, sigue el sistema señala-y-clickea (Fuente: http://www.retrosistemas.es/)
En estos juegos, y en otros que usen puzles como principal desafío, podemos encontrar los siguientes tipos:

Acertijos: Bastante famosos en los juegos conversacionales de los 80, se encuentran en desuso básicamente por dos motivos, la dificultad de traducirlos a otros idiomas y el hecho de que, una vez resueltos, ya no son un desafio nunca más. Esto hace que no compense el esfuerzo de crearlos. Otro aspecto negativo es que resolverlos depende del conocimiento del jugador, no hay otra manera de abordarlos, por eso no es recomendable que aparezcan como única solución ante un momento clave del juego, como puede ser abrir una puerta, un cofre o pasar al siguiente nivel, pueden ser tremendamente frustrantes.


Pensamiento lateral: Como en el caso de los acertijos son preguntas "trampa" con una solución única. Como en el caso de los acertijos, su uso está desaconsejado. Son problemas del tipo de mover cerillas para conseguir una solución. Moviendo sólo 2 cerillas has de sacar la pelota de la pala.


Ejemplo clásico de pensamiento lateral
Razonamiento espacial: Implican mover y manipular objetos en la superficie (Tetris) o en el espacio (Cubo de Rubik). El mencionado en un post anterior 2048 es otro ejemplo. Aunque podríamos decir que muchos de ellos no son puramente puzles de razonamiento espacial, implican algo de reconocimiento de patrones (cuando la ciertas fichas están cercas de otras en una forma determinada es más sencillo puntuar) y de lógica.

Tetris. Un juego clásico de razonamiento espacial

Reconocimiento de patrones: Indiana Jones debe atravesar un pasillo lleno de péndulos amenazadores, cuchillas que suben y bajan o un ladron debe atravesar una habitación plagada de láseres y cámaras que dan vueltas. En Commandos, los guardias alemanes patrullan implacablemente, pero siempre hay un momento en el que la zona queda sin vigilancia...es el momento de pasar...En todos estos casos reconocemos un patrón que nos permite efectuar el siguiente movimiento.
 
Donkey Kong: Aunque los barriles son aleatorios, el nivel del elevador tiene un patrón fácil de reconocer
  Lógica: En los juegos de lógica, a partir del conocimiento de una serie de sucesos, se infiere cual es la solución al problema. Los juegos de sucesiones son un ejemplo claro de este tipo de puzles o el clásico Mastermind. Como en los acertijos y los puzles de pensamiento lateral, la solución es única así que han de usarse con cuidado. Para guiar al jugador y que no vaya probando soluciones al azar, puede ser interesante dar pistas. En Mastermind el jugador sabe cuántas piezas a colocado correctamente.
 
Mastermind...bastante retro..pero siempre entretenido

Exploración:Laberintos con puertas que necesitan llaves para abrirlas que están escondidas tras rocas que hay que empujar. Son sencillos y entretenidos, creo que bastante ideales para desarrollar en Android para teléfonos móviles por su jugabilidad y permitirnos pasar ratos entretenidos en momentos de espera. Un ejemplo bastante divertido es el Diamond Rush.

Diamond Rush para móvil
Uso de objetos: Las aventuras gráficas usan a menudo puzles que requieren el uso de objetos. El jugador debe imaginar qué objetos usar y en qué orden para resolver un desafio particular. Si la combinación de objetos es inusual (como suele ser el caso) estos juegos suelen mostrar a un PNJ (NPC) realizando una acción similar.


En general, los puzles son más difíciles de lo que le parecen al diseñador del mismo, al fin y al cabo, éste sabe la solución y no queda más que probarlo con potenciales jugadores para cononcer cómo de complejo es (test and try,...). Quizá tengamos la tentación de probarlo con los jugadores más avezados, pero es conveniente que distintos perfiles de jugador lo prueben para saber si es demasiado fácil o difícl y ajustar el nivel del puzle.


Hacerlo más complejo es posible añadiendo una limitación de tiempo o reduciendo el número de pistas, indiciones o avisos de los PNJs (El anciano PNJ en la aldea puede decirnos ¡La cueva es oscura, no olvidéis llevar una antorcha con vosotros!  o simplemente decir ¡Suerte en vuestra cruzada!....y cuando lleguéis a la cueva tengáis a los bichos con visión nocturna esperándoos con el tenedor en la mano...)


Para hacerlo más asequible, pueden darse pistas o hacer que el jugador encuentre indicios cerca de donde se encuentra el puzzle (¿un explorador tiene un libro donde ha ido apuntando las combinaciones en el orden de las piedras para abrir la puerta de un templo?), o permitir múltiples soluciones.


En los juegos de rol, por ejemplo, la solución es sencilla, el Director de Juego ajusta el tipo, tamaño y maldad de los enemigos u oculta las tiradas de dados para "salvar" a los jugadores in extremis. Este tipo de ajuste se conoce como DDA (Dynamic DifficultyAdjustment).

KSP. Kerbal Space Program


KerbalSpace program - conocido como KSP es un videjuego de simulación espacial para PC en el que los jugadores crean y gestionan su propio programa espacial. Quizá no sea un juego propiamente dicho (contiene reglas, interacción pero los desafíos que debe contener un juego son más bien voluntarios), pero resulta tremendamente adictivo a los aficionados la física y astronáutica.

El tema es sencillo. Los habitantes del planeta Kerbal disponen de unos medios básicos para arrancar un programa espacial. A medida que van realizando avances (explorar la atmósfera de su planeta, realizar un vuelo orbital), van desbloqueando nueva tecnología que les permite explorar sus satélites más cercanos y, posteriormente, realizar vuelos interplanetarios.

Despegando desde la base. La cara del astronauta se debe a mi habilidad en el manejo de la nave...ya sabe lo que le espera

Laboratorio espacial en órbita

Podéis encontrar referencias al juego en otros foros como en puntadelanza, en IGN  o en Meristation. 

Juanma me pasó el link hace unas semanas y lo pasé a Miguel Angel y Carlos que están en plena conquista del espacio (como yo mismo).

Es un juego que está en fase de desarrollo, se puede bajar una versión demo y también se puede comprar la versión en desarrollo a un precio razonable.

Si tengo que poner un pero es que se juega de manera individual y que los retos a superar no están claros, se pueden hacer el cualquier orden y no tenemos mucha idea de si los podremos efectuar o no hasta que lo intentamos. Tampoco hay penalizaciones ni coste por construir naves imposibles...aunque supongo que son temas que irán resolviendo porque está en desarrollo.

Creo que puede ser un fantástico juego de tipo tycoon , compitiendo con los contrincantes para ser los primeros en la carrera espacial. De hecho, es un modo de juego interesante entre amigos, aunque off-line.

En positivo, los gráficos son bastante impresionantes y la física, sin ser tan compleja como para ser inmanejable, es lo bastante acertada como para ser verosimil. 
Alunizaje en Mun (primera luna de Kerbal). La nave es setentera a tope.
Otra vista del alunizaje en Mun
Tercer alunizaje en Mun...empieza a ser pan comido...

Como curiosidad, el sistema de control de la nave es muy similar a los usados en las misiones Apollo 
 
Flight Director Attitude Indicator (FDAI. Fuente: http://www.space1.com)

domingo, 1 de junio de 2014

Programación de juegos: Python

Hace tiempo comenté en una entrada el uso de software de diseño de juegos como Gamemaker. Otro ejemplo de este tipo de programas es Stencyl. Básicamente se trata de entornos para diseñar y construir juegos sin programación, en un entorno visual.  Lo he usado para alguna prueba y están muy bien para alguien que no ha programado nunca, pero mis antecedentes son la programación en MATLAB, de modo que me resultaba complicado pasar a esa forma de plantear los programas.

Incrementando la flexibilidad y complejidad, otro entorno adecuado para programar juegos es el Macromedia (yo usé el CS5). Es una aplicación que permite crear webs, animaciones y juegos. Aunque es sencillo hacer animaciones relativamente interesantes, me resultó algo complicado ir más allá. El lenguaje que usa es ActionScript (3.0. la versión CS5).
ActionScript está pensado para trabajar en Flash y aunque es potente no me resultó cómodo.
Hay varias webs en las que hay indicaciones sobre cómo construir juegos, aunque Kongregate Labs es la que me resultó más interesante en su momento y en la que te guian para hacer un shooter completo.

Posteriormente descubrí un curso sobre Python (lenguaje de programación orientado a objetos sobre el que Juanma ya me había hablado en otras ocasiones) enfocado a programación interactiva impartido on-line por la Universidad de Rice en la platafoma Coursera.

Dentro del curso se programan en Python juegos interactivos sencillos como el  Pong, Blackjack o Asteroids pero la verdad es que el lenguaje me pareció cómodo y muy adecuado para hacer juegos (al menos en 2D).


Pong hecho con CodeSkulptor, el editor de Python de Coursera

Black Jack hecho para el curso
RiceRocks...el asteroids de la Universidad de Rice
 Tras terminar el curso, se recomienda seguir con Python y la librería pygame  así que me instalé el Python 3.2.5 y la correspondiente librería de Python para estar versión. Ambas son gratuitas y, si estáis acostumbrados a programar, son sencillas de instalar y usar.

Un curso recomendado para seguir aprendiendo Python orientado al diseño de juegos es "Making games with Python & Pygame" que también os podéis descargar de forma gratuita.

Así que además de las tareas abiertas para completar los juegos que tenemos esbozados, intentaremos hacer alguna cosa en Python.

Puzzles (parte I)



Un puzzle es un juguete, un problema u otro artefacto diseñado para divertir presentando dificultades que deben ser resueltas mediante el ingenio o un esfuerzo paciente.

El puzzle puede existir por si solo (como en el caso de Sudoku o el 2048...que me enseñó Miguel Angel hace unas semanas y os recomiendo que no probéis si no queréis acabar soñando con cuadrados que se deslizan....) o integrado en un juego más complejo. En los videojuegos es habitual encontrar una puerta secreta que para ser abierta necesita colocar una serie de elementos en un orden determinado.

Miguel Angel y yo lo hemos terminado!!
 
Aunque para hacer un buen puzzle es necesario tener en cuenta muchas consideraciones, hay dos aspectos básicos que deben cumplir.

Por un lado, deben estar integrados. Si en medio de una batalla se encasquilla el arma del Marine Espacial y se detiene la acción para que tenga que volver a montar las piezas en un complicado puzzle...la jugabilidad e inmersión se pierden por completo. De hecho, si son una parte importante del juego que separa por ejemplo, dos escenarios o dos fases, lo ideal es que pueda pasarse de una fase a otra bien superando el puzzle, bien de otro modo que no requiera ese esfuerzo (por ejemplo, eliminando al orco de la puerta).

En segundo lugar deben ser intuitivos, esto es jugables. Las reglas y los controles deben ser fáciles de imaginar, el patrón que lleva a la solución del juego debe ser identificable aunque no sea declarado (vamos, que el jugador ha de saber cual es el objetivo del juego) y el GUI debe ser fácil de usar. Si es especialmente complicado o lo preferimos por cualquier otro motivo, también podemos usar a los PNJs para que nos echen una mano (el anciano sentado al lado de la puerta que nos cuenta una historia sobre los 4 elementos...o simplemente el guardián que nos reta a solucionar el enigma para dejarnos pasar).

En cuanto los tipos de puzzles, podemos encontrar los acertijos (típicos en los juegos conversacionales de los 80, aunque cada vez menos habituales, dado que son complicados de traducir), los que requieren del pensamiento lateral, razonamiento espacial (como el 2048), reconocimiento de patrones, lógicos o de exploración.