Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

what language for Newb

20 views
Skip to first unread message

jnelson

unread,
Jan 29, 2007, 9:59:33 PM1/29/07
to
Hi all,
I'm new to IF and am interested in writing a game. What language would
you suggest for a beginner? I have been exploring Inform 7.

Jim Aikin

unread,
Jan 30, 2007, 1:17:28 AM1/30/07
to
> I'm new to IF and am interested in writing a game. What language would you
> suggest for a beginner? I have been exploring Inform 7.

You'll get various answers from various people. The best way to approach the
question may be to download the documentation for various languages and take
a look at how they each approach things.

A lot of people, especially newcomers, seem to like the "natural language"
syntax (or, if you're Steve Breslin, the "natural language" *pretensions*)
of Inform 7.

Another good option is Inform 6. It's very well documented and quite stable.
It's more like traditional programming, but it's not hard to learn.

Unless you're feeling courageous, I would suggest that you stay away from
TADS 3. It's a _wonderful_ language (I'm learning it myself at the moment),
but it's probably too convoluted for the average newcomer. OTOH, if your IQ
is 150+, I'm sure you could learn it without too much sweat.

There are also some simpler languages such as Adrift, Alan, and Quest that
might interest you. I know almost nothing about them.

--Jim Aikin


Nikos Chantziaras

unread,
Jan 30, 2007, 1:27:33 AM1/30/07
to

Basically, what Jim Aikin said, except that he forgot Hugo; an IF
programming language with beginners in mind.

However, if you have a programming background and are familiar with C,
C++ or Java, you should first look at Tads 3. You should feel right at
home. If you've done "lightweight" programming (BASIC maybe?), give
Hugo a try. If programming is something alien to you, I'd say I7 is the
better choice. I7 isn't a procedural language though, so if you
actually do have programming knowledge, I7 could be counter-productive.

I can't really recommend any of the rest of the languages; I'd say
you'll mostly write games with them that no one will play :P (Or maybe
that's just me; never bothered with any game that's not Tads, Z/Glulx or
Hugo. I *once* tried an Adrift one :P)

reg

unread,
Jan 30, 2007, 2:51:12 PM1/30/07
to
I had never programmed anything before I started writing games except
webpages in html.

Because the documentation for TADS is so good, I found it relatively
easy to use. (I started with TADS2 and am now staring a game in
TADS3).

If you will be using TADS3 on a mac (as opposed to PC), I found the
installation of Frobtads a little tricky as you have to install it
using "terminal.app" but the author is coming up with a help file for
command-line newbies that explains step-by-step how to install (I have
the "beta version" of this help file as I created it but there are a
few errors the Frobtads author is helping me iron out).

steve....@gmail.com

unread,
Feb 1, 2007, 9:40:24 PM2/1/07
to
Jim Aikin writes:

> A lot of people, especially newcomers, seem to like the "natural language"
> syntax (or, if you're Steve Breslin, the "natural language" *pretensions*)
> of Inform 7.

I don't think you have to be Steve Breslin to notice that the
naturality of the I7 programming syntax is as highly (en)forced as any
other programming language. The production of the I7 compiler was
largely one of translation: translation of well known rigorously-
defined symbolism into more verbose "English-sounding" syntax, just as
you can translate "if(a==b) c" into "if a equals b, then c." This work
of translation "pretends" to make rigorous symbolism read "naturally,"
but when I say the naturality is pretentious, I only mean that it's a
false appearance. I don't mean to imply anything negative by the term
"pretentious" in this context. (If somebody claimed that I7's syntax
was natural language, I'd say they're doing some pretending, but
that's another issue.)

I don't think you have to be Steve Breslin to notice that the designer
of the system is extremely pretentious in the nasty sense of the term.
E.g.: the compiler doesn't halt because it encountered an internal
error, but lugubrious, luxuriously laments "abject failure." Oh, the
drama. Not that I dislike the injection of personality into the work;
it just depends on the personality. This one is pretentious. I wonder
if the two levels of pretension are related. I sort of have a hazy
feeling that they are, but I think that's only because of the way the
former has been described by the latter.

d...@pobox.com

unread,
Feb 2, 2007, 7:00:55 AM2/2/07
to
On Feb 2, 2:40 am, steve.bres...@gmail.com wrote:
> The production of the I7 compiler was
> largely one of translation: translation of well known rigorously-
> defined symbolism into more verbose "English-sounding" syntax, just as
> you can translate "if(a==b) c" into "if a equals b, then c."

I don't doubt that this translation was a large part of the I7
compiler, but I doubt it is the larger part. Inform 7 does quite a
few things that are unusual in programming languages (well, these
days) that are somewhat seperable from the natural language aspect:
- type inferencing. By which I mean the way Inform 7 will deduce the
type of y in declarations like "x is in y" and "y wears x".
- incremental object declaration. By which I mean the way Inform 7
will allow you to say "x has y" in one portion of the source, and "x
has z" in another portion. The entire declaration of x isn't
constrained to be in one place, lexically speaking.
- automatically creating appropriate grammatical properties for
declared objects. The most obvious case of this is automatically
choosing an indefinite article for "a bat", "some woodworm", "Mr
Darcy", etc.
- identifiers containing spaces. A "great white elephant is in the
conference room". Not only is this very cool (in a CPL kind of way),
but Inform 7 uses this to generate a runtime representation that
allows the player of the game to use the phrasing that the author
used, without any additional effort.

None of these language features were present (as far as I know) in any
IF language prior to Inform 7, so they didn't appear by mere
translation. I'm sure they all required considerable R&D (and I
suspect that at least one of them will continue to cause major
headaches for years to come). Note that none of these features in
themselves demand a natural language form, though the last two make a
natural language input seem like a good fit.

I do like to blow Inform 7's trumpet, so I shall provide some sense of
balance by pointing that very few of these features are new. ML has
type inferencing built deeply into the language and provides a
rigourous foundation for it (at least for functional types). The
incremental declaration feature is somewhat reminiscent of defmethod
in Common Lisp, in that all the relevant methods of a class do not
need to be declared anywhere near the class itself; its also vaguely
reminiscent of the way an Objective C programming can extend someone
else's class with extra methods. CPL allowed identifiers to contain
spaces (though it used bold type for its keywords). Assigning an
indefinite article is of course a ridiculous concept in normal
programming languages but a natural problem area for IF languages; I'm
not surprised that I can't think of an analogue amongst existing
programming languages. The technology itself reminds me of the slime
mold in nethack.

drj

d...@pobox.com

unread,
Feb 2, 2007, 7:08:25 AM2/2/07
to
On Feb 2, 12:00 pm, d...@pobox.com wrote:
> I do like to blow Inform 7's trumpet.

No I don't. I meant to say "don't" not "do" in that sentence.
*sigh*. drj

0 new messages