Models that users want to simulate in GAMA have to be written in a special language, called GAML (short for GAma Modeling Language)
GAML is born from the necessity to have a high-level declarative way of defining and reusing structures found in almost all agent-based models. See here for more information about its background.
Although this choice requires users to learn a new programming (or better, modeling) language, everything has been made in GAMA to support a short learning curve, so that they can become almost autonomous in a limited time (informal measures taken at the different events centered on GAMA have shown that one day is enough to acquire sufficient skills in writing complete models in GAML).
The documentation on GAML is organized in 5 main points:
- Description of the general structure of a model: see this page
- Description of the declaration of species (and all their components): see this page and all its subpages
- Description of the declaration of experiments: see this page for regular experiments and this one for batch experiments.
- Reference of the language regarding all the structures provided to modelers
- Recipes of how to use special or advanced features offered in GAML: see this page.
In addition, some of the fundamental concepts behind GAML are also described in detail, both on the modeling infrastructure and the runtime infrastructure on which GAML is relying to run experiments on models.