Backsidegames
Contacta con nosotros en : backsidegames@gmail.com

Twine Pong

Un nuevo juego, si es que se le puede llamar así, programado con la ayuda de Twine, uno de los mejores programas para crear historias interactivas de forma fácil y rápida, superado por su secuela: Twine 2. En esta ocasión se me ocurrió darle una vuelta de tuerca al padre de los videojuegos: Pong, desarrollado por Atari allá por 1972, cuando ni siquiera vuestros padres eran un proyecto en los testHACE MUCHO TIEMPO.

A decir verdad se trata más de un propuesta... artística, por así decirlo, más que jugable, pues la diversión brilla por su ausencia, todo sea dicho, pero quería refrescar mis conocimientos de Twine y esta me pareció una buena idea para ello. El objetivo de Twine Pong es sencillo: lograr introducir el cubo brillante en la meta del rival, solo que en esta ocasión no lo veremos, sino que se nos irá describiendo en pantalla su evolución. Aquel que consiga primero anotar cuatro puntos, ganará el juego.

El juego es muy mejorable, pero como decía, no tiene ninguna pretensión comercial (no os riáis) ni siquiera espero que alguien sea tan inconsciente de darle una oportunidad, pero al menos servirá para que conozcamos un poco la sintaxis que usa el programa. Así pues, comencemos a analizar el "código".

Para refrescar la memoria, un juego en Twine se divide en Pasajes que pueden contener los nodos de nuestra historia, hojas de estilo, imágenes, etc. No me detendré en ello. Si queréis más información al respecto podéis comprar "Twine. Una aproximación al desarrollo de literatura interactiva" en la siguiente dirección:

Bien, comenzamos por el pasaje "Start" que es donde se iniciará nuestro juego. El funcionamiento del código será el siguiente: la situación inicial es la del cubo que viene hacia nosotros. El ordenador nos preguntará hacia qué lado queremos ir: arriba o abajo. Si fallamos, un punto subirá al marcador contrario. Si acertamos, el cubo rebotará y la máquina tendrá que enfrentarse a la misma decisión. Si la máquina falla, obtendremos un punto, si acierta volveremos al estado inicial.Para más claridad, los comentarios irán tras los caracteres //.

Comenzamos declarando primero tres variables:

<<set $puntosmios to 0>>
//Que guardará los puntos del jugador 
<<set $puntosotro to 0>>
//Guarda los puntos de la máquina 
<<set $acierto to false>>
//Mantiene un registro de si nosotros, o la máquina, nos hemos tirado hacia el lado correcto o no.

Escribimos la introducción, cosa que os ahorraré, en la que ponemos al jugador en situación, y creamos un enlace a otro pasaje donde comenzará el juego en sí, de la siguiente forma:

Comienza el juego en el [[estadio]]
//Esto creará un enlace a un pasaje llamado estadio. Si no lo hemos definido previamente, el programa nos preguntará si queremos crearlo automáticamente

En el pasaje [estadio], estableceremos el inicio del bucle que se seguirá ejecutando mientras no hayamos perdido o ganado. Lo haremos escribiendo una sentencia de control if:

<<if $puntosmios > 3 >>
//Si hemos conseguido más de 3 puntos 
¡Has ganado!
//Se imprime el mensaje de que has ganado 
¿Quieres empezar de [[nuevo|Start]]?
//Se nos da la oportunidad de comenzar de nuevo volviendo al pasaje [Start], para lo cual deberemos pinchar en el enlace creado en la palabra "nuevo" 
<<else>>
//Si no hemos conseguido los puntos necesarios, comprobamos los de la máquina 
<<if $puntosotro>3 >>
//Si ha ganado el ordenador
¡Has perdido!
//y volvemos de nuevo a [Start] como se ha visto antes
<<else>>>
//Si todavía no ha conseguido los puntos necesarios para ganar
<<print either("Viene una pelota hacia ti, ¿qué haces?", "Te cuesta adivinar la trayectoria del cubo, solo tienes unos segundos, ¿hacia dónde te tirarás?", "La estela del cubo te confunde, ¿dónde ir?")>>
//Mostramos en pantalla con print, uno de los mensajes incluidos en la función either(), que aparecen separados por una coma. No se pueden anidar either(), al menos por lo que he probado hasta ahora. Ahora nos queda decidir qué vamos a hacer con el código:
Ir [[arriba]] o [[abajo]]
//Crea dos enlaces a los pasajes [arriba] y [abajo], que contendrán el mismo código.
<<endif>>>
<<endif>>>

Veremos entonces el código del pasaje [arriba], siendo el del pasaje [abajo] el mismo.

<<set $acierto to either(true , false)>>
//Asignamos aleatoriamente un valor a la variable $acierto, para indicar si nos tiramos al lado correcto o no. 
<<if $acierto is true>>
//si acertamos... 
<<print either("¡Has devuelto el cubo!", "Tus reflejos de Bubsy han salvado el punto y el cubo vuela hacia tu rival.", "Casi ni te puedes creer que acertaras hacia donde te venía, pero el caso es que el cubo ha rebotado con fuerza contra tu pecho y ahora se aleja felizmente.")>>
//Mostramos en pantalla un mensaje al respecto. Podrían ponerse muchos más pero decidí dejarlo en tres porque para qué más.
Ahora a ver qué hace el [[otro]].
//Hemos devuelto el cubo y ahora le toca a la máquina responder en el pasaje [otro]
<<else>>
//Si fallamos 
<<set $puntosotro to $puntosotro+1>>
//aumentamos el marcador del rival
<<print either("Te la han colado. Un punto más para el otro. A ver la próxima vez. No hay enemigo pequeño y el TwinePong es un deporte que inventaron los de Atari y siempre ganan los de Apple.", "Te falló la intuición. Se fue para el otro lado. Un punto más para el contrario.", "Deberías haber entrenado más en lugar de ver Contacto con tacto. Un punto sube al marcador rival.")>>
//Mostramos un mensaje en pantalla al respecto
[[A tu puesto|estadio]]
//Y volvemos al pasaje [estadio] para jugar el siguiente punto
<<endif>>

En el pasaje [otro], la máquina se enfrentará al mismo dilema. El código es lo mismo solo que si la máquina falla, el marcador que se actualizará será el nuestro.

<<set $puntosmios to $puntosmios+1>>

Y ya está. Más sencillo no puede ser. Como he comentado se podría poner un marcador haciendo uso de CSS y HTML, podría darse más variedad a los mensajes, etc. Pero es un buen punto de partida.



Para la presentación usé el estilo "Muet", creado por León Arnott, del que solo he modificado el margin-left de "passage" a un 50% en lugar de 60, para centrar más el texto, ya que al subir el archivo html que genera Twine a Blogger, este aparecía un pelín cortado por la derecha.

Por si tenéis curiosidad, podéis disfrutar de Twine Pong en la siguiente dirección: 

 

http://twinepong.blogspot.com

Comparte este artículo :

Publicar un comentario

Speak freely, friend.

Blogs

Archivo

 
Apoya : Creating Website | Johny Template | Mas Template
Copyright © 2011. Backside Games Studios - Todos los derechos reservados
Plantilla creada por Creating Website Publicada por Mas Template
Rediseñada por Backside Games