developingGAMA - gama-platform/gama GitHub Wiki

Developing GAMA

GAMA is written in Java and assembled from Eclipse/OSGi plugins: the GAML language (Xtext), a runtime API and its implementation, a desktop application, a headless runtime, and many extensions. This section explains how to set up a development environment, how the code is organized, and how to extend GAML with new plugins, skills, statements, operators, types and species.

Most of the setup is automated by the GAMA Developer Tools, an Eclipse plugin that installs the sources, checks the workspace, launches GAMA, repairs generated code and creates extension skeletons. GAMA > Get started... is the recommended guided route; the installation page also documents the manual route. This wiki is the single developer guide for setup, architecture, extension development and release builds.

Where to start

Set up your workspace with Installing the development version. Then use Architecture of GAMA as your codebase map and Introduction to the GAMA Java API to explore its main interfaces. For a first extension, follow Developing Plugins; to package a runnable application, see Creating a release of GAMA.

Requirements at a glance

Component Version
IDE Eclipse IDE for Java and DSL Developers 2026-03 or newer, with JDT, PDE and Xtext/MWE2, running on Java 21 or newer
JDK used to compile and launch GAMA JDK 25 (a full JDK, not a JRE)
Developer tools Update site https://gama-platform.org/gama.devtools/
Command-line build (optional) Maven 3.9 with Tycho, running on JDK 25

Contents

  1. Installing the development version
  2. Introduction to the GAMA Java API
    1. Architecture of GAMA
    2. IScope
  3. Developing Extensions
    1. Developing Plugins
    2. Developing Skills
    3. Developing Statements
    4. Developing Operators
    5. Developing Types
    6. Developing Species
    7. Developing Control Architectures
    8. Index of annotations
  4. Creating a release of GAMA
  5. Generation of the documentation

New contributors should start with Installing the development version, choose the guided Get started... path or the manual instructions, then read the architecture overview. Plugin developers migrating code written for earlier versions should also read the GAMA 2026 migration guide. Before contributing, see the contribution guidelines.