It's been a long time since I tried writing any interactive fiction
and now that I want to try again it seems best to open myself up to
starting from scratch... but I simply can't picture having the time or
brainpower to learn more than one language at the moment.
Because I don't have a specific project in mind I'm asking for a
general "best" rather than one specifically for multimedia or AIs or
whatever. I don't have much of a programming background but do like
to get creative from time to time, so I'm looking for something where
it is easy to learn the basics but can be forced to do more complex
stuff if the situation calls for it.
I have used TADS in the past (ten years ago?) and liked it for the
most part. Building individual rooms and items and linking them in a
normal way was straightforward but I was able to do more with some
help.
Ideally whatever language is suggested would have some sort of active
following so that I can get help and find open-source projects to
learn from.
Thanks so much for your help.
Inform 7 is very popular, and you'll find lots of support from the
community. The program development interface (the IDE) is
cross-platform. On the downside, the syntax is ... well, it tries to be
friendly to non-programmers, but it doesn't always succeed.
The TADS 3 Workbench application is only available for Windows (unless
you have something like Bootcamp on your Mac, for instance). TADS is
arguably a more powerful and more fully developed system than Inform 7.
It's harder to get started with initially, in my experience, but has the
advantage that the syntax is always unambiguous and clearly documented.
Inform 7 tends to be a little fuzzy around the edges. I like to say that
the learning curve of I7 is concave (shallow at the beginning, but
getting steeper as you go along) while the learning curve of T3 is
convex (initially rather steep, but easing off as you go along).
The T3 debugging tools are better, but I7 has some unique utilities such
as the Transcript that are not found in T3.
The TADS 3 community is smaller, but nonetheless is active and helpful.
(We even have a semi-active Study Group.)
Inform 6 is still used by some people. It has nothing in common with
Inform 7, in spite of the name. It's a very solid and very capable
language, but lacks some modern enhancements (unless you build them
yourself).
Source code for games is available in all three systems.
I'd suggest downloading all three and spending an hour or two poking
around in the documentation. You'll soon get a feel for what sort of
coding makes intuitive sense to you.
--JA
Hugo is every bit as defensible as I6.
Adam
In terms of its features, you may be right. It has, I believe, some
multimedia support that goes beyond I6, but my vague recollection is
that the latter may be Windows-specific.
In terms of an active community of programmers or available source code
... I have no idea. I'll let someone else speak to that. My impression
is that the Adrift community is more active than the Hugo community, but
that's not, I would hasten to add, a recommendation for Adrift.
--JA
There are no "general purposes," really. :) But TADS3 and Inform (both
6 and 7) have active, knowledgeable communities.
Multimedia also works in the Hugo Engine for Macintosh, if I remember
correctly. At one point, when FutureBoy! was new, I remember seeing a
varieity of graphics-enabled screenshots on more than just Mac and Windows.
At least, I think I did.
> In terms of an active community of programmers or available source code
> ... I have no idea. I'll let someone else speak to that. My impression
> is that the Adrift community is more active than the Hugo community, but
> that's not, I would hasten to add, a recommendation for Adrift.
Well, there's definitely no dancing around those points. As far as I know,
the only two active Hugo users/authors are Robb Sherwin and myself, and
"active" could be a stretch seeing as neither of us have released a new game
in the last three years. There are others who have used or would use Hugo,
but without any recent results. I think Robb has at least one WIP, as do I,
but it doesn't look as though there's ever going to be a surge in Hugo
authorship. This might, sadly, be as good as it gets.
One plus is that the Hugo games that *do* come out seem to be fairly well
received. I'd like to think I'm good enough at it now to come up with some
worthwhile stuff. I think Robb would agree (about himself, of course), and I
remember him commenting before that he's well past the point where he feels
comfortable just releasing any old thrown-together thing (not his exact
works -- those would be mine, since I share the sentiment). It certainly
slows down the release of new Hugo games, but hopefully it's to better
results.
As for the language itself, it does about everything I need it to. Every
once in a while, I'll come up with some crazy idea that just can't be done
in Hugo (or can't be done easily). One of my games -- Distress, most
likely -- would have benefitted from being able to understand three objects
in a command, instead of only two (and I think it was "tie ribbon to spike
and rock"). I might have tried "multiheld" (which is how Hugo allows
multiple objects), but I think this doesn't work with xobjects (indirect
objects). I don't remember now. But yeah, things come up every once in a
while, but generally I can work around it.
Another example is that I'm not happy with the default paragraph formatting
in Hugo, where each new paragraph is indented but single-spaced. I like what
seems to be the more readable standard for IF, which is no line indents, and
double-spacing between paragraphs. That took a little bit to work out, but
you can see the difference it makes just by comparing The Traveling
Swordsman to my previous two games.
At this stage, I'm not bothered by any lack of source code or examples
(although there are enough of both available -- plus the Hugo manual -- that
it shouldn't be a big deal anyway). And I'll answer any Hugo question put to
me, if I'm able. Granted, one or two people aren't nearly the large resource
that Tads and especially Inform users have come to expect, but at least it's
not completely non-existent. :)
Hugo *could* support extensions. It's just a matter of releasing code
snippets. I've written a few useful things, including a modified version of
"star-for-commenting-transacripts" (I forget who came up with the original).
There are a few interesting things on the source code (already released) for
the games I've done. But a *lot* could be done. I had to write as much
grammar (verb/command defs) for Swordsman as what was already there in the
Hugo core library (and I re-wrote quite a bit of it, just to be more robust
and fit with the theme of the game). I can see room for improvement in the
libraries, the grammar, etc. Somebody writing their first Hugo game could
easily struggle with quite a bit of clunkiness just because they don't
extend the basics enough, ending up with a game that feels a lot less
polished than it would if there were better reusable libs already out there.
Don't get me wrong -- the Hugo libs do things that are add-ons in some
last-gen IF languages, like attachables and automatic plural objects (i.e.,
5 rocks referred to with things like "drop 3 rocks") and disambiguation like
"which do you mean?" where "either" and "both" are actually valid answers.
It's no slouch, even out of the box.
I like that it's a programming language with a class/object concept -- not
fully OOP on all points, but close enough to adapt some of the same
concepts. It has a lot of power and is capable of producing some top-notch
IF if ever put into the right hands. I'm going to keep using it -- as I
suspect Robb will -- because it does what I want and I'm familiar with it.
But future potential -- well, like I said, it doesn't seem like there's
going to be any sort of Hugo surge. Hugo isn't *more* powerful than Inform
or TADS, and with the larger support base for either, it's no surprise that
Hugo isn't an attractive choice.
Not much of a sales pitch, I know. But there you have it.
---- Mike.
-- Erik
I think the answer all depends on the disposition of Gen. Purposes. :)
INFORM and TADS are the largest communities, so I guess you'd be best
starting off there.
--
Poster
www.intaligo.com I6 libraries, doom metal, Building
sturmdrangif.wordpress.com Game development blog / IF commentary
Seasons: fall '09 -- One-man projects are prone to delays.
> As far as I know, the only two active Hugo users/authors are Robb
>Sherwin and myself, and "active" could be a stretch seeing as
>neither of us have released a new game in the last three years. There
>are others who have used or would use Hugo,
>but without any recent results. I think Robb has at least one WIP, as do I,
>but it doesn't look as though there's ever going to be a surge in Hugo
>authorship
Yeah, I started making something lengthy in April of 2006 and that,
coupled with shrinking free time as I have grown older, has made it
take forever. I don't think I'll ever try making something that can't
be played in two or three hours, going forward.
(When you're ready for someone to bounce through your WIP, let me
know, by the way.)
>As for the language itself, it does about everything I need it to. Every
>once in a while, I'll come up with some crazy idea that just can't be done
>in Hugo (or can't be done easily).
I think the only thing I've missed is animated GIF or PNG support. (I
think Compuserve held rights to the GIF format when Hugo was first
released, effectively preventing its inclusion.) But since it supports
AVI, it's not a big deal. I'm also not pushing the bounds of
simulation or anything, of course.
>At this stage, I'm not bothered by any lack of source code or examples
>(although there are enough of both available -- plus the Hugo manual -- that
>it shouldn't be a big deal anyway). And I'll answer any Hugo question put to
>me, if I'm able.
Thanks, by the way, for releasing the source to your stuff. I'll start
doing the same for my previous games after I finish the thing I am
working on now. But from what you have contributed, and the selected
source to Future Boy, I think there's a pretty complete set of
reference material. I had completely forgotten what was necessary for
plural classes, so I grabbed the code to the Traveling Swordsman. Much
appreciated!
>I like that it's a programming language with a class/object concept -- not
>fully OOP on all points, but close enough to adapt some of the same
>concepts. It has a lot of power and is capable of producing some top-notch
>IF if ever put into the right hands. I'm going to keep using it -- as I
>suspect Robb will -- because it does what I want and I'm familiar with it.
I plan on using it indefinitely, yeah. I switch between programming
languages a lot at work, and it's nice to have been able to use Hugo
for 10 years now. (I liked Inform and liked what I read of HTML Tads
when Mike Sousa and worked together, too.) When I was a kid, I bought
as many Magnetic Scrolls games as I could - they were the first text
games I played, except for the first two Zorks - and Hugo lets me make
games in that style. For me, it's been perfect. I'm happy.
Robb
--
Robb Sherwin
www.joltcountry.com
www.caltrops.com
Inform games have a wider potential audience. There doesn't seem to be
a Hugo interpreter for Android or iPhone, for example.
vw
You may find it helpful to read my comparison of TADS 3 and Inform 7
at http://brasslantern.org/writers/iftheory/tads3andi7.html. It's
very slightly out of date in that there have been releases of both
systems since I wrote the article, but it should give the OP a
reasonable idea of what the main differences are.
-- Eric
I'd suggest reading the intro material for these three languages; the
one where you can read the source code most easily and understand the
logic is probably your best bet.
Something you may want to know is that Inform7 is built on top of
Inform6. Inform7 code is turned into Inform6 code when the game file
is built; and I'm told that you can (sometimes maybe you have to)
break into writing Inform6 in the middle of programming an Inform7
game.
So, there's an advantage in learning Inform6, in that it may prepare
you to understand Inform7 especially well, if you ever want to pick it
up.
--Speculation on my part, as I don't know the Informs. Anyone care to
comment?
Conrad.
ps - I personally like TADS, but I'm in the minority there.
A couple of months ago I was at the same place you are today. I had a
choice: go back to using Adrift (the easy way) or learn I7 (the hard
way). The easy way had severe limitations for what I wanted to
achieve. "Easy" comes with significant limitations on storytelling.
"Hard" has more potential. So I chose to make a commitment of time and
effort to try to learn I7.
The big benefit for going to I7 was the potential for using Parchment
as a web interface for players. Instead of downloading the file and
the program to make it work, all a person has to do is go to my
website and click on the link to play the game. So someone in a public
library could play on the library computer. Or someone who arrives at
the website can begin the story without any effort. The only problem
is that parchment comes with limitations on story length. (I think you
could do the same thing with TADS games.)
As I build my story in I7 I am challenged to put my imagination to
work. You can create any story you want within the generous
limitations of I7. I am still a wet-behind-the-ears newbie on using
I7, but I enjoy learning bit by bit by continuing to read and reread
the excellent documentation and learning from the pros in this group.
Learning I7 will take real commitment (with great help here). If you
want to just get something up and going quickly, Adrift is an
excellent choice. The story you want to tell might work well within
its limitations. But if you want to learn to use a tool that is more
flexible and are willing to make that commitment, go with I7.
Personally, I love the natural language of I7. But I come to I7 as a
storyteller, not a programmer (though learning I7 is making me one).
Chuck
Most I7 authors never mess with I6. At most, you might find yourself
inserting a line or two of code that an expert suggested to you. If
you're writing an extension that does something tricky, it's an entirely
different story.
I6 is not difficult to understand, and the manual is superb. Both I7 and
T3 are more complex, and require more study.
In addition, as someone else pointed out, I7 tends to produce more
bloated code than I6. If you're writing a game that you want people to
play on hand-held devices, this is perhaps a significant factor. If
you're targeting computer users, it's totally a non-issue.
--JA
Gah. Blocked from work. I wish I could tell the nanny that I'm on my
break.
Anyway, thank you to everyone for posting here, it's been a big help.
I downloaded and played with I7 last night and was simultaneously
impressed and frustrated. The intuitive, conversational-style
programming left me playing "guess-the-verb" at times, which I've
never had to do while PROGRAMMING a game before. I like a lot of the
functions and I like the interface, though.
T3 has some advantages to it in some of the things it just takes care
of without asking. I'm sure I7 can be made to do all of these things,
I'm talking about simple stuff like the default existance of ceilings
in indoor rooms. It doesn't LOOK as pretty, but I'm not bothered by
that. In addition I have discovered that my brother is working with
TADS 3 and so I can bounce some stuff off of him.
I'm going to give I7 another shot anyway after work today, but I'm
leaning towards TADS. You can all look forward to me pestering you
with questions some time in the coming months.
Thanks again.