| Inform | |
|---|---|
| Design by | Graham Nelson |
| Developed by | Graham Nelson |
| Latest release | 7 5T18 / April 30, 2008[1] |
| OS | Microsoft Windows, Mac OS X, Linux, others |
| Available in | English |
| Genre | Interactive fiction development and play |
| Website | http://www.inform-fiction.org/ |
Inform is a programming language and design system for interactive fiction originally created in 1993 by Graham Nelson. Software design is a process of problem-solving and planning for a Software solution Graham A Nelson (born 1968 is a British mathematician poet and the creator of the Inform design system for creating Interactive fiction (IF games A software developer is a person or organization concerned with facets of the software development process wider than design and coding a somewhat broader scope of Graham A Nelson (born 1968 is a British mathematician poet and the creator of the Inform design system for creating Interactive fiction (IF games A software release is the distribution whether public or private of an initial or new and upgraded version of a Computer software product Events 313 - Roman emperor Licinius unifies the entire Eastern Roman Empire under his rule 2008 ( MMVIII) is the current year in accordance with the Gregorian calendar, a Leap year that started on Tuesday of the Common An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination Microsoft Windows is a series of Software Operating systems and Graphical user interfaces produced by Microsoft. Mac OS X (mæk oʊ ɛs tɛn is a line of computer Operating systems developed marketed and sold by Apple Inc, the latest of which is pre-loaded on all currently Linux (commonly pronounced ˈlɪnəks A language is a dynamic set of visual auditory or tactile Symbols of Communication and the elements used to manipulate them Computer software can be organized into categories based on common function type or field of use A website (alternatively web site or Web site, a back-construction from the Proper noun World Wide Web) is a collection of Web pages A programming language is an Artificial language that can be used to write programs which control the behavior of a machine particularly a Computer. Graham A Nelson (born 1968 is a British mathematician poet and the creator of the Inform design system for creating Interactive fiction (IF games Inform can generate programs designed for the Z-code or Glulx virtual machines. The Z-machine is a Virtual machine that was developed by Joel Berez and Marc Blank in 1979 and used by Infocom for its text adventure games Glulx is a 32-bit portable Virtual machine intended for writing and playing Interactive fiction. Versions 1 through 5 were released between 1993 and 1996. Around 1996, Nelson rewrote Inform from first principles to create version 6 (or Inform 6). [2] Over the following decade, version 6 became reasonably stable and a popular language for writing interactive fiction. In 2006, Nelson released Inform 7 (briefly known as Natural Inform), a completely new language based on principles of natural language and a new set of tools based around a book-publishing metaphor. As of 2007, Inform 7 is still in beta, but has already been used for the release of interactive fiction.
Contents |
All versions of Inform generate files in Z-code (also called story files) from source code. The Z-machine is a Virtual machine that was developed by Joel Berez and Marc Blank in 1979 and used by Infocom for its text adventure games In Computer science, source code (commonly just source or code) is any sequence of statements or declarations written in some Human-readable These files can then be run by any Z-code interpreter — that is, by any program which properly implements the Z-code virtual machine (or Z-machine) specification. The Z-machine is a Virtual machine that was developed by Joel Berez and Marc Blank in 1979 and used by Infocom for its text adventure games In Computer science, a virtual machine (VM is a Software implementation of a machine (computer that executes programs like a real machine The Z-machine was originally developed by Infocom in 1979 for their interactive fiction titles. Infocom was a Software company, based in Cambridge Massachusetts, that produced numerous works of Interactive fiction. Because there is at least one such interpreter for nearly every major and minor platform, this means that the same Z-code file can be run on a multitude of platforms with no alterations.
Andrew Plotkin created an unofficial version of Inform 6 that was also capable of generating files for Glulx, a virtual machine he had designed to overcome many of the limitations of the several-decades-old Z-machine. Andrew Plotkin (born May 15 1970 also known as Zarf, is an award-winning Interactive fiction author and an important figure in the modern interactive fiction community Glulx is a 32-bit portable Virtual machine intended for writing and playing Interactive fiction. Starting with Inform 6. 3, released February 29, 2004, Inform 6 has included official support for both virtual machines, based on Andrew Plotkin's work. Leap years Although the modern calendar counts a year as 365 days a complete revolution around the sun takes approximately 365 days and 6 hours "MMIV" redirects here For the Modest Mouse album see " Baron von Bullshit Rides Again " Early release of Inform 7 did not support Glulx, but in August 2006 Glulx support was released.
| Inform 1-6 | |
|---|---|
| Paradigm | object-oriented, procedural |
| Appeared in | 1993 |
| Designed by | Graham Nelson |
| Developer | Graham Nelson |
| Latest release | 6. A programming paradigm is a fundamental style of Computer programming. Object-oriented programming (OOP is a Programming paradigm that uses " objects " and their interactions to design applications and computer programs Procedural programming can sometimes be used as a synonym for Imperative programming (specifying the steps the program must take to reach the desired state but can also Graham A Nelson (born 1968 is a British mathematician poet and the creator of the Inform design system for creating Interactive fiction (IF games A software developer is a person or organization concerned with facets of the software development process wider than design and coding a somewhat broader scope of Graham A Nelson (born 1968 is a British mathematician poet and the creator of the Inform design system for creating Interactive fiction (IF games A software release is the distribution whether public or private of an initial or new and upgraded version of a Computer software product 31/ February 10, 2006 |
| Influenced | Inform 7 |
| OS | Microsoft Windows, Mac OS X, Linux, others |
| License | Proprietary but freely redistributable |
| Website | http://www.inform-fiction.org/inform6.html |
Inform was originally created by Graham Nelson in 1993. Events 1355 - The St Scholastica's Day riot breaks out in Oxford, England, leaving 63 scholars and perhaps 30 locals dead Year 2006 ( MMVI) was a Common year starting on Sunday of the Gregorian calendar. An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination Microsoft Windows is a series of Software Operating systems and Graphical user interfaces produced by Microsoft. Mac OS X (mæk oʊ ɛs tɛn is a line of computer Operating systems developed marketed and sold by Apple Inc, the latest of which is pre-loaded on all currently Linux (commonly pronounced ˈlɪnəks A software license (or software licence in commonwealth usage is a Legal instrument governing the usage or redistribution of copyright protected software A website (alternatively web site or Web site, a back-construction from the Proper noun World Wide Web) is a collection of Web pages Graham A Nelson (born 1968 is a British mathematician poet and the creator of the Inform design system for creating Interactive fiction (IF games In 1996 Nelson rewrote Inform from first principles to create version 6 (or Inform 6). Over the following decade, version 6 became reasonably stable and a popular language for writing interactive fiction.
The Inform 6 system consists of two major components: the Inform compiler, which generates story files from Inform source code, and the Inform library, a suite of software which handles most of the difficult work of parsing the player's text input and keeping track of the world model. In Computer science and Linguistics, parsing, or more formally syntactic analysis, is the process of analyzing a sequence of tokens to The name Inform also refers to the Inform programming language that the compiler understands.
Although Inform 6 and the Z-Machine were originally designed with interactive fiction in mind, a large number of other programs have been developed, including a BASIC interpreter, a LISP tutorial (complete with interpreter), a Tetris game, and a version of the game Snake. In Computer programming, BASIC (an Acronym for Beginner's All-purpose Symbolic Instruction Code) is a family of High-level programming languages Lisp (or LISP) is a family of Computer Programming languages with a long history and a distinctive fully parenthesized syntax Tetris (Тетрис is a Video puzzle game originally designed and programmed by Alexey Pajitnov in June 1985 while working for the Dorodnicyn History The Snake variety of games originated with the Arcade game ''Blockade'', released by Gremlin in 1976.
The Inform compiler generates files for the Z-machine or Glulx (also called story files) from Inform 6 source code. A compiler is a Computer program (or set of programs that translates text written in a computer language (the source language) into another The Z-machine is a Virtual machine that was developed by Joel Berez and Marc Blank in 1979 and used by Infocom for its text adventure games Glulx is a 32-bit portable Virtual machine intended for writing and playing Interactive fiction. In Computer science, source code (commonly just source or code) is any sequence of statements or declarations written in some Human-readable
The Inform programming language is object-oriented and procedural. Object-oriented programming (OOP is a Programming paradigm that uses " objects " and their interactions to design applications and computer programs Procedural programming can sometimes be used as a synonym for Imperative programming (specifying the steps the program must take to reach the desired state but can also A key element of the language is objects. Objects are maintained in an object tree which lists the parent-child relationships between objects. Since the parent-child relationship is often used to represent location, an object which is the parent of another object is often said to "hold" it. Objects can be moved throughout the tree. Typically, top level objects represent rooms and other locations within the game, which may hold objects representing the room's contents, be they physical items, non-player characters, the player's character, or background effects. All objects can hold other objects, so a livingroom object might hold an insurancesaleman object which is holding a briefcase object which contains the insurancepaperwork object.
In early versions of Inform, objects were different from the notion of objects from object-oriented programming, in that there was no such thing as a class. Later versions added support for class definitions and allowed objects to be members of classes. Objects and classes can inherit from multiple classes. Interactive fiction games typically contain many unique objects. Because of this, many objects in Inform do not inherit from any class, other than the "metaclass" Object. However, objects very frequently have attributes (boolean properties, such as scenery or edible) that are recognized by the Inform library. In other languages this would normally be implemented via inheritance.
Here is a simple example of Inform 6 source code.
[ Main; print "Hello World^"; ];
The Inform system also contains the Inform library, which automates nearly all of the most difficult work involved in programming interactive fiction; specifically, it includes a text parser that makes sense of the player's input, and a world model that keeps track of such things as objects (and their properties), rooms, doors, the player's inventory, etc. In Computer science and Linguistics, parsing, or more formally syntactic analysis, is the process of analyzing a sequence of tokens to
The Inform compiler does not require the use of the Inform library. There are several replacement libraries available, such as Platypus[3] and InformATE, a library that codes Inform in Spanish.
Here is an example of Inform source code that makes use of the Inform library. The following description refers to Inform 6. Inform 7 is almost entirely different. The code sample below is usable in Inform 7, but not without special demarcation indicating that it is embedded legacy code.
Constant Story "Hello World"; 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";
| Inform 7 | |
|---|---|
| Paradigm | declarative, logic |
| Appeared in | 2006 |
| Designed by | Graham Nelson |
| Developer | Graham Nelson |
| Latest unstable release | 5T18/ April 30, 2008 |
| Influenced | Inform 6 |
| OS | Microsoft Windows, Mac OS X, Linux, others |
| License | Proprietary but freely redistributable |
| Website | http://www.inform-fiction.org/ |
On April 30, 2006, Graham Nelson announced the beta release of Inform 7 to the rec. A programming paradigm is a fundamental style of Computer programming. In Computer science, Declarative programming is a Programming paradigm that attempts to minimize or eliminate side effects by describing what Logic programming is in its broadest sense the use of mathematical logic for computer programming Graham A Nelson (born 1968 is a British mathematician poet and the creator of the Inform design system for creating Interactive fiction (IF games A software developer is a person or organization concerned with facets of the software development process wider than design and coding a somewhat broader scope of Graham A Nelson (born 1968 is a British mathematician poet and the creator of the Inform design system for creating Interactive fiction (IF games Events 313 - Roman emperor Licinius unifies the entire Eastern Roman Empire under his rule 2008 ( MMVIII) is the current year in accordance with the Gregorian calendar, a Leap year that started on Tuesday of the Common An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination Microsoft Windows is a series of Software Operating systems and Graphical user interfaces produced by Microsoft. Mac OS X (mæk oʊ ɛs tɛn is a line of computer Operating systems developed marketed and sold by Apple Inc, the latest of which is pre-loaded on all currently Linux (commonly pronounced ˈlɪnəks A software license (or software licence in commonwealth usage is a Legal instrument governing the usage or redistribution of copyright protected software A website (alternatively web site or Web site, a back-construction from the Proper noun World Wide Web) is a collection of Web pages Events 313 - Roman emperor Licinius unifies the entire Eastern Roman Empire under his rule Year 2006 ( MMVI) was a Common year starting on Sunday of the Gregorian calendar. arts. int-fiction newsgroup. [8] Inform 7 consists of three primary parts: The Inform 7 IDE with development tools specialized for testing interactive fiction, the Inform 7 compiler for the new language, and "The Standard Rules" which form the core library for Inform 7. In Computing, an integrated development environment ( IDE) is a Software application that provides comprehensive facilities to Computer programmers Inform 7 also relies on the Inform library and Inform compiler from Inform 6. The compiler compiles the Inform 7 source code into Inform 6 source code, which is then compiled separately by Inform 6 to generate Glulx or Z-code story file. Glulx is a 32-bit portable Virtual machine intended for writing and playing Interactive fiction. The Z-machine is a Virtual machine that was developed by Joel Berez and Marc Blank in 1979 and used by Infocom for its text adventure games Inform 7 also defaults to writing Blorb files, archives which include the Z-code together with optional "cover art" and metadata intended for indexing purposes. Blorb is a package format for Interactive fiction games Many such games incorporate resources such as Sound effects music or pictures The full set of Inform 7 tools are currently available for Mac OS X, Microsoft Windows and Linux. Mac OS X (mæk oʊ ɛs tɛn is a line of computer Operating systems developed marketed and sold by Apple Inc, the latest of which is pre-loaded on all currently Microsoft Windows is a series of Software Operating systems and Graphical user interfaces produced by Microsoft. Linux (commonly pronounced ˈlɪnəks The March 25, 2007 release added command line support for Linux, and new releases now include an IDE using the GNOME desktop environment under the GNOME Inform 7 SourceForge project. Events 1199 - Richard I is wounded by a crossbow bolt while fighting France which leads to his death on April 6. Year 2007 ( MMVII) was a Common year starting on Monday of the Gregorian calendar in the 21st century. Linux (commonly pronounced ˈlɪnəks A gnome is a Mythical creature characterized by its extremely small size and subterranean lifestyle SourceForgenet is a Source code repository. It acts as a centralized location for software developers to control and manage open source software development [9] The language and tools remain under development;[10] the March 25, 2007 release included a number of changes to the language. Events 1199 - Richard I is wounded by a crossbow bolt while fighting France which leads to his death on April 6. Year 2007 ( MMVII) was a Common year starting on Monday of the Gregorian calendar in the 21st century.
Inform 7 was named Natural Inform for a brief period of time, but was later renamed Inform 7. This old name is why the Inform 7 compiler is named "NI. "[11]
Inform 7 comes with an integrated development environment (IDE) for Mac OS X and Microsoft Windows. The Mac OS X IDE was developed by Andrew Hunter. Andrew Hunter can refer to more than one person Andrew Hunter, a British politician and a member of the Orange Order. The Microsoft Windows IDE was developed by David Kinder.
The Inform 7 IDE includes a text editor for editing Inform 7 source code. Like many other programming editors it features syntax highlighting. It marks quoted strings in one color. Headings of organizational sections (Volumes, Books, Chapters, Parts, and Sections) are bolded and made larger. Comments are set in a different color and made slightly smaller.
The IDE includes a built-in Z-code interpreter. The Z-machine is a Virtual machine that was developed by Joel Berez and Marc Blank in 1979 and used by Infocom for its text adventure games The Mac OS X IDE's interpreter is based on the Zoom interpreter by Andrew Hunter, with contributions from Jesse McGrew. The Microsoft Windows IDE's interpreter is based on WinFrotz. For Frotz the Z-machine implementation see Z-machine#Frotz. Frotz was a verb in MIT Slang, meaning "to play with"
As a developer tests the game in the built-in interpreter, progress is tracked in the "skein" and "transcript" views of the IDE. The skein tracks player commands as a tree of branching possibilities. Any branch of the tree can be quickly re-followed, making it possible to retry different paths in a game under development without replaying the same portions of the game. Paths can also be annotated with notes and marked as solutions, which can be exported as text walkthroughs. The transcript, on the other hand, tracks both player commands and the game's responses. Correct responses from the game can be marked as "blessed. " On replaying a transcript or a branch of the skein, variations from the blessed version will be highlighted, which can help the developer find errors.
The IDE also provides various indices into the program under development. The code is shown as a class hierarchy, a traditional IF map, a book-like table of contents, and in other forms. Clicking items in the index jumps to the relevant source code.
The IDE presents two side-by-side panes for working in. Each pane can contain the source code being worked on, the current status of compilation, the skein, the transcript, the indices of the source code, a running version of the game, documentation for Inform 7 or any installed extensions to it, or settings. The concept is to imitate an author's manuscript book by presenting two "facing pages" instead of a multitude of separate windows. [8]
The Inform 7 compiler generates Inform 6 source code. Inform 6's compiler is then used to generate Z-code output. The Z-machine is a Virtual machine that was developed by Joel Berez and Marc Blank in 1979 and used by Infocom for its text adventure games For historic reasons, the compiler is known as "NI," in reference to the defunct "Natural Inform" name. [11]
Notable features include strong bias towards declarative rule-based style of programming and ability to infer types and properties of objects from the way they are used. For example, the statement "John wears a hat. " creates a "person" called "John" (since only people are capable of wearing things), creates a "thing" with the "wearable" property (since only objects marked "wearable" are capable of being worn), and sets John as wearing the hat.
Another notable aspect of the language is direct support for relations which track associates between objects. This includes automatically provided relations, like one object containing another or an object being worn, but the developer can add his own relations. A developer might add relations indicating love or hatred between beings, or to track which characters in a game have met each other.
Inform 7 is a highly domain-specific programming language, providing the writer/programmer with a much higher level of abstraction than Inform 6, and highly readable resulting source code. The term domain-specific language ( DSL) has become popular in recent years in Software development to indicate a Programming language or Specification
The following is a reimplementation of the above "Hello World" example written in Inform 7. It relies on the library known as "The Standard Rules" which are automatically included in all Inform 7 compilations.
Mystery House Possessed (2005), by Emily Short,[12] was the first Inform 7 game released to be public. Emily Short is the pseudonym of an Interactive fiction (IF Writer, perhaps best known for her debut game Galatea and her use of psychologically It was released as part of the "Mystery House Taken Over" project.
On March 1, 2006, Short announced the release of three further games:[13] Bronze[14] (an example of a traditional puzzle-intensive game) and Damnatio Memoriae[15] (a follow-up to her award-winning Inform 6 game Savoir-Faire) were joined by Graham Nelson's The Reliques of Tolti-Aph[16] (2006). Events 86 BC - Lucius Cornelius Sulla, at the head of a Roman Republic army enters in Athens, removing the Tyrant Year 2006 ( MMVI) was a Common year starting on Sunday of the Gregorian calendar. Savoir-Faire is a piece of Interactive fiction written by Emily Short, about a magician in 18th-century France searching his aristocratic adoptive father's When the Inform 7 public beta was announced on April 30, 2006, six "worked examples" of medium to large scale works were made available along with their source code, including the three games previously released on March 1. Events 313 - Roman emperor Licinius unifies the entire Eastern Roman Empire under his rule Year 2006 ( MMVI) was a Common year starting on Sunday of the Gregorian calendar. [17][18][19]
Emily Short's Floatpoint was the first Inform 7 game to take first place in the Interactive Fiction Competition. Floatpoint is a 2006 work of Interactive fiction written by Emily Short about a Diplomat sent to an endangered colony to discuss evacuation The Interactive Fiction Competition is an annual competition for works of Interactive fiction that has been held since 1995. [20] It also won 2006 XYZZY awards for Best Setting and Best NPCs. [21] Rendition, by nespresso (2007), is a political art experiment in the form of a text adventure game, forcing the player to confront their own complicity. rendition is a 2007 work of Interactive fiction by "nespresso" written using Inform 7 and published in Z-code format in which the player performs Experimental literature refers to written works - often Novels or Magazines - that place great emphasis on Innovations regarding technique and Its approach to tragedy has been discussed academically by both the Association of Computing Machinery[22] and Cambridge University. The Association for Computing Machinery, or ACM, was founded in 1947 as the world's first scientific and educational Computing society The University of Cambridge (often Cambridge University) located in Cambridge, England, is the second-oldest university in the [23]