ADRIFT Forum


The place to discuss the ADRIFT Interactive Fiction toolkit

"ADRIFT 4 is flawed"

The place to chat about ideas, writing, this forum, or anything related to Interactive Fiction that isn't specific to ADRIFT.

Please also visit the Interactive Fiction Community Forum for further discussions.

"ADRIFT 4 is flawed"

Postby David Whyld » Mon Nov 05, 2012 12:20 pm

So wrote Campbell in a recent post on the Intfiction forum. Now, I've kind of come to expect comments like that from the rest of the IF community, who've never seemed to have a very high opinion of ADRIFT at the best of times, but not from the guy solely responsible for ADRIFT in the first place. That's like Bill Gates saying all the old versions of Windows were naff.

Now I understand in principle where you're coming from – you've spent a lot of time and effort on V5 and want people to use that instead of V4 – but I really don't think ADRIFT's developer saying negative things about older versions of the software is doing anyone any favours. Did the guys behind TADS and Inform start dissing the old versions when new ones came out? Flawed or not, people have been using V4 for the past decade and some of them have become quite attached to it. Some of them might even consider it better than V5 and not want to upgrade to the newer, flashier version. Of course, it might just be me that feels this way because I'm still using V4 myself, with V5 something I find myself reluctant to upgrade to.

Rather than badmouthing the older version, wouldn't it be better to simply let it die out gracefully? Or even fix a few of the problems with it so that it's not quite so 'flawed'? (Not being a programmer myself, I have no idea whether this is remotely possible, or if it would require a complete rewrite of the code.) After all, people – particularly the AIF community – were still using V3.9 for years after V4 came out and I don't remember there being a push to get them to upgrade to V4 or talk of how flawed the old version was.

Aside from anything else, saying the old version of ADRIFT is flawed right in the middle of the IFComp voting period, when the only ADRIFT entry is written with the older version, seems like unfortunate timing. Couldn't it have waited till after the votes were in?
David Whyld
 
Posts: 6762
Joined: Sat Dec 18, 2004 5:15 pm
Location: United Kingdom
Points: 25

Re: "ADRIFT 4 is flawed"

Postby ralphmerridew » Mon Nov 05, 2012 1:15 pm

The problem with ADRIFT 4 isn't just the implementation; the design was wrong. ADRIFT 4 can't be fixed without completely redesigning it.

For example, I have pointed out many times ( viewtopic.php?f=4&t=3850 for one) that ADRIFT 4 tasks are based on the exact text typed. Most other IF systems are based around the meaning of the text typed.

More specifically, suppose a game contains a "journal" (which can also be called "book"), and a "dictionary" (which can also be called "book").

Consider these cases:
A) "GIVE JOURNAL TO GIRL" (player is holding journal)
B) "GIVE BOOK TO GIRL" (player is holding journal, dictionary is elsewhere)
C) "GIVE BOOK TO GIRL" (player is holding dictionary, journal is elsewhere)
D) "GIVE DICTIONARY TO GIRL" (player is holding dictionary)

Most IF systems will route A and B to one place, and C and D to a different place, before the author handles them. ADRIFT 4 will route A to one place, B and C to another, and D to a third. The former behavior is almost always what is desired.

I don't know offhand of any place where the latter would be preferred; even if there were, it's probably possible to get that result in a Tier 1 system. ("Janitor" has a chair that can be exited with "STAND", but not "GET UP" or "EXIT CHAIR", for example.)
Bloodhounds can make you laugh and cuss in the same breath. They are endearing, faithful, and can sling drool ten feet in any direction. -- Virginia Lanier
User avatar
ralphmerridew
 
Posts: 2556
Joined: Fri Dec 13, 2002 11:56 pm
Location: Missouri
Points: 10

Re: "ADRIFT 4 is flawed"

Postby Campbell » Mon Nov 05, 2012 1:29 pm

I think with TADS and Inform, subsequent versions have always been based upon the previous versions. With ADRIFT, it was a complete rewrite, and a fundamental change to the way the application works. I don't think it's fair to compare the upgrade paths.

ADRIFT 4 was simply an extension of ADRIFT 3, and so had the same underlying logic, albeit with lots of new features.

The main problem with ADRIFT 3 and 4 is in it's design. There is lots of logic built into Runner to respond to commands with default actions. Whilst this makes it easy to understand, it creates all sorts of problems once people start playing games. It means that any time you want to override a default action, you have to try to cover all possible ways of typing the command.

For example, you could have a task "get *broken glass*", that if you picked up would cut your hands. Now a player in the game might know this, and type "get all except the broken glass". Unfortunately this task would match, and the player would end up taking the glass when explicitly saying not to.

Another example, "n{orth}" might also be used. This task covers the user typing "n" or "north". But what about "go north", "go n", "move n", "run north" etc? The default movement task might be triggered rather than the overriding task.

Unfortunately, changing this design was not possible iteratively. It required the whole application to be started from scratch. In ADRIFT 5, all logic is defined within Developer, and all tasks can explicitly override others by reference, not by matching the command line. So in the first example you would create a "get broken glass" task that simply overrode the "get object" task for object "glass". And in the second example you would create a "north" task that simply overrode the "player movement" task for direction "north".

Also, as rm points out, because tasks in ADRIFT 5 are much more aware of objects, the context of those objects can be taken into account, so that if you are taking an object, it knows you are most likely to be talking about objects in the room. This intelligence is then inherited by custom verbs you might create.

I do appreciate that it is possible to work around most of these problems, especially if you are experienced with ADRIFT 3/4, and that some games have very few problems. But for the majority of users, they are going to end up creating games that have guess the verb problems, or commands that don't work quite as expected.

And yes, I probably am being a bit harsh on the old version. But that's only because I have spent a lot of time and effort on v5, and would love to see people move onto the newer version. I'm sorry if you find my comments offensive. I don't mean to belittle the time and effort you have put into using the software.
ADRIFT Developer developer.
User avatar
Campbell
Site Admin
 
Posts: 4619
Joined: Sun Jun 23, 2002 11:05 am
Location: Edinburgh, Scotland

Re: "ADRIFT 4 is flawed"

Postby ralphmerridew » Mon Nov 05, 2012 2:05 pm

Campbell wrote:I think with TADS and Inform, subsequent versions have always been based upon the previous versions. With ADRIFT, it was a complete rewrite, and a fundamental change to the way the application works. I don't think it's fair to compare the upgrade paths.


Inform 7 includes the Inform 6 compiler, but only as an intermediate language; it completely ignores the I6 library. All versions of Inform compile to either Zcode or Glulx; beyond that distinction, they use the same interpreter. I think I6 was a complete rewrite of I5. (Inform 1-4, and possibly also I5, saw little use.)

I'm pretty sure TADS 3 was a complete rewrite. I don't know whether TADS 2 was a complete rewrite, but I don't think TADS 1 saw much use either.
Bloodhounds can make you laugh and cuss in the same breath. They are endearing, faithful, and can sling drool ten feet in any direction. -- Virginia Lanier
User avatar
ralphmerridew
 
Posts: 2556
Joined: Fri Dec 13, 2002 11:56 pm
Location: Missouri
Points: 10


Return to General IF

Who is online

Users browsing this forum: No registered users and 8 guests

cron