Pros and cons of ADRIFT 5

I will try to be brief:

Inspired by another thread ( HERE ) I decided to make a thread which lists the pros and cons of ADRIFT 5 (no one really use ADRIFT 4 anymore, though the games still get played)

I believe almost all parser authoring systems have some advantages, which makes them preferable to some authors. If there was only Inform, many games would never be made.

Having said that, Inform is brilliant in many ways due to both historical and technical reasons. Still some people prefer other systems for parser games. Why?

In this post I only focus on ADRIFT. As an ADRIFT user I am certainly biased but I will attempt to focus on facts. However, I do believe that when ADRIFT 5 is used correctly, the parser can be pretty strong.

Both pros and cons (can be discussed):

  • No scripting, all is done with menus and text boxes
    • Some html-like tags possible in text boxes, for italic or bold text, audio control etc
    • ADRIFT often attracts people with little or no programming experience
  • The player can always override colors and text fonts

Cons:

  • Game Development is Windows only.
  • Playing is only Windows, Android and online play.
    • Android interpreter still has some bugs.
    • Online play has limitations: old tech, map not displayed well, background always black, clumsy save-feature, sometimes slow
  • Currently only one developer (not counting the developer of Fabularium)
    • Thus slow development
    • more bugs
  • Multiple commands on same line not possible
    • Walkthroughs must be copied into a macro instead of the command line
  • Too easy to be cutting corners, i.e. not doing things the intended way
    • If corners are cut, games often have a bad parser
    • If corners are cut, games often have more bugs
  • Still some bugs in the Standard Library

Pros:

  • Standard Library can easily be expanded, modified or fixed
  • Good parser when commands are implemented as intended
  • Automatic mapping
  • Fast-travel by clicking on the map
  • Easy to include audio and graphics
  • ADRIFT-blorbs(.blorb) can be created easily, so music and graphics are in the same file
  • Windows executable games can be created by the click of a button
  • Standard adventures are very easy to create
    • More advanced stuff possible with some practice

I hope I have remembered the most important facts :slightly_smiling_face:

6 Likes

Pros:

  • Animated images and styled text are easier than Inform.

Cons:

  • Documentation is erratic. When I last looked at the manual (admittedly, a number of years ago), there were quite a few pages which just had a line in the vein of “This page is not written yet.” There were a handful of worked examples. (Compare to 400+ examples in the Inform documentation.)
  • Significant amounts of the execution logic are in the runner. For example, if multiple characters move on a turn, and some of them happen to have “If this character sees X, then do Y”, in what order exactly do those tasks get run? If Campbell changes this logic, it might break any game that depends on the old behavior. (Under an Inform game, the equivalent logic is part of the game file.)
  • (The above is closely connected to why interpreters for ADRIFT are limited. Zcode and Glulx were designed with the purpose of being clearly specified, and making it easy to write interpreters, so multiple interpreters exist for them.)
  • ADRIFT lacks the ability to do file IO. If I understand the Inform docs correctly, a person doing an Eamon clone under Inform could create the guild hall and each adventure as separate games, sharing data through external files.
  • ADRIFT’s parsing is nowhere near what an Inform game could do. For example, in Scroll Thief, a scroll can be referred to by the spell written on it, and some scrolls are rewritable. A person doing an Eamon clone could give the player weapons with names that it got reading an input file, and the player could refer to them with those names.
3 Likes

Thanks ralphmerridew for the input.

Though most authors wouldn’t use file IO, it could be necessary for more advanced games, and therefore such games cannot currently be made in ADRIFT.

The Inform parser is no doubt more versatile.
Still, If I understand you correctly, I think your Scroll Thief example might be doable in ADRIFT.

For instance, in ADRIFT you can apply the action: [set][Object Name][to][‘whatever’]
This will replace the first Noun but the other nouns are preserved.

Con: Release 5.0.36.4 will install ransomware/malware (Win32/Uwamson.A!ml) on your computer. Big yikes.

1 Like

I used the zip file for 5.0.36.4, rather than the installer and there doesn’t appear to be any ransomware.

Some antivirus software seems to take offense with how the libraries are packaged into the executable. It can take a while after each release for the file to be whitelisted.

1 Like

It’s just a false positive. Some anti-virus have really poor detection algorithms that either miss malware or incorrectly detect them. The false positives come from the data happening to land a certain way during the compilation process that makes it look similar to a description of a specific malware. This is especially true of apps that use a lot of DLLs because a common malware tactic is to infect a DLL which will execute the malware code once the executable calls it. And when the DLLs are bundled into the the executable, it can look similar to code injection. Adrift is written in VisualBasic, so DLLs are its bread and butter.

If you’re ever concerned about a specific executable or DLL, upload it to VirusTotal. This site checks the file against a slew of different anti-virus apps and tells you which ones detected something and which didn’t. If only a couple detected it, it’s a false positive. If most detect something, that’s bad news.

3 Likes

Just curious, but does this mean you do the scripting in your custom library?

Sorry for the VERY late answer, I must have missed this one and I’ve also been away.

ADRIFT 5 has no traditional scripting interface but it allows for some quite advanced features, which in many ways corresponds to simple coding. So you can e.g. use tasks to create what corresponds to if-sentences and for-loops. And you can use variables and “expressions” for advanced input and output etc.

ADRIFT 5 has a lot of focus on parser (when used correctly!), whereas the lack of a true scripting language makes it harder to do nested loops etc so e.g. creating a general purpose turn-based combat system is more difficult in ADRIFT than in classical scripting [I don’t regard e.g. Inform 7 as classical scripting. Here I am thinking of something similar to C++ and Basic with classical If-sentences and For-loops]

1 Like

True. For an Eamon clone I think I have a work-around through save-files but that is of course nowhere as versatile as file IO. Still, it is possible to go a long way with some imagination :slightly_smiling_face:

Side comment: Among programmers, “scripting” generally refers to languages closer to the UI level. They might be used for writing extensions, or automating other programs. C++ would never be called a scripting language.

Other issues with ADRIFT:

Version control:

  • Imagine being able to go through old versions of your program, and looking at the changes you made at each step. If something that used to work breaks, you can look back to find when it stopped working and see what changes you made at that time.
  • ADRIFT uses a binary file format for development, which blocks most of these uses.

Collaboration:

  • ADRIFT’s biggest claimed benefit, its shallower learning curve, is less important when multiple people are working together. When a person is working alone, a lack of technical skill might be a showstopper for a Tier 1 language; on a project with three people, only one needs to be technically proficient.
  • ADRIFT is also hostile to collaboration. With most other systems, each developer can work on a separate file containing his/her part of the game, and share those files as needed (a distributed version control system like git might even let them edit a single file); with ADRIFT, only one person can edit the file at a time; you’re probably best choosing a single dev who talks with the other designers.
2 Likes

Thanks for clarifying, ralphmerridew. The cons you mention here are ideally included in all IF authoring tools. However, considering that most authors still work alone (and use version control(?) - they are not experienced programmers after all), I just want to mention that for most authors this is probably not a big deal.

Just trying to avoid a more negative picture of ADRIFT than necessary. The open sourcing of ADRIFT has led to a massive improvement: ADRIFT games can now be played on Mac and Linux too using Frankendrift. The only big hurdle is a better online Runner [The ADRIFT Runner is very dated and makes the games look bad] but I believe that in the future, either Frankendrift of something similar can be made for browsers too, utilizing the source code. Even if the person behind Frankendrift (Adrian Welcker) doesn’t have time to do a browser version, he could probably tell someone else about the most important pitfalls if they do a browser version.

So if somebody out there actually have the skills and time to make a browser version, games like Skybreak and Lost Coastlines would work much better in browsers and it would mean the world to the ADRIFT community! :star_struck: :pray:

Both Frankendrift and ADRIFT 5 are on Github (very gentle licenses) and Campbell has implemented some of Adrian’s improvements so even though Campbell Wild (the guy behind ADRIFT) is probably VERY busy, it seems he wants ADRIFT to stay alive - if nothing else then let others take over. After all, why else would he make it open source?

I still believe ADRIFT has something unique to offer, e.g. there must be a reason why e.g. William Dooling decided to use ADRIFT despite its quirks. In all honesty, in ADRIFT it is too easy to cut corners and people new to ADRIFT might not know they are cutting corners. This often results in bad parsers until the authors start asking questions about the parser on the ADRIFT Forum. But used correctly, you can do pretty good parsers with ADRIFT. Of course, if the author is old school, you will probably need some “obscure” verb sometimes but you can’t blame ADRIFT for that. If anyone needs examples of ADRIFT games with good parsers let me know. [not to be confused with a bad choice of verbs - this happens in Inform too].

4 Likes

The ADRIFT game source files are in binary format during development? I thought they were saved in an XML format until they are exported?

1 Like

From ADRIFT Help: “ADRIFT 5 Modules are simply the same data that is stored in a TAF, but in an uncompressed text format. The data format used to encode modules is XML, so modules can be viewed or edited with an appropriate XML editor or viewer such as Notepad or Internet Explorer.”

A few data might not be included in the XML when exporting(?) but there are many ways of exporting so I am not completely sure.

Probably the perceived shallower learning curve.

It would be good to post this, just so that we can all get on the same page.

The biggest downer about ADRIFT is that, had different design been used, it could have eliminated many of these issues, without impacting the UI that draws people to it. As is, it’s designed so that things that need to be changed are in the places which are hardest to change.

1 Like

Sure. However, it is important to distinguish between oldschool “obscure” choice of verbs and limitations in the parser. So I will focus on my own games as I know them best:

  1. Stone of Wisdom [multi-word parser]
  2. Grandpa’s Ranch [two-word parser]

I think we only need one example per category to prove that the ADRIFT 5 parser can be very good when used correctly.

2 Likes

I’m just winging in to say that as someone who’s often struggled with ADRIFT’s parser, I found Grandpa’s Ranch completely smooth to play (and charmingly written to boot) so I think that’s a good example!

(I haven’t played Stone of Wisdom but adding that to the list…)

2 Likes

Thanks! This kind of feedback is very much appreciated. :smiley:

1 Like

Agreed.

2 Likes

All three episodes of the Bash-saga are fun and clever.
Bash Saga by Kenneth Pedersen (ifdb.org)

(note to self: must replay and review)

5 Likes