I'm a programmer, and I want to write a text adventure. What languages / systems would be familiar to me?

+1 vote
406 views
asked Mar 29 in Authoring by Paul_Erdos (39 points)
edited Mar 29 by Paul_Erdos

I'm really familiar with C, C++, and whatnot. I've been using Inform 7, but I've also seen things which look more like C, which I presume is Inform 6. I'd also like to build the compiler and do things with my command line, because I'm a bit of a prude. (= What limitations would using Inform 6 have, and would it afford me more control over what happens in my adventure? I feel like Inform 7 is somewhat loose, and is occasionally harder for me understand than something else might be. I'd also maybe find it easier to use more C-like variables and types, C++ like classes, and whatnot. Any advice or suggestions / alternatives would be appreciated.

commented Mar 29 by Paul_Erdos (39 points)
Also, how new is this whole thing? Have text adventures recently become more popular?
commented Mar 29 by Dannii (329 points)
This question is a bad fit for this site. You're asking if it is better or easier, but you haven't told us what you want it compared to. You also haven't given us what criteria you want these things compared by. Please edit it or this will have to be closed as not being clear enough. Hope you can edit it soon. :)
commented Mar 29 by bg (692 points)
It's tagged Inform 6 and Inform 7, so I was assuming those were the two to be compared.
commented Mar 29 by Paul_Erdos (39 points)
I don't really know what my criteria are. I can guess at it, but the reason for the question is to determine / compare Inform 6 and 7, or maybe have someone point out an entirely different language that would be more familiar to a programmer. Anyways, I added some things I might look for, and I mentioned Inform 7, too.
commented Mar 29 by Paul_Erdos (39 points)
edited Mar 29 by Paul_Erdos
Cool, thanks!

Side note, I feel like this is a valuable question: It might help people who are just getting started to better direct them towards something they might like to use, and that maybe it shouldn't be downvoted.

But that's none of my business. (=

4 Answers

0 votes
answered Mar 30 by Paul_Erdos (39 points)
edited Mar 31 by Paul_Erdos
 
Best answer

There are some comparisons available already, such as this one on Brass Lantern, which compares Inform 7 and TADS. Firth's Cloak of Darkness Page details a program to compare various platforms by the way they compile a specific text. It's wiki also has some comparisons.

Having reviewed the other answers, and after searching a bit on my own, the answer is definitely TADS. It looks like C, it compiles like Javascript, and manages memory for you.

Inform 6 isn't immediately identifiable as an imperative language like C, and on the off-chance that you know Prolog (you don't, nobody does) you'd probably be more familiar with it.

Inform 7 is the most like natural language, but
[warning: opinions]
I think it's somewhat sloppy and poorly specified, and I would imagine that non-programmers might find some of the language arbitrary or unclear.

Quest seemed to have a very healthy IDE, and I didn't see much code. hegemonkan pointed out that it parses = such that you can do comparisons with just =, which
[warning: opinions]
indicates to me that it's aimed at people without CS degrees, and might contain other bowdlerized nonsense like Python, which us real programmers look down upon. (=

Sarcasm and superiority complexes aside, if you're a programmer, it seems like TADS is your language.

commented Mar 31 by Hanon Ondricek (16 points)
TADS is what I'd recommend for you also, as I've heard it is more logical for programmers, and yes I7 is aimed more at writers who are not so left-brained as pure programmers.  I7 code that is well-written and organized is an art form in itself and almost can be enjoyable to read like prose.  Sloppy I7 can work perfectly fine but still be incomprehensible to sort out.
+1 vote
answered Mar 30 by bg (692 points)
edited Mar 30 by bg

Though I can't answer your question directly, perhaps these resources can be of help. (No doubt some things have changed since these were written.)

An intfiction.org discussion of Inform 6, Inform 7, and TADS 3 (from 2012)
http://www.intfiction.org/forum/viewtopic.php?f=7&t=2230

Inform 7 Programmer's Manual by Ron Newcomb (from 2011)
http://www.plover.net/~pscion/Inform%207%20for%20Programmers.pdf

"A Comparison of TADS 3 and Inform 7" by Eric Eve (from 2007-2008)
http://brasslantern.org/writers/iftheory/tads3andi7.html

+1 vote
answered Mar 31 by peterorme (104 points)

Cloak of Darkness seems relevant to this question. The idea of Cloak of Darkness was to write a specification for a small game, and then implement that in various IF systems to see what the code would look like.

While I still think this is a good idea, the original site for this -- Roger Firth's Cloak of Darkness page -- is not actively maintained, and the ifwiki page for Cloak of Darkness does not really offer a good side-by-side comparison.

FWIW, there's a Cloak of Darkness version in gamefic, which is pure Ruby, currently here: gamefic Cloak of Darkness at github.

commented Mar 31 by Paul_Erdos (39 points)
Those sites are a much more complete answer than mine, I'll update it accordingly, putting the well known sites and stuff first, and then my shoddy opinion a few lines after it. (=
0 votes
answered Mar 30 by hegemonkhan (161 points)
edited Mar 30 by hegemonkhan

Alex' Quest Text Adventure program~software~engine:

http://textadventures.co.uk/quest
http://forum.textadventures.co.uk/index.php
http://docs.textadventures.co.uk/quest/

You might also want to look into using Quest too, though if you're already familiar with Inform, then use that obviously, as you'll have to learn Quest if you want to use it.

But, Quest is extremely powerful (for those who are good programmers), as the entire engine is made up of individual libraries, thus you could code in own engine! And, it also has a very user-friendly and powerful GUI~Editor for those who are terrified of code.

Albiet there's still a learning curve (as with any engine~kit) as even with not using~doing any code writing at all, you're still needing to be able to use code~if concepts~logic, in order to actually make a game, which some people don't realize, along with learning quest and~or its code, too, obviously.

(As best as I understand, which is nill, lol, so take this with a 'grain of salt', as I don't really know what I'm talking about here, lol) Quest currently uses XML mostly at the user~surface level (and can use JS and HTML too), and maybe some other languages too. Not sure what the engine uses though. I'm not at the code ability to try to dive into and start understanding the engine's code yet, lol.

Alex is currently completely rebuilding Quest for its newest version, known as 'QuestKit', which will use JS fully and etc, which is more useful than its current version of XML usage.

Quest's XML, or just XML, is I think very different from the common languages (C, C++, JS, and etc...), as it is more 'wordy' (which I like, as all the code~prompt symbols confuse me, laughs).

So, you got an already powerful engine to use with quest to immediate make+code your game, and~or you can completely build your own engine for~with quest too.

Lastly, if you're commerical interested in game making, it's fully open to you with Quest to make a profit off of the quest games you make, though obviously see the quest site and~or speak to Alex as to (maybe) the actual fine (legal) print, law and lawyers, you probably know of in being a programmer, but at least it otherwise (fine print aside), is commericially allowed.

I forgot, that you can also translate it easily, via its structure of 'TEMPLATES' and etc, too.

Quest is also open-sourced, there's a 'developers' page for you programmers... (I'm using quest to learn to code, lol)

Quest also has great reources and a great friendly and helpful community, albiet small, lol.

Oh, Quest is Object-Oriented Programming structured too, so if you can grasp this general syntax of mine, you already got Quest's code 90% understood, lol:

also, the quest engine handles the parsing of '=' and '==', so you just have to use only '=', to make it more non-coder friendly. And, there's some other differences too from the other languages obviously.

Attributes:

Objectname.Attributename = ValueorExpression

example: player.strength = 100

the 'if' Script:

if (Objectname.Attributename OPERATOR ValueorExpression) { scripts } else if (Objectname.Attributename OPERATOR ValueorExpression) { scripts } else { scripts }

example:

if (player.strengthinteger > 66) {
-> player.strengthstring = "strong"
} else if (player.strengthinteger < 33) {
-> player.strengthstring = "weak"
} else {
-> player.strength_string = "average"
}

I'm not familiar with Inform (or all the other engines~kits~programs~software, like TADs, UNREAL, RPG Maker, Flash Player~ActionScript, RAGS, and etc) at all, so I don't know how it (they) compares to Quest. So, forgive my advocacy of Quest, as I just don't know about any of the others.

This site is now closed.
As of 1st November 2015, this site is a read-only archive. For more information see the intfiction forum post

Welcome to IF Answers, a site for questions and answers about Interactive Fiction.

Technical questions about interactive fiction development tools such as Inform, Twine, Quest, QuestKit, Squiffy, Adrift, TADS etc. are all on-topic here.

Non-technical questions about interactive fiction are also on-topic. These questions could be about general IF design, specific games, entering the IF Comp etc.
...