Informar
Inform es un lenguaje de programación y sistema de diseño para ficción interactiva creado originalmente en 1993 por Graham Nelson. Inform puede generar programas diseñados para las máquinas virtuales Z-code o Glulx. Las versiones 1 a 5 se publicaron entre 1993 y 1996. Alrededor de 1996, Nelson reescribió Inform a partir de los primeros principios para crear la versión 6 (o Inform 6). Durante la década siguiente, la versión 6 se volvió razonablemente estable y un lenguaje popular para escribir ficción interactiva. En 2006, Nelson lanzó Inform 7 (brevemente conocido como Natural Inform), un lenguaje completamente nuevo basado en los principios del lenguaje natural y un nuevo conjunto de herramientas basado en un libro. metáfora editorial.
Máquina Z y Glulx
Los compiladores de Inform traducen el código de Inform a archivos de historias para Glulx o Z-code, dos máquinas virtuales diseñadas específicamente para la ficción interactiva. Glulx, que puede admitir juegos más grandes, es el predeterminado.
La máquina Z fue desarrollada originalmente por Infocom en 1979 para sus títulos de ficción interactiva. Debido a que existe al menos un intérprete de este tipo para casi todas las plataformas principales y secundarias, esto significa que el mismo archivo de código Z se puede ejecutar en una multitud de plataformas sin alteraciones. Originalmente, Inform apuntaba solo a la máquina Z.
Andrew Plotkin creó una versión no oficial de Inform 6 que también era capaz de generar archivos para Glulx, una máquina virtual que había diseñado para superar muchas de las limitaciones de la máquina Z de varias décadas. Comenzando con Inform 6.3, lanzado el 29 de febrero de 2004, Inform 6 ha incluido soporte oficial para ambas máquinas virtuales, basado en el trabajo de Andrew Plotkin. El lanzamiento temprano de Inform 7 no era compatible con Glulx, pero en agosto de 2006 se lanzó el soporte de Glulx.
Informar 6
Inform fue creado originalmente por Graham Nelson en 1993. En 1996, Nelson reescribió Inform a partir de los primeros principios para crear la versión 6 (o Inform 6). Durante la década siguiente, la versión 6 se volvió razonablemente estable y un lenguaje popular para escribir ficción interactiva.
El sistema Inform 6 consta de dos componentes principales: el compilador de Inform, que genera archivos de historias a partir del código fuente de Inform, y la biblioteca de Inform, un conjunto de software que maneja la mayor parte del difícil trabajo de analizar la entrada de texto del jugador y realizar un seguimiento del modelo mundial. El nombre Inform también hace referencia al lenguaje de programación de Inform que entiende el compilador.
Aunque Inform 6 y Z-Machine se diseñaron originalmente con la ficción interactiva en mente, se han desarrollado muchos otros programas, incluido un intérprete BASIC, un tutorial LISP (completo con intérprete), un juego Tetris y una versión del juego Serpiente.
El compilador de Informe 6
El compilador de Inform genera archivos para Z-machine o Glulx (también llamados archivos de historia) a partir del código fuente de Inform 6.
El lenguaje de programación Inform 6
El lenguaje de programación Inform está orientado a objetos y es procedimental. Un elemento clave del lenguaje son los objetos. Los objetos se mantienen en un árbol de objetos que enumera las relaciones padre-hijo entre los objetos. Dado que la relación padre-hijo se usa a menudo para representar la ubicación, a menudo se dice que un objeto que es el padre de otro objeto "mantiene" él. Los objetos se pueden mover por todo el árbol. Por lo general, los objetos de nivel superior representan habitaciones y otras ubicaciones dentro del juego, que pueden contener objetos que representan el contenido de la habitación, ya sean elementos físicos, personajes que no son jugadores, el personaje del jugador o efectos de fondo. Todos los objetos pueden contener otros objetos, por lo que un objeto livingroom
podría contener un objeto vendedor de seguros
que contiene un objeto maletín
que contiene el papeleo del seguro
objeto.
En las primeras versiones de Inform, los objetos eran diferentes de la noción de objetos de la programación orientada a objetos, en que no existían las clases. Las versiones posteriores agregaron soporte para definiciones de clase y permitieron que los objetos fueran miembros de clases. Los objetos y las clases pueden heredar de varias clases. Los juegos de ficción interactivos suelen contener muchos objetos únicos. Debido a esto, muchos objetos en Inform no heredan de ninguna clase, excepto la "metaclase" Objeto. Sin embargo, los objetos suelen tener atributos (propiedades booleanas, como scenery
o edible
) que son reconocidos por la biblioteca Inform. En otros idiomas, esto normalmente se implementaría mediante herencia.
Este es un ejemplo simple del código fuente de Inform 6.
! Los soportes cuadrados definen una rutina. Esta es la rutina principal, que no tiene argumentos.[ Main; impresión "¡Hola, Mundo!^";];
Las partes procesales, las instrucciones y los operadores se toman prestados en gran medida de C, con la notable excepción de que -->x
en lugar de [x]
se usa para tomar subíndices de matriz. Las rutinas se definen entre corchetes, como en Principal
rutina anterior, pero llamada con corchetes como en C. El carácter @
se usa para escapar de los caracteres y para invocar códigos de operación de máquina Z sin procesar.
Informe 6 biblioteca
El sistema Inform también contiene la biblioteca Inform, que automatiza casi todo el trabajo más difícil relacionado con la programación de ficción interactiva; específicamente, incluye un analizador de texto que da sentido a la entrada del jugador y un modelo mundial que realiza un seguimiento de cosas como objetos (y sus propiedades), habitaciones, puertas, el inventario del jugador, etc..
El compilador de Inform no requiere el uso de la biblioteca de Inform. Hay varias bibliotecas de reemplazo disponibles, como Platypus e InformATE, una biblioteca que codifica Inform en español. Algunos juegos pueden no usar ninguna biblioteca, como un puerto directo de Zork en Inform 6.
Juego de ejemplo
Este es un ejemplo del código fuente de Inform 6 que utiliza la biblioteca de Inform. El ejemplo de código de Inform 6 a continuación se puede usar en Inform 7, pero no sin una demarcación especial que indique que se trata de un código heredado incrustado.
Constante Historia "Hola Deducible";Constante Título "^Un ejemplo interactivo^";Incluido "Parseriente";Incluido "VerbLib";[ Inicial; ubicación = Living_Room; "Hola Mundo";];Objeto Cocina "Kitchen";Objeto Front_Door "Puerta fundida";Objeto Living_Room "Sala de vida" con descripción "Un salón confortablemente amueblado.", No. Cocina, S_to Front_Door, tiene luz;Objeto - Salesman "Vendedor de seguridad" con Nombre 'seguro ' 'salesman ' Hombre ', descripción "Un vendedor de seguros en un poliéster tacky traje. Parece ansioso por hablar contigo.", antes [; Escucha.: Muévanse. Insurance_Paperwork a jugador; "El vendedor te aburre con una discusión de pólizas de seguro de vida. De su maletín que saca algunos papeles que él manos a ti."; ] tiene animar;Objeto - - maletín "briefcase" con Nombre 'briefcase ' 'case ', descripción "Un maletín negro y un poco usado"., tiene contenedor;Objeto - - - Insurance_Paperwork "papeles de seguridad" con Nombre Papeleo ' Documentos ' 'seguro ' 'documentos ' "formas" ', descripción "Página tras página de pequeños legales.";Incluido "Grammar";
Juegos notables desarrollados en Inform 6 o versiones anteriores
- Curses, por Graham Nelson (1993), el primer juego escrito en el lenguaje de programación Inform. Considerado uno de los primeros juegos "modernos" para cumplir con los altos estándares establecidos por los mejores títulos de Infocom.
- Zork: El subterráneo sin descubrir (1997), escrito por Marc Blank " Michael Berlyn, programado por Gerry Kevin Wilson. Dado libre por Activision para promover la liberación de Zork: Gran Inquisitor.
- Anchorhead, de Michael S. Gentry (1998) es una historia de terror altamente valorada inspirada en el Cthulhu Mythos de H. P. Lovecraft.
- Fotopia, por Adam Cadre (1998), el primer juego casi totalmente libre de rompecabezas. Ganó el concurso anual de ficción interactiva en 1998.
- Varicella por Adam Cadre (1999). Ganó cuatro premios XYZZY en 1999 incluyendo el Premio XYZY para el Mejor Juego, y tuvo un ensayo académico escrito al respecto.
- Galatea, por Emily Short (2000). Galatea se centra totalmente en la interacción con la estatua animada del mismo nombre. Galatea tiene uno de los sistemas de interacción más complejos para un personaje no jugador en un juego interactivo de ficción. Adam Cadre llamó a Galatea "el mejor NPC jamás".
- Slouching Towards Bedlam, por Star C. Foster y Daniel Ravipinto (2003). El juego integra narrativamente la funcionalidad de meta-juego (salvar, restaurar, reiniciar) en el mundo del juego. El juego ganó dos premios XYZZY y recibió la puntuación media más alta de cualquier juego en el Concurso de Ficción Interactiva a partir de 2006.
Informar 7
El 30 de abril de 2006, Graham Nelson anunció el lanzamiento beta de Inform 7 al grupo de noticias rec.arts.int-fiction. Inform 7 consta de tres partes principales: el Inform 7 IDE con herramientas de desarrollo especializadas para probar ficción interactiva, el compilador de Inform 7 para el nuevo lenguaje y "Las Normas Uniformes" que forman la biblioteca principal de Inform 7. Inform 7 también se basa en la biblioteca de Inform y el compilador de Inform de Inform 6. El compilador compila el código fuente de Inform 7 en el código fuente de Inform 6 código, que luego Inform 6 compila por separado para generar un archivo de historia Glulx o Z-code. Inform 7 también escribe de forma predeterminada archivos Blorb, archivos que incluyen el código Z junto con "arte de portada" y metadatos destinados a fines de indexación. El conjunto completo de herramientas de Inform 7 está actualmente disponible para Mac OS X, Microsoft Windows y Linux (desde 2007).
A partir de 2023, Inform 7 y sus herramientas seguirán en desarrollo. Desde abril de 2022, Inform 7 es de código abierto y se desarrolla en GitHub.
Inform 7 se denominó Inform natural durante un breve período de tiempo, pero luego pasó a llamarse Inform 7. Este antiguo nombre es el motivo por el cual el compilador de Inform 7 se llama "NI."
Informar 7 IDE
Inform 7 viene con un entorno de desarrollo integrado (IDE) para Mac OS X, Microsoft Windows y Linux. El IDE de Mac OS X fue desarrollado por Andrew Hunter. El IDE de Microsoft Windows fue desarrollado por David Kinder. El IDE de Linux (conocido como GNOME Inform) fue desarrollado por Philip Chimento.
El IDE de Inform 7 incluye un editor de texto para editar el código fuente de Inform 7. Como muchos otros editores de programación, presenta resaltado de sintaxis. Marca cadenas citadas en un color. Los encabezados de las secciones organizativas (Volúmenes, Libros, Capítulos, Partes y Secciones) están en negrita y agrandados. Los comentarios se establecen en un color diferente y se hacen un poco más pequeños.
El IDE incluye un intérprete de código Z integrado. El intérprete de Mac OS X IDE está basado en el intérprete de Zoom de Andrew Hunter, con contribuciones de Jesse McGrew. El intérprete del IDE de Microsoft Windows se basa en WinFrotz.
Mientras un desarrollador prueba el juego en el intérprete integrado, se realiza un seguimiento del progreso en la "skein" y "transcripción" vistas del IDE. La madeja rastrea los comandos del jugador como un árbol de posibilidades de ramificación. Cualquier rama del árbol se puede volver a seguir rápidamente, lo que permite volver a intentar diferentes caminos en un juego en desarrollo sin volver a jugar las mismas partes del juego. Las rutas también se pueden anotar con notas y marcar como soluciones, que se pueden exportar como tutoriales de texto. La transcripción, por otro lado, rastrea tanto los comandos del jugador como las respuestas del juego. Las respuestas correctas del juego se pueden marcar como "benditas". Al reproducir una transcripción o una rama de la madeja, se resaltarán las variaciones de la versión bendecida, lo que puede ayudar al desarrollador a encontrar errores.
El IDE también proporciona varios índices sobre el programa en desarrollo. El código se muestra como una jerarquía de clases, un mapa IF tradicional, una tabla de contenido similar a un libro y en otras formas. Al hacer clic en los elementos del índice, se salta al código fuente correspondiente.
El IDE presenta dos paneles uno al lado del otro para trabajar. Cada panel puede contener el código fuente en el que se está trabajando, el estado actual de la compilación, la madeja, la transcripción, los índices del código fuente, una versión en ejecución del juego, la documentación de Inform 7 o cualquier extensión instalada, o la configuración. El concepto es imitar el libro manuscrito de un autor presentando dos "páginas opuestas" en lugar de una multitud de ventanas separadas.
Informe 7 lenguaje de programación
Las características notables incluyen un fuerte sesgo hacia el estilo de programación basado en reglas declarativas y la capacidad de inferir tipos y propiedades de objetos a partir de la forma en que se usan. Por ejemplo, la declaración 'Juan usa un sombrero'. crea una "persona" llamado "Juan" (ya que solo las personas son capaces de usar cosas), crea una "cosa" con el "portátil" propiedad (ya que solo los objetos marcados como "ponibles" se pueden usar), y establece que John usa el sombrero.
Otro aspecto notable del lenguaje es el soporte directo para relaciones que rastrean asociaciones entre objetos. Esto incluye relaciones proporcionadas automáticamente, como un objeto que contiene a otro o un objeto que se usa, pero el desarrollador puede agregar sus propias relaciones. Un desarrollador puede agregar relaciones que indiquen amor u odio entre seres, o para rastrear qué personajes de un juego se han conocido.
Inform 7 es un lenguaje de programación altamente específico de dominio, que brinda al escritor/programador un nivel de abstracción mucho más alto que Inform 6 y un código fuente resultante altamente legible. Los enunciados lógicos y aritméticos de propósito general están escritos en lenguaje natural (consulte, por ejemplo, el ejemplo de "Física" en The Inform Recipe Book).
En los primeros Inform 7, el compilador traduce el código a Inform 6, al igual que lo hizo CFront con C++ y C. El compilador actual (a partir de la versión 10 de 2022) también puede traducir el código directamente a C para una versión nativa. ejecutable y para generar un "minisitio web de índice" describiendo la historia.
Juego de ejemplo
Las declaraciones en Inform 7 toman la forma de oraciones completas. Las líneas en blanco y la sangría son estructuralmente significativas en algunos lugares. La forma básica de un programa Inform 7 es la siguiente:
"¡Hola, Mundo!" por "I.F. Author"El mundo es una habitación.
Cuando el juego comienza, di "¡Hola, Mundo!"
La siguiente es una nueva implementación del "Hello Deductible" anterior. ejemplo escrito en Inform 7. Se basa en la biblioteca conocida como "Las reglas estándar" que se incluyen automáticamente en todas las compilaciones de Inform 7.
"Hola Deducible" por "I.F. Author"El titular de la historia es "Un ejemplo interactivo".
El salón es una habitación. "Un salón confortablemente amueblado."La cocina está al norte de la sala de estar.
La puerta delantera está al sur de la sala de estar.
La puerta delantera es una puerta. La puerta delantera está cerrada y cerrada.
El vendedor de seguros es un hombre en el salón. La descripción es "Un vendedor de seguros en un traje de poliéster. Parece ansioso por hablar contigo." Entiendo. "hombre" como el vendedor de seguros.
El vendedor de seguros lleva un maletín. La descripción es "Un maletín negro y un poco usado". Entiendo. "caso" como el maletín.
El papeleo del seguro está en el maletín. La descripción es "Página tras página de pequeños legales." Entiendo. "papeles" o "documentos" o "formas" como papeleo.
En lugar de escuchar al vendedor de seguros:
Di: "El vendedor te aburre con una discusión de las pólizas de seguro de vida. De su maletín saca un papeleo que te da".;
mover el papeleo del seguro al jugador.
Juegos notables escritos en Inform 7
Mystery House Possessed (2005), de Emily Short, fue el primer juego de Inform 7 lanzado al público. Fue lanzado como parte de "Mystery House Taken Over" proyecto.
El 1 de marzo de 2006, Short anunció el lanzamiento de tres juegos más: Bronze (un ejemplo de un juego tradicional de rompecabezas) y Damnatio Memoriae (una continuación de su galardonado juego Inform 6 Savoir-Faire) se unieron a The Reliques of Tolti-Aph de Graham Nelson (2006). Cuando se anunció la versión beta pública de Inform 7 el 30 de abril de 2006, seis "ejemplos resueltos" Se pusieron a disposición obras de mediana a gran escala junto con su código fuente, incluidos los tres juegos lanzados anteriormente el 1 de marzo.
Floatpoint de Emily Short fue el primer juego de Inform 7 en obtener el primer lugar en la competencia de ficción interactiva. También ganó los premios XYZZY 2006 por Mejor escenario y Mejores NPC. Rendition, de nespresso (2007), es un experimento de arte político en forma de juego de aventuras de texto. Su enfoque de la tragedia ha sido discutido académicamente tanto por la Association for Computing Machinery como por la Universidad de Cambridge.
Contenido relacionado
Más allá de la franja
Texas los tiene
Transporte y Comunicaciones en México