SourceForge.net Logo

IFL: Interactive Fiction Language

Last updated on May 8, 2004.

Welcome to the home page of IFL! Please excuse the simplicity of the design layout of this page: I am a programmer, not a web designer! Besides, if you are a fan of the genre of games known as interactive fiction or text adventures, should should feel right at home ;-)

IFL is a programming language that I designed for writing interactive fiction. Like many of the languages that have preceded it, IFL is compiled into a game file that can be loaded and executed on an interpreter, or virtual machine.

IFL is a weakly-typed object-oriented language. By weakly-typed, I mean that all variables and object properties can hold a value of any type. While objects are declared as being of a particular class, references to objects are also typeless, although you can determine the class of a object at run-time. This results in a language syntax that is considerably simpler than, say, C++ or Java.

Indeed, my primary goal was to design a language that is free of as much syntaxical garbage as possible, so that game writers can concentrate on the development of the game itself. In addition, the virtual machine contains it's own sentence parser, which enables the language to provide a very simple syntax for declaring legal sentences and their resulting actions. Finally, the object-oriented nature of the language makes it very easy to define generic class-based actions that can be overridden by specific object-based actions.

Documentation and source code for the first beta release of IFL is now available from the main project page. Please note that the documentation is currently in the form of a reference manual; a tutorial and sample IFL code will be available later.

IFL is a work in progress. However, it is sufficiently feature-complete that it is possible to write games in it already, and a compiler and interpreter for IFL has already been developed. It was written on Linux, but given that it only requires a text interface, it should be very easy to port to other operating systems. Please don't hestitate to let me know if you'd like to see IFL ported to a different operating system.