> First, to reply about the dead links, I went again to search across the
> website and found some on this page :
> <
https://www.alanif.se/about/games>
> The two links given on this page are supposed to provide access to the
> download of all the games mentioned below, but they don’t work. As they are
> external links, of course, this is not the responsibility of the webmaster
> if they don’t work. But as the ALAN-IF was created to allow to create text
> adventure games, I think this is very important, if you want to promote the
> whole system, that the people are able to use it with exiting games that
> you can easily download and install. As all the links are not working, it
> suggests that the system is not anymore maintained, but it actually is.
> It’s a pity and does not help to advertise and promote the Alan system.
You're absolutely right. I didn't even notice these links were broken, but that's
probably just because I navigate the IF Archive portal more often than the ALAN
website. Here is the updated link to the IF Archive, plus some others:
https://www.ifarchive.org/indexes/if-archive/games/alan/
https://ifdb.org/search?searchfor=system:Alan
There might a few games that were not submitted to either site though.
> Why do not create your own repository containing all games for Alan that are,
> indeed, proposed with a free license ? I could help in this way, if you
> agree with it, and contact all the authors to ask them if they agree and
> get the files to populate this repository.
That's been on our wish-list for a while, but was procrastinated due to amount
of maintenance work for existing projects. We'd like to create a dedicated
GitHub repository with all ALAN games in compiled form and, if possible, with
their source code (if available).
Licenses are indeed one of the main obstacles, since the early ALAN games pre-date
the era of FOSS licenses (even ALAN didn't have a license initially, until licenses
started to pop-up). In most cases you can still store them based on the assumption
that they were freeware and because in their original context they were clearly
intended for end users to freely download them and play them. But then, when it
comes to private hosting services like GitHub things are not so easy since you
have to abide to an EULA which is rather strict about (c) and licenses, so terms
like "freeware" are a bit of a slippery ground. Contacting the original authors
is definitely the best approach, but bear in mind that so many years have passed
for some old games that their authors might no longer be active in the community,
and their contacts might be obsolete.
But definitely, creating a repository for ALAN games is a must-do, and we should
start by populating it with the games we have at hand, licenses and all (and there
are enough of them). BTW, I've already started preparing for this project on my
local PC, so I've already downloaded all of the games available via the IF Archive
and the IFDB. The fact that you've asked about this, specifically, will now raise
the project's priority (we tend to work on a peer-need basis, to make the most out
of our limited time we can devote to ALAN), so I'll do my best to create the repository
within the coming week.
As for the website links, only Thomas has access to the website, but I'm sure he'll
fix them promptly.
> I can also see that the list on this page is missing the games from Robert
> DeFord, who replied to me, and who is the author of several games made with
> ALAN.
Robert is indeed a prolific IF author of nice IF works.
> Anyway, thanks again, and now that I know that this system is still live
> and have some active contributors, I’m going to delve into the
> documentation, starting with the tutorial. I intend to create a game in
> French language, possibly translated in English, so I’m interested in the
> multi-language capability of the software, if any.
Beware that there isn't a French library at the moment, so you'll have to create one
from scratch. You might want to have a close look at the ALAN Internationalization
project, which is about creating a core ALAN library in multiple languages:
https://github.com/alan-if/alan-i18n
The project currently hosts usable (albeit Beta) implementations in the following
languages: English, Italian, Spanish. The Swedish version is also being worked on.
There are some constraints in the ALAN language that you need to be aware of when
it comes to internationalization, which in some cases can lead to dead-ends with
some specific languages — e.g. German presents some challenges that were reported
to be hard to circumvent with the current language, whereas for the Italian adaptation
I had to ask Thomas to add a couple of new features to allow handling apostrophes
in articles and prepositions, and other small tweaks to accomodate language specific
features and needs.
These type of challenges are what allow a language to grow over time, so the more
ALAN users indulge in similar quests the more the language gets tested in a wider
context and has a chance to grow further — which, BTW, is the reason why ALAN is
still in Beta, i.e. to allow further improvement before its syntax becomes definitive.
As long as the new requested changes are not backward incompatible (i.e. breaking
compilation of older games) and not to hard to implement or radically change the
language in directions which are not in line with the general philosophy that
guides the project, then you'll find in Thomas a person who's very attentive to
end users needs — but big changes are not implemented over night, they need
thorough thinking and extensive testing before they are actually merged into
the language.
So, if your main target language is French, you should consider that having to
create a custom French library for ALAN can be time consuming (time that you
will be taking away from your actual game), and that there are many IF tools
in the wild that already have mature French libraries. From what I remember,
TADS in only available in English and German, but Inform 6 (and possibly 7)
have mature French libraries. The Inform 6 syntax is not exactly a human-friendly,
it leans more toward the "classic" programming paradigm.
As for Inform 7, you have to be careful about version conflicts between the
different Inform 7 releases and extensions, since the last updates to i7
contained many backward incompatible changes. Inform 7 at some point in 2020
announced an imminent fist public release (v1.0.0), but then the COVID pandemic
exploded and there haven't been any updates on the website (except that it
seems that the release announcement was removed). On the other hand, in the
past year we've seen a surge in Inform activity on GitHub, were they actually
published the Inform 7 source code (Beta), among other things:
https://github.com/ganelson/inform
So, if you're going to stick to Inform 7 in order to rely on a mature French
library, I strongly advice you to consult the authors of the Inform 7 Fench
Standard Library, so they can guide you to the correct Inform 7 release to
use, and which third party extensions versions are compatible with it.
E.g. for the Italian language, there's only one Inform 7 release which works
with the Italian library, and you're bound to use some specific (and rather
old) version of common third party extensions that work with that version.
Finding old versions of an extension is not always easy, partly because i7
didn't originally enforce a versioning scheme for extensions, but also because
the IDE extensions manager doesn't (or didn't) allow fine-grain control
over specific versions. Fortunately though, GitHub came to the rescue in
this respect, and you can now find various repositories gathering i7 extensions,
with all their different versions to pick from.
But then, from my personal experience I don't think that using natural-programming
to target a foreign language makes much sense, since you end up having a source
code that looks like a mixture of English and Italian/French, which doesn't look
very nice at all, and kind of defeats the whole purpose of natural language programming.
So it might make more sense to use a classic programming language instead.
On the other hand, if you feel like giving it a go and try to port the ALAN
Foundation Library to French, I'll be more than happy to assist you in the
task — I also happen to speak a bit French, although I can't really read it
or write it, but in terms of how the grammar should be implemented I should
be able to help you out, since the gap between French and Italian is narrower
then that between French and English.
If this is your first text adventure, consider that learning an IF programming
language can be already quite a demanding task in itself (unless you've already
used a programming language before). I wouldn't say a hard task, but definitely
a demanding one, since programming requires precise constructs, exercising logic
and a special way of tackling real-world problems to implement them as code.
Of course, working on the French port of the library would be the highway to
fully master ALAN (and IF engines in general) since by studying how IF libraries
works gives you a deep insight about how text adventures work behind the scene,
how they can simulate real life with fairly simple tools and mechanisms.
I'm assuming that your interest in creating a text adventure is, just for us,
about having fun and being able to create something artistic that can entertain
others. So, ultimately, whichever path you take is up to you, and you'll end up
enjoying it anyway, and having great fun too. IMO, working in group can make
the whole process smoother, and enjoyable, so choosing an IF system might not
boil down just to its technical aspects (power, features richness, etc.) but
also include important aspects like community support and the continuity of
the system legacy (in terms of its being actively maintained or not).
During my translation work of Anssi's ALAN StdLib 2 to Italian, I've learned
more about IF inner-works and "secrets" than I ever had in my whole life
(been into IF since the late 80's), because it was a chance to study how the
clockwork behind the library worked. I won't lie, the ALAN StdLib 2 is a
fairly huge codebase, but fortunately the ALAN syntax is simple enough to
make its study a realistic goal.
TADS-3 is definitely the most powerful IF authoring tool ever created.
I've been studying the source of its official library on and off for quite
some years now, but being over 27.000 lines of code it's no easy task.
Also, with power comes complexity, so the TADS language itself is very
demanding to master, it's just like studying C++ (their paradigms and syntaxes
are very closely related).
If you are looking for an easy to master (not just learn) IF programming
language, then ALAN is probably your best entry-level choice, because ALAN is
as simple as it can get — yet, without giving up power and features, since
ALAN also provides all the crucial features needed for most IF games.
But if you're planning to create a game with "exotic" features like complex
handling of liquids, objects that can be cut into smaller pieces, etc.,
then you might need TADS-3's super-powers to achieve that.
I've taken liberty to write a long reply because, having been at some point
in your exact position myself, I'm aware that choosing an IF system is going
to have a huge impact on how you're going to spend your free time in the
upcoming year. Making rushed choices will only lead you to dead ends where
you waste precious time only to discover that the tool at hand is not the
right choice for you, and then you're back to square one (and you've mentioned
having gone down that path already). Therefore, I hope that these consideration
that I've put forth in my replies might guide you in making the right choices,
so that you'll be making the most of your free time and achieve your goal and
create the adventure(s) you're planning to.
Best regards
Trsitano