ADRIFT (4, 5, whatever...)

Reposting here from the ADRIFT forum, and deliberately not in the “Other Development Systems” section…

Reading through the reviews of Irvine Quik & the Search for the Fish of Traglea, it is very clear that the game itself, the ideas, and the supporting files are really good, but the thing that lets it down most of all is the engine. It was written using ADRIFT 4. I believe that the more the wider IF community is exposed to ADRIFT 4 and it’s limitations, the more stigma is attributed to the engine and the overall reputation of ADRIFT is affected.

The reason I created ADRIFT 5, and started completely from scratch was to overcome the problems that have consistently been brought up in the IF competition. By starting from scratch, I was able to design v5 completely differently from v4, resolving the majority of issues that have plagued v3/4 since it’s creation.

I want to take this opportunity to point out how ADRIFT 5 could overcome the problems raised to date with the above game. Apologies Duncan for using your game as an example. However, I think it is important to do so. I also believe that by using v4, you will have cost yourself several places in the final competition.

The only way people can play ADRIFT 4 games on a Mac is using an interpreter that was written by other developers, without access to the original ADRIFT 4 source code. This leads to subtle (and sometimes significant) differences between gameplay. It also means that functionality (such as transcripts) are not available. ADRIFT 5 can run on Windows, Linux and most likely Mac (with a bit of testing), and games can also be run in a browser, allowing them to run on any Operating system. And best of all, the logic will be exactly the same as running locally.

I can’t comment on the exact nature of the problems found here, but I can say that organisation is much easier in ADRIFT 5. Sections of the game can be separated out into separate folders. IQSFoT is split into chapters. So each chapter could have been given a separate folder, with sub-folders. This makes organisation much easier, rather than looking down immense lists of things, and would make planning and debugging that much simpler and more enjoyable. There is also a much better search function in ADRIFT 5.

Another user, having to run in a third-party clone of Runner, leading to bugs that may not have been there in the official Runner. This would make testing a nightmare, having to test in both the official Runner and the third-party clones.

ADRIFT 4 has to check every single task. This game has over 1600 tasks, which have to be checked each turn for a match. ADRIFT 5 only has to check General tasks initially, as these are the ones that define new verbs. This means that a well designed game should run much quicker in v5 than in v4 (or a v4 game).

Whilst this is possible in ADRIFT 4, it is much simpler in ADRIFT 5, as any task can be set up with any number of verbs.

This is exactly the sort of thing I’m talking about. He says “ADRIFT is generally not smart enough” rather than “ADRIFT 4 is not…”. ADRIFT 5 is perfectly capable of allowing the same verb to be used in multiple contexts, either by the structure of the command that uses it, or the use of properties or other restrictions on the command in which it is used.

ADRIFT 4 take/drop are pre-canned. The only way to change their behaviour is to try to override their usage. ADRIFT 5 allows you to amend the actual get/drop tasks themselves, so you could allow them to work different depending whether or not the arms are deployed. That said, creating a “%character%, take/drop %object%” command would be very simple in ADRIFT 5.

Again, this says ADRIFT, not ADRIFT 4. This is damaging to the reputation of ADRIFT overall.

Another third-party clone problem perhaps? Eliminated if using ADRIFT 5.

The n/e/s/w directions are hard coded in ADRIFT 4. They can be customised in ADRIFT 5.

More detail on what the parser issues were would be useful, but needless to say, the ADRIFT 5 parser is far superior to the ADRIFT 4 parser.

What has happened here is that ADRIFT 4 processes this as two separate commands. That is something still to be implemented in ADRIFT 5, but on the other hand this command could have been set up to process as expected as explained above.

Reading the reviewers comments is rather frustrating as I’ve spent the last few years working very hard to fix the problems raised by the IF community, with the release of ADRIFT 5, and I very much hope the (albeit small) number of comments I’ve answered above will be enough to convince some of the more faithful ADRIFT 4 users to move away from this flawed, aged version, and upgrade to ADRIFT 5.

I would however like to thank you, Duncan, for submitting a game this year written using ADRIFT and for your continued support.

At the end of the day, unless the reputation of ADRIFT can improve, the system will not flourish as well as it should do. This reputation is dependent upon the games written using it, and it is my belief that games written using v5 will cure most of these problems, as well as giving a more enjoyable experience for the author.



Well said!

It’s really good to read something like this. I (wrongly) chalked this up to a fundamentally different mindset of Adrift writers, who scrapped the z-machine parser for other things, which was my fault. These all look like really good changes & it’s big of you to come to one of your system’s writers defenses.

It must have been difficult to figure a way to rebuild from scratch. Heck, it’s tough for me to do that with a chunk of gaming code, much less a whole programming language.

And getting greedy here: do you have a change log for Adrift’s new features? Or, even better (for prospective users,) a list of feature requests? This would help knowing what you can or can’t do–a forum thread can get bumped, but a change log is a huge help.

Also, re: mods: it’d be interesting to see an ADRIFT subforum here. Even though the Adrift forum is linked, it’d still be good to have–okay, if not a subforum, a thread–of big happenings over there so we can remember to take a look.

It’s certainly been a challenge, but I think I have learnt a lot from this community and hope that the new version addresses most of the issues raised.

There is a log of outstanding issues here, and there is a list of changes on the ADRIFT download page.

Thanks for making the effort to educate the wider community. Here’s to seeing some Adrift 5 games in the next comp!

I really want to try making a short crappy game with ADRIFT 5 some day. I’ve looked briefly at ADRIFT 5’s new UI, and I like it, as a lifelong Windows user.

If there are enough of us here willing to make a short game (I would be included,) I think it might be fun to have another contest. Po. Prune was generous enough to host the first, and the reward amount feels about right. Not that people would write for the reward, but bragging rights are fun.

So I’m sorry I missed the initial competition, but I’d love a chance to try again. Maybe a New Year’s thing? Maybe we could have some guidelines on new features worth using or looking at?

Why not write try writing something for Ectocomp? Nobody has donated any prizes yet, but that doesn’t mean people won’t. I’ll probably be donating a horror movie as a prize. Last year there were two prizes, and 10 entries. It would be great to have another scary crop this year!

Unfortunately, too many other projects at the moment–it was announced well in advance, but I had too many other things to do & they took longer than I thought.

I’d be glad to donate a prize for maybe a crossover event later–like regular adrift programmers trying inform and inform programmers trying adrift. Maybe if Inform and Adrift each get a release or important patch out around the same time, it could be A Thing.

I’m sorry, but I don’t have time, either. This seems to be the busiest time of year, just in general. I’ve already resolved to try to make a game for Hugo Comp again.

You can enter Ectocomp with a game written using any development system. I personally had forgotten this fact 'til I read the instructions (viewtopic.php?f=23&t=5943) again just now. I thought I’d point this out in case this thread has confused the ideas of ‘I’d like to learn Adrift 5’ and ‘I can’t enter Ectocomp because I don’t have time to learn Adrift 5 in 1 week’.

  • Wade

Campbell, since you’re making such a big fuss over running games in “third party software” as opposed to the new & shiny Adrift 5 interpreter for Linux/Mac: I downloaded that package, and putting aside the obvious non-trustworthiness of Mono (as far as licensing is concerned) and the breakage of the standard Linux file system conventions (dumping files in /usr/bin and /usr/lib instead of /usr/local/bin and /usr/local/lib) aside – where can I get the interpreter source? SCARE might be an imperfect implementation of the (non-existent, I might add) Adrift 4 specification and engine-wise, Adrift 5 might be as much more advanced as making a world of a difference, but unless I can get an open source interpreter, I will applaud Duncan (and other Adrift 4 authors) for sticking to that older version.

Thanks for the feedback on file locations. I asked for that in the readme file. It might have been nice to get it an email, but a forum post is better than nothing.

ADRIFT is not open source, and is never likely to be. I’m a little surprised that should be a big deal - after all, over a billion people use closed source software. And I’d like to think that after 14 years of producing trustworthy software I would have a reputation worth something.

I plan to stick to ADRIFT 4 myself, but I don’t see what difference an open source interpreter makes.

Open source would be so much better! Then the official interpreter could be embedded in Gargoyle or Zoom etc, or it would allow us to fix Scare’s incompatibilities at least. Considering that you no longer charge for Adrift, why not? You could keep the compiler closed source if you wanted.

As to reputation, the lack of high quality interpreters has meant that Adrift has a very poor one.

This sounds like a pretty good argument for publishing the runner source code.

Not really. ADRIFT 4 is flawed - I want people to move on to version 5.

OK, my bad. Anyway, the information is out in the open now.

Then that billion people can switch from Adrift 4 to Adrift 5 for all I care. I don’t mind, I just don’t want to do it myself. As Dannii said, open-sourcing the runner (or providing an open spec so that others can provide a complete open source implementation) won’t automatically imply open-sourcing the compiler. That would be the same situation Inform is in. Which is also hardly ideal, but for people who just want to play games as opposed to write them (i.e. the majority, especially considering approximately 120% of the people hanging out here seem to be Mac users), that’s a large improvement.

Or to ask the other way around: What is your reason not to publish the runner code or a spec? Yes, it is your right to decide, but I’m curious. And, well, similarly, it is my decision whether to install an Adrift 5 interpreter or not. For the decision not to I have stated my reasons.

Mostly to prevent unofficial clones, or malicious versions that would jeopardise the reputation of the software. It’s been a personal project for 15 years, I’d like to keep it that way.

As for publishing a code spec, I don’t see the need. Runner can run on Windows, Linux and should also work on the Mac, plus can run in a browser. I’m happy with that for now. I should publish the file format schema perhaps, although I have had no requests to do so thus far.