Various collection of examples to learn ALAN IF v3 — the Alan Interactive Fiction Language. Provided as a public service by the Alan Interactive Fiction Development team.
- Alan Syntax by Examples — Learn the ALAN language through practical examples.
- The Alan Recipe Book — Learn how to implement various gimmicks and effects in pure ALAN code.
Created by Tristano Ajmone in June 2, 2019.
Alan SDK v3.0beta6
Table of Contents
- Project Contents
- About ALAN
- About This Project
- Project Organization
- Contributing
- Project License
- Third Party Assets Licenses
- External Links
/_assets/
— Shared assets (images, etc.)./_dev/
— Project maintainers' assets:/AlanSDK/
— Alan SDK binaries for Windows (for toolchain automation).
/recipes/
— The Alan Recipe Book./syntax/
— Alan Syntax by Examples.ABuilder.exe
— Tests and builds the project (locally and on GitHub via Travis CI)ABuilderLICENSE
— MIT License forABuilder.exe
.CONTRIBUTING.md
— Contributors' Guidelines.LICENSE
— MIT License.
The Alan Interactive Fiction Language is a powerful tool for developing text adventure games. What makes ALAN unique amongst the IF authoring tools is that it doesn't provide a standard library (although various libraries are available if you need one, like the ALAN Standard Library by Anssi Räisänen); instead, ALAN provides all the basic tools for building your own adventure from the ground up, thus allowing you the uttermost freedom in tailoring your own adventure world and model.
This also means that ALAN is a truly locale-agnostic tool (i.e. it doesn't enforce any particular spoken language) because although it natively supports English, Swedish and German default message responses, you are free to override these messages with your own. Sine ALAN doesn't provide any verbs definitions, you won't have to translate any verbs to your native language, instead you'll be free to write your own verbs according to needs.
With ALAN being such a flexible and powerful tool, we need to be mindful of Benjamin "Ben" Parker's wise words of advise to his nephew (Peter Parker, aka Spider-Man):
With great power there must also come great responsibility.
The above motto holds true for IF authors working with ALAN, for the basic tools offered by the ALAN language can be combined in infinite ways to create a unique text adventure according to needs. The lack of a strict paradigm is both a blessing and a challenge, for you'll need to know how to wisely combine all the available tools offered by the language to maximize results and avoid pitfalls.
Since most constructs of the ALAN language were thought as general purpose tools that can be flexibly adapted to fulfil most text adventures needs, without imposing any predefined paradigm, the best way to learn ALAN is by looking at practical examples by different authors.
This goal of this repository is to provide a wide collection of practical examples — ranging from the basics to more advanced and complex examples — and, most important, this project is community oriented — meaning that anyone can contribute their examples to the project.
Since there are many ways to implement solutions to common IF problems, different authors will have their own coding style and approaches to the various challenges of creating text adventures. The ALAN community is a small and friendly group that values diversity, freedom and group discussion — there are no "benevolent dictators" in the ALAN community, and everyone's voice is heard and taken into account whenever discussing new features, projects and change. Everyone's contribution is important to the ALAN community.
The project being in its early stages, we'd rather leave its structural organization open for now, and let it be shaped by the actual contributions. As examples start to flow in, we'll be able to organize them into categories by subfoldering them in a way to make consultation easier.
Currently, there are two sub-projects available: The Alan Recipe Book and Alan Syntax by Examples, both in the making. More directories will be added as the need arises.
/syntax/
— Alan Syntax by Examples.
A collection of examples to illustrate how to use the various constructs of the ALAN syntax, organized by topics. Intended as a supplementary tool for The Alan Manual.
/recipes/
— The Alan Recipe Book.
A collection of examples on how to implement various gimmicks and effects in pure Alan code. Examples are organized following The Inform Recipe Book that ships with Inform 7.
Anyone can contribute examples to the project, via Git and GitHub. By contributing your examples to this project, you are donating your code to the Alan community under the MIT License (although it will still be attributed to you, and you'll retain its paternity).
More information on how to submit contents to the project can be found in the Contributors' Guidelines document.
For questions and discussions, you can either:
- open an issue — for all matters directly concerning this repository.
- post on the ALAN Yahoo Group — for all discussion involving the ALAN community.
The Alan by Example project is released under the MIT License. All examples code in this project belong to the Alan Interactive Fiction Development team — i.e. are donated to the Alan community.
MIT License
-----------
Copyright (c) 2019 Alan Interactive Fiction Development team:
https://github.com/alan-if
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
The above license doesn't apply to third party assets which might be included in this project, which are governed by their own license terms and copyright notice — as indicated by their license files, which shall be included along with those assets, as well as being mentioned in this section.
The project includes the following assets created by third parties, each governed by its own license terms.
The above folder contains the Windows executables of the Alan SDK, which are released under the terms of the Artistic License 2.0:
ABuilder.exe
ABuilderLICENSE
— MIT License.
The ALAN Builder tool was created by Tristano Ajmone and donated to the Alan Interactive Fiction Development team under MIT License.
MIT License
Copyright (c) 2019 Tristano Ajmone and the Alan IF Development team
https://github.com/alan-if/Alan-Builder
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Please, note that the ABuilderLICENSE
file contains additional licenses for third party components used by the PureBasic compiler, which must be included with any distribution of the Alan Builder application in compiled binary format (but not necessarily so if only the source code is being distributed).
The full source code (in PureBasic) can be found on the ALAN Builder repository:
- www.AlanIF.se — the ALAN website.
- ALAN Yahoo Group — for community help, announcements and discussions.
- Alan sources on Bitbucket — source code repository on Bitbucket.
- Alan sources on GitHub — source code repository on GitHub.
- Alan IF Development team — GitHub profile and public projects.
- Alan Docs — GitHub repository for Alan documentation.
- The ALAN Manual — online-readable version of the latest ALAN Adventure Language Reference Manual.
- Alan Cookbook v2 — by Anssi Räisänen.
- The Alan Beginner's Guide — by Michael Arnaud (2006). Tutorial source files available.
- Alan IDE Reference Guide — by Robert DeFord (2018).
- Samples & examples for alan v3 — on ALAN website.
- ALAN Standard Library — by Anssi Räisänen, GitHub repository.
- ALAN Library v0.6.2 — an earlier (but still working) library (2002–2007), mainly used to compile legacy adventures.
- ALAN StdLibLab — experimental playground for variations on the Alan StdLib.
- Alan Italian — Italian port of the Alan StdLib.
- AlanIDE — a complete Alan Integrated Development Environment, built in Java/Eclipse by Alan developer Thomas Nilefalk. For more info, see:
- AlanIDE info page.
- Alan IDE Reference Guide — by Robert DeFord (2018), PDF document.
- AlanIDE sources — JAVA source files, on GitHub.
- Sublime Alan IF — Sublime Text 4 package for Alan 3 (working Alpha).
- Alan Goodies — A collection of assorted assets for Alan.