La Ficción Interactiva y sus playas

elije

Una de mis inspiraciones en todo esto de hacer videojuegos es la serie «Elige tu propia aventura». Esta serie de libros no se leen de principio a fin, sino que comenzando desde la primera página, el libro te plantea una elección al final de cada segmento (que generalmente se extiende por una sola página). Dependiendo de la elección que hagas, el libro te instruye saltar a una página u otra.

Este formato es uno de los primeros que surgió cuando los videojuegos se popularizaron, y se llama Ficción Interactiva (o Interactive Fiction, en inglés). No hay casi nada nuevo en este formato, tan solo que las herramientas para escribir ficción interactiva se han simplificado muchísimo. El objetivo de este artículo es hacer una introducción al tema y sugerir una herramienta que puedes utilizar para crear tus propias historias.

Hace un par de meses me di la oportunidad de escribir una historia interactiva, se llama La Línea. Era algo que había querido hacer desde hace ya algún tiempo, y había escuchado una herramienta que permitía hacer esto fácilmente, en un formato muy simple de distribuir, páginas en HTML.

Uno podría ciertamente escribir la historia con HTML, pero esto implica concentrarse en los detalles del formato, cuando lo que hace falta realmente es concentrarse en los detalles de la historia que uno quiere contar. Lo ideal es tener una herramienta donde puedes escribir, y sin muchas vueltas poder establecer las partes que quieres que enlacen con otras. Si ya has tenido suficiente práctica con la herramienta, hasta podrías pensar en que quieres establecer algunas condiciones para ofrecer una opción (por ejemplo, digamos que quieres revisar toda una habitación antes de seguir adelante).

Lo bueno es que estas herramientas existen, y voy a listarlas a continuación. Eso sí, una buena práctica antes de comenzar a escribir es revisar y ver qué han hecho otras personas con estas herramientas. Este es un listado de sitios () donde puedes leer buena ficción interactiva:

Para escribir ficción interactiva:

  • Twine, esta es la herramienta que utilicé para La Línea, y hablaré un poco sobre ella más adelante. Tiene una versión que puedes usar en línea, por lo que puedes comenzar ahora mismo, incluso en un dispositivo móvil.
  • inklewriter, de la misma gente de Inkle. Tuve la oportunidad de probar un poco esta herramienta, y me pareció muchísimo más simple de utilizar que Twine, ya que tiene una interfaz mejor lograda para escribir y agregar opciones. Sin embargo, Twine ofrece un poco más de flexibilidad en comparación. Como es una página web, lo puedes utilizar en un dispositivo móvil.
  • Seltani, permite también la participación colectiva para escribir. Permite también un poco de código.
  • Inform, es un sistema de programación hecho para que los jugadores escriban instrucciones para avanzar en la historia.

Un poco sobre Twine

De todas estas opciones sólo he podido probar las dos primeras que mencioné, y en ambas me encontré con herramientas que insisten en salirse de tu camino a lo que es realmente importante: escribir una historia. Una ventaja de Twine es la posibilidad de descargarlo a la computadora y poderlo utilizar completamente fuera de línea, utilizando solamente un navegador moderno.

Para escribir una historia en Twine debes crear pasajes de texto, representados visualmente como recuadros), y luego enlazas los pasajes de texto con hiperenlaces, rodeándolos con doble corchete [[así]], muy al estilo Wikipedia

Lo otro interesante de Twine es la posibilidad de utilizar macros para hacer un mínimo de programación para la historia. Por ejemplo, podrías tener un contador para saber cuántas veces ha leído el jugador un cierto texto, almacenar el nombre de alguien y mostrarlo dentro del texto, mostrar variaciones de un mismo texto para que no se haga monótono. Lo importante del asunto es que no requiere algo por separado, lo puedes escribir ahí mismo junto a tu historia.

Espero que este artículo te anime a escribir historias. Y si tienes alguna hecha, puedes subirla a algún lugar al estilo neocities y enlazarla en los comentarios. ¡Buena suerte!

(†) Este listado fue tomado de un taller corto sobre el tema con Emily Short, síguela en Twitter para buena información sobre ficción interactiva. He aquí otros enlaces interesantes:

Desarrollando videojuegos con cocos2d-html5 (6): Entre escenas se entienden

Este artículo es la parte 6 de 6 de la serie Desarrollando videojuegos con cocos2d-html5

cocos2d-tutorial-6

Entre escenas se entienden

En esta parte veremos cómo manejar las funciones de schedule de una escena para llamar a funciones con intervalos regulares de tiempo, cómo hacer varias escenas para agrupar funcionalidades y cómo hacer una transición entre una escena y otra.

Las escenas en cocos2d encapsulan el comportamiento de un juego. De esta manera, puedes tener una escena para el menú inicial, otra escena para el juego como tal, otra escena para los créditos, y así. En proyectos más complejos podrías incluso tener más de una escena para tu juego, por ejemplo, una escena de inventario. Sigue leyendo Desarrollando videojuegos con cocos2d-html5 (6): Entre escenas se entienden

Desarrollando videojuegos con cocos2d-html5 (5): Implementando los controles

Este artículo es la parte 5 de 6 de la serie Desarrollando videojuegos con cocos2d-html5

cocos2d-tutorial-5

Implementando los controles

En esta parte del tutorial veremos las tres formas básicas de controlar un juego. Veremos el código que hay que agregar para que un juego soporte el control del mouse (para navegadores de escritorio), para control con touch (para navegadores móviles, incluyendo multitouch), y soporte para el teclado.

En la sección anterior vimos cómo usar un tipo muy específico de nodo, el botón, que tiene una interacción limitada. A veces necesitamos hacer más con la entrada del jugador, y eso es lo que haremos hoy. Sigue leyendo Desarrollando videojuegos con cocos2d-html5 (5): Implementando los controles

Un currículum para C y C++ de bajo nivel en #AltDevBlogADay

#AltDevBlogADay es uno de los mejores blogs de desarrollo/programación de videojuegos que existen y debería formar parte de tu lectura habitual. Actualmente están publicando una serie de artículos que hablan sobre lo que deberías aprender para entender bien los fundamentos de implementación a bajo nivel de C y C++, más que enseñarte a ser programador de bajo nivel. Si eres capaz de entender estos conceptos, tendrás menos probabilidad de crear bugs y mayor facilidad en rastrearlos. Hasta ahora van doce artículos, así que tómate tu tiempo para leerlos, no son lecturas sencillas.

  1. Introducción
  2. Tipos de datos
  3. La pila
  4. Más sobre la pila
  5. Aún más sobre la pila
  6. Condicionales
  7. Más sobre condicionales
  8. Mirando ensamblador optimizado
  9. Loops
  10. Tipos definidos por el usuario
  11. Herencia
  12. Herencia múltiple

Desarrollando videojuegos con cocos2d-html5 (4): Comenzando un proyecto

Este artículo es la parte 4 de 6 de la serie Desarrollando videojuegos con cocos2d-html5

cocos2d-tutorial-4Comenzando un proyecto

El resultado final de esta sección
El resultado final de esta sección

En esta parte del tutorial comenzaremos un proyecto de cocos2d-html5 a partir de la plantilla que la librería provee. Vamos a agregar una imagen, un texto y un botón a la escena y vamos a hacer que la imagen y el texto ejecuten unas acciones a partir de presionar el botón. Sigue leyendo Desarrollando videojuegos con cocos2d-html5 (4): Comenzando un proyecto

Desarrollando videojuegos con cocos2d-html5 (3): Un vistazo al Hello World

Este artículo es la parte 3 de 6 de la serie Desarrollando videojuegos con cocos2d-html5

cocos2d-tutorial-3

Un vistazo al Hello World

El objetivo de esta parte del tutorial es ver el código del proyecto funcional más simple que viene incluido con la instalación de cocos2d-html5. A través del código aprenderemos los conceptos fundamentales de cocos2d para hacer un primer acercamiento.

Comencemos por conocer de antemano las dos tecnologías que veremos el día de hoy. Sigue leyendo Desarrollando videojuegos con cocos2d-html5 (3): Un vistazo al Hello World

Desarrollando videojuegos con cocos2d-html5 (2): Instalando la librería

Este artículo es la parte 2 de 6 de la serie Desarrollando videojuegos con cocos2d-html5

cocos2d-tutorial-2

Instalando la librería

En esta parte del tutorial vamos a instalar un servidor web de prueba en Windows. Posteriormente vamos a descomprimir la librería en el directorio del servidor, y finalmente probaremos que todo está bien.

Por motivos de tiempo no tengo chance de incluir instrucciones para Linux u OSX. Pero si estás usando alguno de estos dos sistemas operativos, instalar un servidor de pruebas de Apache es muy sencillo y hay amplias instrucciones en otros lados. Sigue leyendo Desarrollando videojuegos con cocos2d-html5 (2): Instalando la librería

Desarrollando videojuegos con cocos2d-html5 (1): ¡Bienvenidos a cocos2d!

Este artículo es la parte 1 de 6 de la serie Desarrollando videojuegos con cocos2d-html5

cocos2d-tutorial-1

¡Bienvenido a cocos2d!

El objetivo de esta serie de 12 partes es dar una introducción al uso del conjunto de librerías conocidas colectivamente como cocos2d, a través de su versión para html5, cocos2d-html5. Está orientado principalmente a aquellas personas que ya tienen conocimientos de programación con Actionscript, Javascript, o algún otro lenguaje. En secciones posteriores abordaremos también algunas variantes de esta librería que emplean los mismos conceptos que veremos aquí. Sigue leyendo Desarrollando videojuegos con cocos2d-html5 (1): ¡Bienvenidos a cocos2d!