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
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.
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.
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.
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.
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]
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
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.
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!
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].
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.
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.
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:
Stone of Wisdom [multi-word parser]
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.
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âŚ)