Far sapere - Inform
| Autori originali | Graham Nelson |
|---|---|
| Sviluppatore / i | Graham Nelson |
| Rilascio stabile | 7 6M62 / 24 dicembre 2015
|
| Sistema operativo | Microsoft Windows , Mac OS X , Linux , altri |
| genere | Sviluppo e gioco di fiction interattivi |
| Sito web | http://inform7.com/ |
Inform è un linguaggio di programmazione e un sistema di progettazione per la narrativa interattiva originariamente creato nel 1993 da Graham Nelson . Inform può generare programmi progettati per le macchine virtuali Z-code o Glulx . Le versioni da 1 a 5 sono state rilasciate tra il 1993 e il 1996. Intorno al 1996, Nelson ha riscritto Inform dai primi principi per creare la versione 6 (o Inform 6 ). Nel decennio successivo, la versione 6 divenne ragionevolmente stabile e un linguaggio popolare per la scrittura di narrativa interattiva. Nel 2006, Nelson ha rilasciato Inform 7 (brevemente noto come Natural Inform ), un linguaggio completamente nuovo basato sui principi del linguaggio naturale e una nuova serie di strumenti basati su una metafora dell'editoria di libri.
Z-Machine e Glulx
I compilatori Inform traducono il codice Inform in file di storie per Glulx o Z-code , due macchine virtuali progettate specificamente per la narrativa interattiva. Glulx, che può supportare giochi più grandi, è l'impostazione predefinita.
La Z-machine è stata originariamente sviluppata da Infocom nel 1979 per i loro titoli di finzione interattiva. Poiché esiste almeno un interprete di questo tipo per quasi tutte le piattaforme principali e secondarie, ciò significa che lo stesso file Z-code può essere eseguito su una moltitudine di piattaforme senza alterazioni. Originariamente Inform aveva come obiettivo solo la macchina Z.
Andrew Plotkin ha creato una versione non ufficiale di Inform 6 che era anche in grado di generare file per Glulx , una macchina virtuale che aveva progettato per superare molti dei limiti della Z-machine vecchia di diversi decenni. A partire da Inform 6.3, rilasciato il 29 febbraio 2004, Inform 6 ha incluso il supporto ufficiale per entrambe le macchine virtuali, basato sul lavoro di Andrew Plotkin. Il rilascio anticipato di Inform 7 non supportava Glulx, ma nell'agosto 2006 è stato rilasciato il supporto per Glulx.
Informare 6
| Paradigma | orientato agli oggetti , procedurale |
|---|---|
| Progettato da | Graham Nelson |
| Sviluppatore | Graham Nelson |
| Apparso per la prima volta | 1993 |
| Rilascio stabile | 6.32 / 2010 |
| Anteprima del rilascio | 6.33 / 10 maggio 2014 |
| OS | Microsoft Windows , Mac OS X , Linux , altri |
| Licenza | Gratuito e artistico licenza 2.0 |
| Sito web | inform-fiction |
| Influenzato da | |
| linguaggio naturale | |
| Influenzato | |
| Informare 7 | |
Inform è stato originariamente creato da Graham Nelson nel 1993. Nel 1996 Nelson ha riscritto Inform dai primi principi per creare la versione 6 (o Inform 6). Nel decennio successivo, la versione 6 divenne ragionevolmente stabile e un linguaggio popolare per la scrittura di narrativa interattiva.
Il sistema Inform 6 è costituito da due componenti principali: il compilatore Inform , che genera file di storia dal codice sorgente Inform, e la libreria Inform , una suite di software che gestisce la maggior parte del difficile lavoro di analisi dell'input di testo del giocatore e di tenere traccia del modello mondiale. Il nome Inform si riferisce anche al linguaggio di programmazione Inform che il compilatore comprende.
Sebbene Inform 6 e Z-Machine siano stati originariamente progettati pensando alla narrativa interattiva, sono stati sviluppati molti altri programmi, tra cui un interprete BASIC , un tutorial LISP (completo di interprete), un gioco Tetris e una versione del gioco Snake .
Il compilatore Inform 6
Il compilatore Inform genera file per la macchina Z o Glulx (chiamati anche file di storia) dal codice sorgente di Inform 6 .
Il linguaggio di programmazione Inform 6
Il linguaggio di programmazione Inform è orientato agli oggetti e procedurale . Un elemento chiave del linguaggio sono gli oggetti. Gli oggetti vengono mantenuti in una struttura ad albero che elenca le relazioni padre-figlio tra gli oggetti. Poiché la relazione genitore-figlio è spesso usata per rappresentare la posizione, si dice spesso che un oggetto che è il genitore di un altro oggetto lo "tiene". Gli oggetti possono essere spostati in tutto l'albero. In genere, gli oggetti di livello superiore rappresentano stanze e altri luoghi all'interno del gioco, che possono contenere oggetti che rappresentano il contenuto della stanza, siano essi oggetti fisici, personaggi non giocanti, il personaggio del giocatore o effetti di sfondo. Tutti gli oggetti possono contenere altri oggetti, quindi un livingroom oggetto potrebbe contenere un insurancesaleman oggetto che contiene un briefcase oggetto che contiene l' insurancepaperwork oggetto.
Nelle prime versioni di Inform, gli oggetti erano diversi dalla nozione di oggetti della programmazione orientata agli oggetti, in quanto non esisteva una classe. Le versioni successive hanno aggiunto il supporto per le definizioni di classe e hanno consentito agli oggetti di essere membri delle classi. Oggetti e classi possono ereditare da più classi. I giochi di finzione interattiva contengono in genere molti oggetti unici. Per questo motivo, molti oggetti in Inform non ereditano da alcuna classe diversa dall'oggetto "metaclasse". Tuttavia, molto spesso gli oggetti hanno attributi (proprietà booleane, come scenery o edible ) riconosciuti dalla libreria Inform. In altre lingue questo sarebbe normalmente implementato tramite ereditarietà.
Ecco un semplice esempio del codice sorgente di Inform 6.
[ Main;
print "Hello, World!^";
];
Informa 6 libreria
Il sistema Inform contiene anche la libreria Inform, che automatizza quasi tutto il lavoro più difficile coinvolto nella programmazione della narrativa interattiva ; in particolare, include un parser di testo che dà un senso all'input del giocatore e un modello del mondo che tiene traccia di cose come oggetti (e le loro proprietà), stanze, porte, inventario del giocatore, ecc.
Il compilatore Inform non richiede l'utilizzo della libreria Inform. Sono disponibili diverse librerie sostitutive, come Platypus e InformATE , una libreria che codifica Inform in spagnolo.
Gioco di esempio
Di seguito è riportato un esempio di codice sorgente di Inform 6 che utilizza la libreria Inform. L'esempio di codice Inform 6 riportato di seguito è utilizzabile in Inform 7, ma non senza una demarcazione speciale che indica che si tratta di codice legacy incorporato.
Constant Story "Hello Deductible";
Constant Headline "^An Interactive Example^";
Include "Parser";
Include "VerbLib";
[ Initialise;
location = Living_Room;
"Hello World";
];
Object Kitchen "Kitchen";
Object Front_Door "Front Door";
Object Living_Room "Living Room"
with
description "A comfortably furnished living room.",
n_to Kitchen,
s_to Front_Door,
has light;
Object -> Salesman "insurance salesman"
with
name 'insurance' 'salesman' 'man',
description "An insurance salesman in a tacky polyester
suit. He seems eager to speak to you.",
before [;
Listen:
move Insurance_Paperwork to player;
"The salesman bores you with a discussion
of life insurance policies. From his
briefcase he pulls some paperwork which he
hands to you.";
],
has animate;
Object -> -> Briefcase "briefcase"
with
name 'briefcase' 'case',
description "A slightly worn, black briefcase.",
has container;
Object -> -> -> Insurance_Paperwork "insurance paperwork"
with
name 'paperwork' 'papers' 'insurance' 'documents' 'forms',
description "Page after page of small legalese.";
Include "Grammar";
Giochi notevoli sviluppati in Inform 6 o versioni precedenti
- Curses , di Graham Nelson (1993), il primo gioco mai scritto nel linguaggio di programmazione Inform. Considerato uno dei primi giochi "moderni" a soddisfare gli elevati standard stabiliti dai migliori titoli di Infocom.
- Zork: The Undiscovered Underground (1997), scritto da Marc Blank e Michael Berlyn , programmato da Gerry Kevin Wilson. Dato via gratuitamente da Activision per promuovere l'uscita di Zork: Grand Inquisitor .
- Anchorhead , da Michael S. Gentry (1998) è una storia horror molto apprezzato ispirato da HP Lovecraft s' Miti di Cthulhu .
- Photopia , di Adam Cadre (1998), il primo gioco quasi interamente privo di puzzle. Ha vinto l'annuale Interactive Fiction Competition nel 1998.
- Varicella di Adam Cadre (1999). Ha vinto quattro XYZZY Awards nel 1999, incluso lo XYZZY Award per il miglior gioco, e su di esso è stato scritto un saggio accademico.
- Galatea , di Emily Short (2000). Galatea si concentra interamente sull'interazione con l'omonima statua animata. Galatea ha uno dei sistemi di interazione più complessi per un personaggio non giocante in un gioco di finzione interattiva. Adam Cadre ha definito Galatea "il miglior NPC di sempre".
- Slouching Towards Bedlam , di Star C. Foster e Daniel Ravipinto (2003). Ambientato in un'ambientazione steampunk , il gioco integra le funzionalità del meta-gioco (salvataggio, ripristino, riavvio) nel mondo di gioco stesso. Il gioco ha vinto due XYZZY Awards e ha ricevuto il punteggio medio più alto di qualsiasi altro gioco nell'Interactive Fiction Competition del 2006.
Informare 7
| Paradigma | dichiarativo , procedurale |
|---|---|
| Progettato da | Graham Nelson |
| Sviluppatore | Graham Nelson |
| Apparso per la prima volta | 2006 |
| Rilascio stabile | 6M62 / 24 dicembre 2015 |
| OS | Microsoft Windows , Mac OS X , Linux , altri |
| Licenza | Licenza proprietaria ma liberamente ridistribuibile o artistica 2.0 |
| Sito web | http://inform7.com/ |
| Influenzato da | |
| Informare 6 | |
Il 30 aprile 2006, Graham Nelson ha annunciato il rilascio beta di Inform 7 al newsgroup rec.arts.int-fiction. Inform 7 consiste di tre parti principali: L' IDE Inform 7 con strumenti di sviluppo specializzati per testare la narrativa interattiva, il compilatore Inform 7 per il nuovo linguaggio e " The Standard Rules " che formano la libreria principale di Inform 7. Anche Inform 7 si basa la libreria Inform e il compilatore Inform da Inform 6. Il compilatore compila il codice sorgente di Inform 7 nel codice sorgente di Inform 6, che viene quindi compilato separatamente da Inform 6 per generare un file di story Glulx o Z-code . Inform 7 imposta anche come impostazione predefinita la scrittura di file Blorb , archivi che includono il codice Z insieme a "copertine" opzionali e metadati destinati a scopi di indicizzazione. Il set completo di strumenti Inform 7 è attualmente disponibile per Mac OS X , Microsoft Windows e Linux . La versione del 25 marzo 2007 ha aggiunto il supporto della riga di comando per Linux e le nuove versioni ora includono un IDE che utilizza l' ambiente desktop GNOME nell'ambito del progetto GNOME Inform 7 SourceForge . Il linguaggio e gli strumenti rimangono in fase di sviluppo; la versione del 25 marzo 2007 includeva una serie di modifiche alla lingua. Nel 2019, Graham Nelson ha annunciato l'eventuale open source di Inform 7.
Inform 7 è stato chiamato Natural Inform per un breve periodo di tempo, ma è stato successivamente ribattezzato Inform 7. Questo vecchio nome è il motivo per cui il compilatore Inform 7 si chiama "NI".
Informare 7 IDE
Inform 7 viene fornito con un ambiente di sviluppo integrato (IDE) per Mac OS X, Microsoft Windows e Linux. L'IDE di Mac OS X è stato sviluppato da Andrew Hunter. L'IDE di Microsoft Windows è stato sviluppato da David Kinder. L'IDE Linux (noto come GNOME Inform) è stato sviluppato da Philip Chimento.
L'IDE di Inform 7 include un editor di testo per la modifica del codice sorgente di Inform 7. Come molti altri editor di programmazione, presenta l'evidenziazione della sintassi. Segna le stringhe tra virgolette in un colore. I titoli delle sezioni organizzative (volumi, libri, capitoli, parti e sezioni) sono in grassetto e ingranditi. I commenti sono impostati in un colore diverso e leggermente più piccoli.
L'IDE include un interprete Z-code integrato . L'interprete dell'IDE di Mac OS X si basa sull'interprete Zoom di Andrew Hunter, con il contributo di Jesse McGrew. L'interprete dell'IDE di Microsoft Windows è basato su WinFrotz .
Quando uno sviluppatore testa il gioco nell'interprete integrato, i progressi vengono registrati nelle viste "matassa" e "trascrizione" dell'IDE. La matassa tiene traccia dei comandi del giocatore come un albero di possibilità di ramificazione. Qualsiasi ramo dell'albero può essere seguito rapidamente, rendendo possibile riprovare percorsi diversi in un gioco in fase di sviluppo senza riprodurre le stesse parti del gioco. I percorsi possono anche essere annotati con note e contrassegnati come soluzioni, che possono essere esportati come guide di testo. La trascrizione, d'altra parte, tiene traccia sia dei comandi del giocatore che delle risposte del gioco. Le risposte corrette dal gioco possono essere contrassegnate come "benedette". Durante la riproduzione di una trascrizione o di un ramo della matassa, verranno evidenziate le variazioni dalla versione benedetta, che possono aiutare lo sviluppatore a trovare errori.
L'IDE fornisce anche vari indici nel programma in fase di sviluppo. Il codice viene mostrato come una gerarchia di classi, una mappa IF tradizionale, un sommario simile a un libro e in altre forme. Facendo clic sugli elementi nell'indice si passa al codice sorgente pertinente.
L'IDE presenta due riquadri affiancati in cui lavorare. Ciascun riquadro può contenere il codice sorgente su cui si sta lavorando, lo stato corrente della compilazione, la matassa, la trascrizione, gli indici del codice sorgente, una versione in esecuzione del gioco , documentazione per Inform 7 o qualsiasi estensione installata o impostazioni. Il concetto è quello di imitare il libro manoscritto di un autore presentando due "pagine affiancate" invece di una moltitudine di finestre separate.
Inform 7 linguaggio di programmazione
Le caratteristiche degne di nota includono un forte pregiudizio verso uno stile di programmazione basato su regole dichiarative e la capacità di dedurre tipi e proprietà degli oggetti dal modo in cui vengono utilizzati. Ad esempio, l'affermazione "Giovanni indossa un cappello". crea una "persona" chiamata "John" (poiché solo le persone sono in grado di indossare cose), crea una "cosa" con la proprietà "indossabile" (poiché solo gli oggetti contrassegnati come "indossabile" possono essere indossati) e imposta John come indossa il cappello.
Un altro aspetto degno di nota del linguaggio è il supporto diretto per le relazioni che tracciano le associazioni tra gli oggetti. Ciò include le relazioni fornite automaticamente, come un oggetto che ne contiene un altro o un oggetto che viene indossato, ma lo sviluppatore può aggiungere le proprie relazioni. Uno sviluppatore potrebbe aggiungere relazioni che indicano amore o odio tra esseri o per tenere traccia di quali personaggi di un gioco si sono incontrati.
Inform 7 è un linguaggio di programmazione altamente specifico del dominio , che fornisce allo scrittore / programmatore un livello di astrazione molto più elevato rispetto a Inform 6 e un codice sorgente risultante altamente leggibile.
Gioco di esempio
Le affermazioni in Inform 7 assumono la forma di frasi complete. Le righe vuote e il rientro sono in alcuni punti strutturalmente significativi. La forma base di un programma Inform 7 è la seguente:
"Hello, World!" by "I.F. Author"
The world is a room.
When play begins, say "Hello, World!"
Quello che segue è una reimplementazione del precedente esempio "Hello Deductible" scritto in Inform 7. Si basa sulla libreria nota come "The Standard Rules" che è automaticamente inclusa in tutte le compilation di Inform 7.
"Hello Deductible" by "I.F. Author"
The story headline is "An Interactive Example".
The Living Room is a room. "A comfortably furnished living room."
The Kitchen is north of the Living Room.
The Front Door is south of the Living Room.
The Front Door is a door. The Front Door is closed and locked.
The insurance salesman is a man in the Living Room. The description is "An insurance salesman in a tacky polyester suit. He seems eager to speak to you." Understand "man" as the insurance salesman.
A briefcase is carried by the insurance salesman. The description is "A slightly worn, black briefcase." Understand "case" as the briefcase.
The insurance paperwork is in the briefcase. The description is "Page after page of small legalese." Understand "papers" or "documents" or "forms" as the paperwork.
Instead of listening to the insurance salesman:
say "The salesman bores you with a discussion of life insurance policies. From his briefcase he pulls some paperwork which he hands to you.";
move the insurance paperwork to the player.
Giochi notevoli scritti in Inform 7
Mystery House Possessed (2005), di Emily Short , è stato il primo gioco di Inform 7 rilasciato per essere pubblico. È stato rilasciato come parte del progetto "Mystery House Taken Over".
Il 1 ° marzo 2006, Short ha annunciato l'uscita di altri tre giochi: Bronze (un esempio di un gioco tradizionale ad alta intensità di puzzle) e Damnatio Memoriae (un seguito del suo pluripremiato gioco Inform 6 Savoir-Faire ) sono stati raggiunti da The Reliques of Tolti-Aph di Graham Nelson (2006). Quando la beta pubblica di Inform 7 è stata annunciata il 30 aprile 2006, sei "esempi funzionanti" di opere su scala medio-grande sono stati resi disponibili insieme al loro codice sorgente, inclusi i tre giochi rilasciati in precedenza il 1 ° marzo.
Floatpoint di Emily Short è stato il primo gioco di Inform 7 a prendere il primo posto nella competizione di narrativa interattiva . Ha anche vinto gli XYZZY Awards 2006 per la migliore ambientazione e i migliori NPC. Rendition , di nespresso (2007), è un esperimento di arte politica sotto forma di un gioco di avventura testuale. Il suo approccio alla tragedia è stato discusso accademicamente sia dall'Association for Computing Machinery che dall'Università di Cambridge .
Guarda anche
- Informa la cronologia delle versioni
- Finzione interattiva § I sistemi di sviluppo elencano software simili a Inform
- TADS Il Text Adventure Development System (TADS), un altro sistema di sviluppo IF leader
Ulteriore lettura
- Informare 6
- Il manuale ufficiale di Inform è Graham Nelson 's Inform Designer Manuale : si tratta di un tutorial, un manuale e un documento tecnico in uno. È disponibile online gratuitamente sul sito ufficiale di Inform e sono disponibili due edizioni stampate: una copertina morbida ( ISBN 0-9713119-0-0 ) e una copertina rigida ( ISBN 0-9713119-3-5 ).
- La Guida per principianti di Inform di Roger Firth e Sonja Kesserich ( ISBN 0-9713119-2-7 ) tenta di fornire un'introduzione più delicata a Inform. È disponibile gratuitamente sul sito ufficiale di Inform.
- Informare 7
- The SPAG Interview - Un'intervista con i designer Graham Nelson ed Emily Short sullo sviluppo di Inform 7. Questa intervista è stata fatta poco prima della sua uscita e pubblicata lo stesso giorno della versione iniziale.
- "Natural Language, Semantic Analysis and Interactive Fiction" - Un documento sul design di Inform 7 del designer Graham Nelson .
Riferimenti
link esterno
- Cloak of Darkness: Inform presenta lo stesso gioco breve implementato sia in Inform 6 che in Inform 7, oltre ad altri linguaggi per il confronto.
- Inform 6 - Sito web ufficiale
- Le domande frequenti su Inform 6 nelle pagine IF di Roger Firth forniscono dettagli sulla programmazione in Inform 6.
- Inform 7 - Sito web ufficiale.
- Informa a Curlie
- L'archivio interattivo di narrativa fornisce molti strumenti, esempi e file di libreria di Inform.
- Playfic è un'interfaccia basata sul Web per la creazione e la condivisione di nuovi giochi utilizzando Inform 7.
- Guncho è un sistema di narrativa interattiva multiplayer basato su Inform 7 con una combinazione di interfacce MUD e web.