Skip to content

alan-if/alan-by-examples

Repository files navigation

ALAN by Examples

Build Status

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.

Created by Tristano Ajmone in June 2, 2019.

Alan SDK v3.0beta6

Table of Contents


Project Contents

About ALAN

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.

About This Project

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.

Project Organization

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.

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.

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.

Contributing

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.

Project License

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.

Third Party Assets Licenses

The project includes the following assets created by third parties, each governed by its own license terms.

Alan SDK License

The above folder contains the Windows executables of the Alan SDK, which are released under the terms of the Artistic License 2.0:

Alan Project Builder

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:

External Links

Documentation and Tutorials

Code Examples

Libraries

Editors

Miscellanea

  • Alan Goodies — A collection of assorted assets for Alan.