Text Adventure Development System: Difference between revisions

Content deleted Content added
History: organized the history section into paragraphs, instead of single sentences separated by line breaks. Someone else is welcome to improve the paragraph grouping.
Removing link(s) to "Uncle Zebulon's Will": Removing links to deleted page Uncle Zebulon's Will.
 
(96 intermediate revisions by 69 users not shown)
Line 1:
{{Short description|Programming language and IDE for interactive fiction}}
'''TADS''' is a programming system for creating [[interactive fiction]] games. The name is an [[acronym]] for "Text Adventure Development System".
{{for|the military aircraft targeting system|Target Acquisition and Designation System, Pilot Night Vision System}}
{{more citations needed|date=July 2015}}
{{Infobox programming language
| name = TADS
| logo =
| caption =
| file ext =
| paradigm = [[prototype-oriented programming|prototype-based]], [[___domain-specific language|___domain-specific]]
| released = {{start date and age|1988}}
| designer = Michael J. Roberts
| developer = Michael J. Roberts
| latest release version = Version 3.1.3
| latest release date = {{start date and age|2013|5|16}}
| typing = [[Strong typing]], [[type inference]]
| programming language =
| platform =
| operating system = [[Amiga]], [[BeOS]], [[DOS]], [[Microsoft Windows]], [[Unix]] ([[Linux]], [[Mac OS X]]), others
| license = TADS 2 [[Freeware]] source code{{clarify|date=July 2015}}
| website = {{URL|www.tads.org}}
}}
 
'''Text Adventure Development System''' ('''TADS''') is a [[prototype-based programming|prototype-based]] [[___domain-specific language|___domain-specific]] [[programming language]] and set of [[standard library|standard libraries]] for creating [[interactive fiction]] (IF) games.
 
==History==
The original TADS 1 was released by [[High Energy Software]] as [[shareware]] in 1988, and was followed by TADS 2 not long after. From the late 1980s to early 1990s, free development tools such as TADS and [[Inform]] enabled amateur communities to create [[interactive fiction]].<ref>{{cite book |title=Interactive Digital Narrative |date=2015 |publisher=Routledge |isbn=978-1-138-78239-6 |page=23 |url=https://books.google.com/books?id=3ZsGCAAAQBAJ&pg=PA23 |access-date=25 April 2020}}</ref> In the mid-1990s, TADS was a top development tool for interactive fiction.<ref>{{cite book |last1=Montfort |first1=Nick |title=Twisty Little Passages: An Approach to Interactive Fiction |date=2005 |publisher=MIT Press |isbn=978-0-262-63318-5 |page=201 |url=https://books.google.com/books?id=XiJFORKEm0oC&dq=TADS&pg=PA201 |access-date=25 April 2020 |language=en}}</ref> At the time, it was a more improved tool for [[Text parser|parsing]] and world building than existing systems like AGT ([[Adventure Game Toolkit]]).<ref>{{cite book |last1=Short |first1=Emily |author-link1=Emily Short |editor1-last=Ryan |editor1-first=Marie-Laure |editor2-last=Emerson |editor2-first=Lori |editor3-last=Robertson |editor3-first=Benjamin J. |title=The Johns Hopkins Guide to Digital Media |date=2014 |publisher=JHU Press |isbn=978-1-4214-1223-8 |page=290 |chapter-url=https://books.google.com/books?id=qC0_AwAAQBAJ&dq=TADS%201990%20interactive%20fiction%20AGT&pg=PT304 |access-date=27 April 2020 |language=en |chapter=Interactive Fiction}}</ref>
The original TADS 1 was released by [[High Energy Software]] as [[shareware]] in the late [[1980s]], and was followed by TADS 2 not long after. In the early [[1990s]], TADS established itself as the number one development tool for [[interactive fiction]], in place of simpler systems like AGT ([[Adventure Game Toolkit]]).
 
[[GrahamTADS Nelson]]'s2 syntax is based on [[InformC (programming language)|InformC]] has, sincewith itsbits release inof [[1993Pascal (programming language)|Pascal]], slowly gained popularity and superseded TADS in the last half of the 1990s. Nevertheless, TADS 2 has been maintained and updated at regular intervals by its creator, [[Michael J. Roberts]], even after it became freeware in [[July 1996]]. MultimediaGraham TADSNelson, introducedcreator inof [[1998]]Inform, allowsdescribes gamesInform toand displayTADS graphics,as animationthe and"only playtwo sounds,systems... widely ifused" in the platformlast supportshalf it.of the 1990s,<ref name="DM4">{{cite web
| url = http://www.inform-fiction.org/manual/html/s46.html#p369
| title = DM4 §46: A short history of interactive fiction
| access-date = 2007-09-03
|date=July 2001
 
| last = Nelson
Recently, TADS received a major overhaul with the release of TADS 3, which is a complete rewrite of the TADS engine, only retaining the platform-dependent code to ease [[porting]]. TADS 3 has many new features, such as efficient dynamic objects (with [[garbage collection (computer science)|automatic garbage collection]]), structured [[Exception handling|exceptions]], native [[UTF-8]] strings, and many useful function classes.
| first = Graham
| work = The Inform Designer's Manual
}}
</ref> and TADS has been called "The second most commonly used IF programming language today".<ref name="Maher">{{cite web
| url = http://maher.filfre.net/if-book/if-8.htm
| title = Chapter 8: The Growth of Hobbyist IF
| access-date = 2010-09-17
| year = 2006
| last = Maher
| first = Jimmy
| work = Let's Tell a Story Together (A History of Interactive Fiction)
}}</ref> Multimedia TADS, introduced in 1998, allows games to display graphics, animation and play sounds, if the platform supports it.
 
In 2006, TADS received a major overhaul with the release of TADS 3, which is a complete rewrite of the TADS engine, only retaining the platform-dependent code to ease [[porting]]. TADS 3 uses a language with a syntax that resembles [[C++]] and [[Java (programming language)|Java]]. It has many new features, such as efficient dynamic objects (with automatic [[garbage collection (computer science)|garbage collection]]), structured [[exception handling|exceptions]], native [[UTF-8]] strings, and many useful function classes.
According to the [http://www.tads.org official TADS website], as of [[August 2005]], the TADS 3 system is in its [[Development stage#Release candidate|release candidate]] stage[http://www.tads.org/t3dl.htm]. While TADS 3 is still subject to last-minute changes, and while its documentation is incomplete, the TADS 3 [[compiler]] and [[interpreter (computing)|interpreter]] are stable and they have been ported to the [[Unix]], [[Apple Macintosh|Macintosh]] and [[DOS]] [[platform (computing)|platforms]]. Several TADS 3 games have already appeared in the [[2002]], [[2003]], [[2004]], and [[2005]] [[Interactive Fiction Competition|IF Competitions]].
 
The TADS 3 [[compiler]] and [[interpreter (computing)|interpreter]] have been ported to the [[DOS]], [[Mac (computer)|Macintosh]] and [[Unix]] [[platform (computing)|platforms]]. Several TADS 3 games have been released.
 
==TADS games==
Games written in TADS are compiled to a platform-independent format that can be played on any computer for which a suitable [[virtual machine]] (VM) exists. Such virtual machines exist for mostseveral platforms, and in this respect, TADS closely follows the example of the original [[Infocom]] [[Z-machine]], as well as modern languages such as [[Java (programming language)|Java]] and [[C Sharp (programming language)|C#]].
 
Whereas the TADS 1 and 2 VMs had to [[parse]] the commands entered by the player, before sending the results on to the game, TADS 3 employs a more general-purpose virtual machine, where the command-parsing is done by the game code itself, akin to Inform. The rationale for this is that it is easier to customize the parser.<ref>{{cite web|last=Roberts|first=Michael J|title=Differences between TADS 2 and 3|url=http://www.tads.org/t3_feat.htm|work=TADS Website|publisher=Michael J Roberts|access-date=2012-01-05}}</ref>
 
===Notable games developed in TADS 2===
==The programming language==
* ''Uncle Zebulon's Will'', by Magnus Olsson (1995). It won the TADS category at the inaugural 1995 [[Interactive Fiction Competition]] and was included on [[Activision]]'s 1996 commercial release of ''[[Classic Text Adventure Masterpieces of Infocom]]''.
TADS 2 is based on [[C programming language|C]], with bits of [[Pascal programming language|Pascal]].
* ''The Frenetic Five vs. Sturm und Drang'', the first game in the "[[Frenetic Five]]" series by [[Neil deMause]] (1997). The game won a [[XYZZY Award for Best NPCs]] that year.
* ''Worlds Apart'' by Suzanne Britton (1999). Winner of [[XYZZY Award for Best Story]] and finalist in seven other XYZZY Award categories in 1999, the game features a huge amount of detailed worldbuilding.<ref>{{Cite book|last=Montfort|first=Nick|url=http://www.digitalhumanities.org/companionDLS/|title=A Companion to Digital Literary Studies|publisher=Blackwell|year=2008|editor-last=Schreibman|editor-first=Susan|___location=Oxford|chapter=Riddle Machines: The History and Nature of Interactive Fiction|editor-last2=Siemens|editor-first2=Ray}}</ref>
* ''[[Kaged]]'' by Ian Finley (2000). Winner of the 2000 annual [[Interactive Fiction Competition]].
* ''[[1893: A World's Fair Mystery]]'' by [[Peter Nepstad]] (2002). The game is one of a handful to be released commercially in recent years, garnering attention from the New York Times<ref name="NYT">{{cite web
| url = https://www.nytimes.com/2005/01/30/business/yourmoney/30goods.html?ex=1264827600&en=49db8c4b16ce38ac&ei=5088
| title = A Game With A Low Body Count
| access-date = 2007-09-03
| date = 2005-01-30
| author = Brendan I. Koerner
| work = New York Times
}}
</ref> and the Associated Press.<ref name="AP">{{cite web
| url = http://www.columbiachronicle.com/back/2003_spring/2003-04-07/arts5.html
| archive-url = https://archive.today/20130102123755/http://www.columbiachronicle.com/back/2003_spring/2003-04-07/arts5.html
| url-status = dead
| archive-date = 2013-01-02
| title = '1893' has history, mystery
| access-date = 2007-09-03
| date = 2003-04-07
| author = Nick Wadhams
| work = Columbia Chronicle Online
}}</ref> It also won the 2002 [[XYZZY Award for Best Setting]].
 
===Notable games developed in TADS 3===
A [[Hello world program]] isn't that simple to write in TADS 2, because TADS 2 requires a working [[world model]] to compile.
* ''Max Blaster and Doris de Lightning Against the Parrot Creatures of Venus'' by [[Dan Shiovitz]] and [[Emily Short]] (2003). Winner of the 2003 [[Spring Thing]]; a somewhat unusual example of multiple [[player character|player characters (or PCs)]].{{Citation needed|date=November 2008}}
* ''[[The Elysium Enigma]]'' by [[Eric Eve]] (2006). Eve was awarded [[XYZZY Award for Best Game]], [[XYZZY Award for Best Individual NPC]], and took third place in the 2006 annual [[Interactive Fiction Competition]].
 
==See also==
#include <adv.t>
* [[Interactive fiction#Development systems]], lists software similar to TADS
#include <std.t>
* [[Inform]] The other leading IF development system
&nbsp;
* [[Hugo (programming language)|Hugo]] The Hugo development system
replace commonInit: function
{
"Hello World!\n";
quit;
}
&nbsp;
startroom: room; // We must define a startroom object.
 
==References==
Of course, the goal of TADS 2 is to make Interactive Fiction (and not Hello World programs) simple to implement.
{{reflist|30em}}
 
Nevertheless, TADS 3 dispenses with the requirement of a working world model, and also abandons the Pascal elements of the language.
 
function main(args)
{
"Hello World!";
}
 
==See also==
* [[Interactive fiction]]
* [[Inform]]
* [[Hugo programming language|Hugo]]
 
==External links==
* {{Official website}}
* [http://teladesign.com/tads/ The TADS page]
* [https://archive.today/20130105023649/http://wwwteladesign.com/tads.org/ The official TADS web sitepage]
* [http://wurb.com/if/platform/2 TADS 2] and [http://wurb.com/if/platform/39 TADS 3] games on Baf's Guide
* [http://www.firthworks.com/roger/cloak/tads/index.html Cloak of Darkness: TADS] presents a short game implemented in TADS, as well as other languages for comparison.
* [https://web.archive.org/web/20100130065238/http://lists.v-space.org/listinfo/tads3/ The TADS 3 mailing list]
;Interpreters
* [http://mirror.ifarchive.org/if-archive/programming/tads2/executables/ TADS 2 interpreters for several platforms]
* [http://wwwinky.drizzle.com/~dansorg/if/jetty/ Jetty] - Java Applet Interpreter for TADS 2 games
* [http://www.tads.org/t3dltads3.htm TADS 3 interpreters for DOS, Windows, and source for Unix]
* [http://www.hypertadsteladesign.orgcom/hypertads/ HyperTADS]{{dead link|date=September 2015}}, a Mac OS multimedia interpreter for TADS 2 and 3
* [http://www.firthworks.com/roger/cloak/tads/index.html "Cloak of Darkness" in TADS] (A sample game coded in several languages, to demonstrate the coding of each)
* [http://lists.v-space.org/listinfo/tads3/ The TADS 3 mailing list]
* [http://rtads.org Russian TADS]
 
{{DEFAULTSORT:Tads}}
[[Category:1988 software]]
[[Category:Domain-specific programming languages]]
[[Category:Freeware]]
[[Category:TextInteractive adventure gamefiction engines]]
[[Category:Video game development software]]