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:
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.