Discussion:
Inform 6 vs TADS 3 - or: If it weren't for the Z-machine ...
(too old to reply)
Sabahattin Gucukoglu
2007-10-02 03:57:57 UTC
Permalink
Here's my problem: I like Inform 6 (great documentation, down to the metal,
great libraries for its time, etc, etc, etc). I like TADS 3 too, of
course, for much the same set of reasons, but with the added bonus that
it's modern, does way cool stuff in the abstraction, artistic and language
departments, is almost completely replaceable from the source-level up
without taxing my brains too hard (I'm a C programmer), makes deployment
dead easy, and so on. Oh, and I'm not fond of Inform 7, although I agree
that it's quite cool (well ... the examples make it look that way, anyway).
I didn't much like it's IDE, though.

I really want to use TADS 3, without a doubt. It's documentation not being
all there (Eric Eve and others [MJR, system documentation is simply
terrific] has done a great deal to put this right, of course, for which we
are hardly ungrateful) isn't enough to stop me, and indeed I've compiled
more stories and other system programs with it than any other language ever
except perhaps some old ones like AGT. The organisation of the TADS 3
system makes it very easy for a real programmer to get right in there and
just mess about. But Inform 6 does something nothing else does: it
compiles to that most amazingly playable type of all story file formats,
the Infocom Z-machine. If I didn't have such awesome respect for Mr.
Graham Nelson, I should say he's the biggest cheat ever for making everyone
who enjoyed Infocom's stuff more-or-less automatically capable of enjoying
anything his immensely cool authoring system can produce, which is a real
advantage. But I do, and so I won't. I shall merely label him a
precociously-minded individual instead.

I don't know if there's a way out here - I really *do* want a Z-code
output. Short of retargetting the TADS 3 compiler for a Z-code output mode
rather than TADS' native machine (which is, for the record, not a mere
superset of the Z-machine - read the spec, it's very good), I just don't
see what I can do except to either advocate TADS 3's further deployment and
porting to take advantage of TADS' many features without restraint or to
continue using Inform 6 and extensions for the occasions where it isn't
more of a limitation that can be overcome by simply just coding more to
cope with unusual scenarios. I'm also in the unhappy position of realising
that some users have no choice except the Z-machine for the moment and that
this can never be rectified without developer aid because the author of the
physical machines in question added that particular machine as a feature,
not adding others because of popularity. Of course this is wrong and I
congratulate the multisystem interpreter authors, but this machine is the
product of a niche market. I'd feel a bit behind using Inform 6, it's
true, but it would be fine for most purposes, as I understand it; I mean,
obviously, I'm hardly going to need tense transitions just yet. I have
managed to create a few silly programs and stories with that as well and
really enjoyed doing it, mostly because of the documentation.

So if people have any ideas for which they prefer and why, and how to get
around the Z-machine restriction without requiring the learning of two
separate languages and dropping the TADS system library, that would be
great. Are people still using Inform 6 and are the libraries and
extensions being produced still to taste? Have you avoided transitioning
to Inform 7, and if so why did you do it? Do you simply not wish to change
after all these years, or have you reviewed Inform 6 in a new light? If
you did, how did you find the language, and had you had previous experience
with other languages? (I knew TADS already as TADS 2, which helped a lot.)

Cheers,
Sabahattin
--
Please DO NOT reply to sender.
Sabahattin Gucukoglu <mail<at>sabahattin<dash>gucukoglu<dot>com>
Address harvesters, snag this: ***@yamta.org
Phone: +44 20 88008915
Mobile: +44 7986 053399
http://sabahattin-gucukoglu.com/
Adam Thornton
2007-10-02 04:14:16 UTC
Permalink
Post by Sabahattin Gucukoglu
I don't know if there's a way out here - I really *do* want a Z-code
output.
Then you ought to stick with I6.

I like I7 a lot, but the library and generated code are much larger than
I6, which means you'll be requiring Glulx in a much shorter time than
you thought you would.

Adam
Deathworks
2007-10-02 10:03:25 UTC
Permalink
Hi!

I agree that you should stay with I6 rather than to switch to I7. I7
does have some nice features (scenes, relations, and tables come to
mind), but if you don't really need them and already feel comfortable
with I6, there is probably no reason to go for I7, especially at the
moment where things are still in active development.

I can confirm the size issue as well. I haven't finished the linear
prologue of my current project, which is basically just a small step
away from a cut scene, involving just two locations, a player object,
a normal object, and a handful of scenery objects, and I am already
above 200KB in Z5 code. So, running it on a C64 without a 1571 disk
drive or better seems to be out of the question (^_^;;

As I said elsewhere, I don't believe there is a really superior system
out there, so I really suggest you look critically at what is offered
and what you want or need for your project. And of course, what you
feel comfortable with. In the end, it is your own personal decision.

Deathworks
z***@hotmail.com
2007-10-02 14:00:31 UTC
Permalink
Post by Sabahattin Gucukoglu
just mess about. But Inform 6 does something nothing else does: it
compiles to that most amazingly playable type of all story file formats,
the Infocom Z-machine.
By "playable" I assume you mean on many platforms. I find the games
that Inform often produces are a bit lackluster, given how it handles
things like disambiguation and NPCs. So in terms of game playability,
I'm not so sure it is "the most amazingly playable."
Post by Sabahattin Gucukoglu
I don't know if there's a way out here - I really *do* want a Z-code
output.
Why, though? My feeling is that people stick with Inform (6 or 7)
mainly because it does compile to the z-machine. As if that, by
itself, was a good thing. I'm not convinced it is, having played with
these things a bit now. Is it just the portability? How portable do
people really need to be? I would venture a guess that most people are
on Windows, Mac, or Linux machines. Maybe a few portables here and
there but I can't imagine they're a significant amount of the overall
playing public. (I'm not saying they don't exist; just that they may
not be all that much to worry about.)
Poster
2007-10-02 22:33:11 UTC
Permalink
Post by z***@hotmail.com
Post by Sabahattin Gucukoglu
just mess about. But Inform 6 does something nothing else does: it
compiles to that most amazingly playable type of all story file formats,
the Infocom Z-machine.
By "playable" I assume you mean on many platforms. I find the games
that Inform often produces are a bit lackluster, given how it handles
things like disambiguation and NPCs. So in terms of game playability,
I'm not so sure it is "the most amazingly playable."
Post by Sabahattin Gucukoglu
I don't know if there's a way out here - I really *do* want a Z-code
output.
Why, though? My feeling is that people stick with Inform (6 or 7)
mainly because it does compile to the z-machine. As if that, by
itself, was a good thing. I'm not convinced it is, having played with
these things a bit now. Is it just the portability? How portable do
people really need to be? I would venture a guess that most people are
on Windows, Mac, or Linux machines. Maybe a few portables here and
there but I can't imagine they're a significant amount of the overall
playing public. (I'm not saying they don't exist; just that they may
not be all that much to worry about.)
Z-Code is playable on EVERY major platform of the past or the present
that I know of. PDP, Amiga, Apple II, Acorn, Mac OS 9, Mac OS X, Windows
3.1, Windows 95/98, etc. You get the idea. It's as close to a standard
that the IF community has. That may not matter to everyone.

I stick with the Z-machine (specifically I6), because I7 is not
supported under OS 9. I do my work on my trusty iBook clamshell that I
will use until it's absolutely dead.

I've also spent the time to learn I6. Having developed one game with it
(along with several false starts), I have a whole custom framework that
I use to develop my games. I've also developed my own custom library
add-ins. I'm fairly skilled in I6 and there's a high cost to moving to
another system.

Then there's the concern that what you've done may not be achievable in
some other system.

Then there's the ORLibrary and Gwindows. Those are two big reasons why
I'm not moving from I6 right now, if the OS support wasn't enough.

I'm also in the middle of creating a game, and switching horses
mid-stream is difficult. I've thought of doing it when I was hitting
roadblock after roadblock with Glulx and Gwindows, but those have been
cleared away.

Since you asked, those are my reasons.

-- Poster

www.intaligo.com Building, INFORM, Seasons (upcoming!)
Sabahattin Gucukoglu
2007-10-03 19:35:19 UTC
Permalink
Post by z***@hotmail.com
Post by Sabahattin Gucukoglu
just mess about. But Inform 6 does something nothing else does: it
compiles to that most amazingly playable type of all story file formats,
the Infocom Z-machine.
By "playable" I assume you mean on many platforms.
Yes. I wish now that I'd rephrased that last sentence so that the point
couldn't possibly be clearer. It's the focal point of the whole appeal.
Post by z***@hotmail.com
I find the games
that Inform often produces are a bit lackluster, given how it handles
things like disambiguation and NPCs. So in terms of game playability,
I'm not so sure it is "the most amazingly playable."
I've hit issues with Inform's standard library that crop up prominently in
certain games, but by and large they've been small annoyances not worth the
bother over. Things like weird pronoun interpretations between versions,
not working as expected for certain types of containers like transparent
and open, etc. Even so, I rather like TADS 3's standard adventure
definitions. They're incredibly future-proof.
Post by z***@hotmail.com
Post by Sabahattin Gucukoglu
I don't know if there's a way out here - I really *do* want a Z-code
output.
Why, though? My feeling is that people stick with Inform (6 or 7)
mainly because it does compile to the z-machine.
Well, yeah. That's kind of where the problem is - glad to see I'm not
alone though.

Next project: retarget the TADS3 compiler for Z-Machine output! :-) Can we
have a feasibility study, please?

I guess the next real thing is to wonder whether the same issues have hit
Glulx. I suspect that they have. The terrible truth is that Z-machine
implementations, legacy or no, are all over the place. Compile with Inform
and you have a *guaranteed* audience if you compile to Z-code. Even when
deployment options are not available for bundling machine-specific
interpreters with the story, there's a good chance the story can play on a
foreign machine simply because someone, somewhere, will have written the
code to make it happen to a usable degree. Inform 7 seems likely to change
that, of course; it'll be interesting to see how things turn out when the
norm is less toward IFComp/minicomp entrants but average-scale stories that
will require Glulx. But at least most Inform users don't observe the
change in VM from their habitual uses of the system, except in regard of
which interpreter plays their games. Like I said, Graham Nelson has made a
very good choice in such a historical decision to reuse an existing
standard and making the scaling of free interpreters up to support them
over Infocom stories at least marginally easier. And the IF community at
large has made a very good choice in following the Inform lead, that is, by
making a lower abstraction of a virtual machine that is separately
specified. (TADS 2 was sort of half-VM, but the interpreter did more
parser logic.)
Post by z***@hotmail.com
Is it just the portability? How portable do
people really need to be? I would venture a guess that most people are
on Windows, Mac, or Linux machines. Maybe a few portables here and
there but I can't imagine they're a significant amount of the overall
playing public. (I'm not saying they don't exist; just that they may
not be all that much to worry about.).
The beauty of Mac, Linux or Windows as that the general public has access
to good, fresh, multipurpose interpreter programs that will play the most
common choices of formats. Besides, the TADS system itself does make
bundling rather straightforward, and this is great. But yes, it's the
machines on the fringe that are the problem. The monopoly is guaranteed to
be on the Z-machine; even if it isn't just popular, it's remarkably
compact.

And anyway, the killer question: if you were trying to sell your stories,
which format would you try to sell them in? If you can brainwash your
purchaser into sticking with bundled interpreters, that's fine. But as
soon as someone finds that the underlying system you chose is producing a
universally-playable format that can run on their mobile device or in a web
applet or just in another interpreter, you have issues. You can either
disappoint customers you should be encouraging to do it for themselves and
take away their enjoyment of running on small-scale devices or you start by
making sure your next game will bundle for a representative sample of users
in that situation. The easiest solution for the class of "Other users" in
that case is simply to provide a copy of the story file, and this is what
Malinche does. Hugo, to take a non-Inform example, is a system whose
interpreters represent most platforms, mostly owing to the author's
large-scale intervention. In this respect, Hugo is very suited to
commercial enterprises, but you'll have to let go of TADS and Inform.

It does go without saying that I'm not going to sell anything I write (I
don't think so, anyway :-) ). So I only want to provide a story file. But
I really don't want to disappoint anyone who might otherwise not be able to
run it from doing so, or to make life harder than it already is in the IF
world. Sad to say, I generally give Z-code priority when browsing the
archive. TADS 3 and 2 is next, followed by everything else. TADS only
runs on my Windows machine because getting, compiling and installing TADS
on Linux is too much of an effort for now, while frotz 2.43 and jzip are
long-running, mainstream, small programs that work well on practically
every nixish box. Jzip is also integrated into my braille notetaker.

Cheers,
Sabahattin
--
Please DO NOT reply to sender.
Sabahattin Gucukoglu <mail<at>sabahattin<dash>gucukoglu<dot>com>
Address harvesters, snag this: ***@yamta.org
Phone: +44 20 88008915
Mobile: +44 7986 053399
http://sabahattin-gucukoglu.com/
z***@hotmail.com
2007-10-03 20:08:01 UTC
Permalink
Post by Sabahattin Gucukoglu
Next project: retarget the TADS3 compiler for Z-Machine output! :-) Can we
have a feasibility study, please?
It's an interesting idea, but I don't see how it would fit. TADS 3
games have a different memory model and I'm not sure how well that
would incorporate into the z-machine. Maybe you could force the fit
somehow but I'm guessing you'd lose some of what makes TADS effective.
(I don't know this, though. Maybe not. It would be an interesting case
study.)
Post by Sabahattin Gucukoglu
which interpreter plays their games. Like I said, Graham Nelson has made a
very good choice in such a historical decision to reuse an existing
standard and making the scaling of free interpreters up to support them
over Infocom stories at least marginally easier.
I don't know if sticking with Inform (z-code) was the right way to go
for Inform 7. Sometimes sticking with the legacy is just not the way
to keep moving forward. We experienced some of these same issues in
the AGS community. (And now AGS 2.8 is nearing completion which really
takes everything a major leap forward again.) People kept wanting to
stick with the old ways of doing things but eventually it just got too
confining.

I'm all for re-using an existing standard if it's clear the existing
standard can scale up to the test of time and changing tastes of game
players. I guess you could make an argument that z-code has done this,
but I don't know: I just have a hard time buying it. And I'm saying
this even though I've grown fond of Inform 7 as of late.
Post by Sabahattin Gucukoglu
And anyway, the killer question: if you were trying to sell your stories,
which format would you try to sell them in? If you can brainwash your
purchaser into sticking with bundled interpreters, that's fine. But as
soon as someone finds that the underlying system you chose is producing a
universally-playable format that can run on their mobile device or in a web
applet or just in another interpreter, you have issues.
*Maybe* you'll have issues. But some people don't care about playing
in an applet or a mobile device. I know this is possible with Inform
games, but I hate playing anything in either of those formats. I would
rather see some effort towards getting a system like TADS 3 more
portable rather than continued reliance on z-code, but that's my
opinion. My bigger concern is not really portability but providing the
best possible game experience I can. Sometimes that does limit the
hardware/software options. People then have to make that choice. If
people will truly only play a game that can be played on their mobile
device, that's their right but they might be missing out on some
really good stuff.
Post by Sabahattin Gucukoglu
You can either
disappoint customers you should be encouraging to do it for themselves and
take away their enjoyment of running on small-scale devices or you start by
making sure your next game will bundle for a representative sample of users
in that situation.
Okay. Now let's take the scenario that you can create a much better
gaming experience in System Y but System Z lets a small number of your
users play on their small-scale devices. What do you prefer? Do you
prefer to please that small number of users or do you prefer to really
cater to the best possible gaming experience? (This comes up a lot
when my company wants to design a game that may have to work on
various consoles as well as desktop PCs. Do you generalize for all
platforms or do you specialize in a few?)
Post by Sabahattin Gucukoglu
Malinche does. Hugo, to take a non-Inform example, is a system whose
interpreters represent most platforms, mostly owing to the author's
large-scale intervention. In this respect, Hugo is very suited to
commercial enterprises, but you'll have to let go of TADS and Inform.
Yes, definitely. I've stated before that Hugo is clearly a "better"
system for overall portability, particularly if you want the inclusion
of graphics and sound. I'm not saying it doesn't have problems here
and there, but there was clearly a good emphasis put on how portable
Hugo was and the nature of that portability.
Andrew Plotkin
2007-10-03 20:19:36 UTC
Permalink
Post by Sabahattin Gucukoglu
Next project: retarget the TADS3 compiler for Z-Machine output! :-) Can we
have a feasibility study, please?
Visual effect: the giant foot from the Monty Python credits. <WHONK>

TADS allocates everything dynamically, and 64K of RAM is just not
going to cope.

I suspect you could write a text-mode T3 interpreter for Glulx. But
this wouldn't increase the platform base much (if at all).
Post by Sabahattin Gucukoglu
I guess the next real thing is to wonder whether the same issues have hit
Glulx. I suspect that they have.
It's less widely available than the Z-machine, certainly. I like to
think that it's pretty easy to port, once platform developers are
motivated to push it along. And I7 provides the motivation.
Post by Sabahattin Gucukoglu
And anyway, the killer question: if you were trying to sell your stories,
which format would you try to sell them in? If you can brainwash your
purchaser into sticking with bundled interpreters, that's fine.
For commercial stuff, I really don't think you need to brainwash
anybody. Your challenge in the first place is to sell the game to
people who don't know what am IF interpreter *is*! They're not the
ones who will want to shove the game onto another platform. Such a
capability is a nice bonus, but you already have to be able to sell
the game without it. So it's *only* a bonus.

(Of course, if you're trying to create a market for people to play IF
on mobile devices, then you need portability onto those platforms
anyway. That's a separate issue.)

--Z
--
"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."
*
If the Bush administration hasn't thrown you in military prison without trial,
it's for one reason: they don't feel like it. Not because you're an American.
Sabahattin Gucukoglu
2007-10-04 22:36:50 UTC
Permalink
Post by Andrew Plotkin
Post by Sabahattin Gucukoglu
Next project: retarget the TADS3 compiler for Z-Machine output! :-) Can we
have a feasibility study, please?
Visual effect: the giant foot from the Monty Python credits. <WHONK>
TADS allocates everything dynamically, and 64K of RAM is just not
going to cope.
Righto! Guess 64k or, for that matter, 640k just wasn't enough for
everybody. :-) Yes, I was being just a bit facetious. It's clear that
making the squeeze is less profitable than just porting the TADS VM, but
part of the issue here, apart from the fact that TADS isn't already a clear
leader in popularity (this doesn't have any significance - it's still a
great system), is that the TADS VM makes substantially bigger and
fundamentally boundless demands on the host. I don't know how this affects
the embedded "Market", but it's clear that features are a higher priority
than size.
Post by Andrew Plotkin
Post by Sabahattin Gucukoglu
I guess the next real thing is to wonder whether the same issues have hit
Glulx. I suspect that they have.
It's less widely available than the Z-machine, certainly. I like to
think that it's pretty easy to port, once platform developers are
motivated to push it along. And I7 provides the motivation.
But is that right? Call me unduely cynical if you like, but my suspicion
is that Infocom was the motivation for making the Z-machine widespread, and
that for other systems to reach the same kind of clammer will require the
widespread acclaim of some non-Infocom stories from outside the community.
Adventions, for instance, did a pretty nice job of informing the informed
masses (BBSs and things) and I know quite a few people who would never have
heard of TADS had it not been for them and for High Energy Software's
promulgatory tactics. Perhaps we need a bit more of that.

Cheers,
Sabahattin
--
Please DO NOT reply to sender.
Sabahattin Gucukoglu <mail<at>sabahattin<dash>gucukoglu<dot>com>
Address harvesters, snag this: ***@yamta.org
Phone: +44 20 88008915
Mobile: +44 7986 053399
http://sabahattin-gucukoglu.com/
Jeff Clough
2007-10-05 02:34:33 UTC
Permalink
Post by Sabahattin Gucukoglu
Righto! Guess 64k or, for that matter, 640k just wasn't enough for
everybody. :-) Yes, I was being just a bit facetious. It's clear that
making the squeeze is less profitable than just porting the TADS VM, but
part of the issue here, apart from the fact that TADS isn't already a clear
leader in popularity (this doesn't have any significance - it's still a
great system), is that the TADS VM makes substantially bigger and
fundamentally boundless demands on the host. I don't know how this affects
the embedded "Market", but it's clear that features are a higher priority
than size.
This post isn't actually designed to contribute anything to the
conversation. I just thought it would be amusing to point out I spent over
$2000 last year on a hard-core gaming machine, with a $500 graphics card
and 2-gig of RAM.

And most of my time, as of late, has been spent playing IF and Nethack.

Jeff
Kevin Forchione
2007-10-05 03:08:18 UTC
Permalink
Post by Jeff Clough
Post by Sabahattin Gucukoglu
Righto! Guess 64k or, for that matter, 640k just wasn't enough for
everybody. :-) Yes, I was being just a bit facetious. It's clear that
making the squeeze is less profitable than just porting the TADS VM, but
part of the issue here, apart from the fact that TADS isn't already a clear
leader in popularity (this doesn't have any significance - it's still a
great system), is that the TADS VM makes substantially bigger and
fundamentally boundless demands on the host. I don't know how this affects
the embedded "Market", but it's clear that features are a higher priority
than size.
This post isn't actually designed to contribute anything to the
conversation. I just thought it would be amusing to point out I spent over
$2000 last year on a hard-core gaming machine, with a $500 graphics card
and 2-gig of RAM.
And most of my time, as of late, has been spent playing IF and Nethack.
Your investment's not been a total waste then... the processing power is
equally advantageous to IF.

--Kevin
Nikos Chantziaras
2007-10-05 03:29:27 UTC
Permalink
Post by Jeff Clough
[...]
This post isn't actually designed to contribute anything to the
conversation. I just thought it would be amusing to point out I spent over
$2000 last year on a hard-core gaming machine, with a $500 graphics card
and 2-gig of RAM.
And most of my time, as of late, has been spent playing IF and Nethack.
Similar situation here. After everything was set-up, including the l33t
graphics board, I was happy to get 200fps in Doom3. The next day I was
re-playing some old commercial IF in DOSBox :P

PS:
DOSBox sure runs like hell on those dual cores now doesn't it...

Nikos Chantziaras
2007-10-03 22:06:50 UTC
Permalink
[...]
TADS only runs on my Windows machine because getting, compiling
and installing TADS on Linux is too much of an effort for now
Hm, I thought the "./configure; make install" approach is the only
acceptable thing on Linux sources these days.
OKB (not okblacke)
2007-10-04 16:53:10 UTC
Permalink
Post by Sabahattin Gucukoglu
The terrible truth is that Z-machine
implementations, legacy or no, are all over the place. Compile
with Inform and you have a *guaranteed* audience if you compile to
Z-code.
<snip>
Post by Sabahattin Gucukoglu
And anyway, the killer question: if you were trying to sell your
stories, which format would you try to sell them in? If you can
brainwash your purchaser into sticking with bundled interpreters,
that's fine. But as soon as someone finds that the underlying
system you chose is producing a universally-playable format that
can run on their mobile device or in a web applet or just in
another interpreter, you have issues.
I think these two arguments are inconsistent. I don't think you
can really make any money selling games to people who already know what
the Z-machine is and what platforms it runs on. In fact, I think that
if making money is your goal, then telling users about the Z-machine and
how many platforms it runs on would actually be a bad thing, since it
would confuse them and make them think the installation is complicated.
Every day, millions of people use crappy software, eat crappy food, and
watch crappy movies simply because they're conveniently available.

Moreover, I don't think the Z-machine actually provides any
advantages besides portability. Its screen model is much more limited
than TADS 3, it imposes severe size limits on games, and certain things
about it make certain kinds of relatively common programming tasks hard
(e.g., using packed strings so you can't do string splits and joins,
lack of dynamic allocation).

As far as portability, my own opinion is that it's not really an
advantage either. I have to believe that the number of users who
actually care about playing an IF game on an OS besides Windows, Mac, or
Linux is vanishingly small. (Unless you include handhelds. To be frank
I have limited sympathy for users who want to play IF on handhelds.)

I think that rather than make TADS 3 compile to the Z-machine
(which is basically impossible anyway), any such time would be better
spent developing full-featured, nice-looking, usable interpreters for
Mac and Linux. This will allow nearly 100% of would-be players to play
the games, without reaching for a super-portability that's unnecessary
anyway. (And the same could apply to handhelds here; spend the time
making a T3 terp that runs on handhelds, not making T3 into the Z-
machine.)

In other words, I don't think target the Z-machine is a way to get
more users. Instead, I think you should directly target the platforms
those users use, which means Mac, Linux, and Windows (for which a full
terp already exists).
--
--OKB (not okblacke)
Brendan Barnwell
"Do not follow where the path may lead. Go, instead, where there is
no path, and leave a trail."
--author unknown
Loading...