Un ds_grid est essentiellement un type de tableau à deux dimensions. Vous définissez la grille en définissant sa largeur et sa hauteur, qui définissent ensuite le nombre total de "cellules" dans la grille (la largeur et la hauteur multipliées) et ces cellules sont ensuite utilisées pour contenir différentes valeurs de données (nombres réels ou chaînes). 
Ce type de structure vous permet de définir et de récupérer la valeur des cellules dans la grille en donnant l'indice x et y de celle-ci (qui commence par 0 pour les axes x et y et monte jusqu'à la largeur - 1 et la hauteur -1). Mais vous pouvez également définir la valeur dans des régions de grille spécifiques, ajouter des valeurs uniques et extraire la somme, le maximum, le minimum et la valeur moyenne sur une région donnée, faisant de cette structure de données la plus polyvalente possible.
Lors de l'accès aux structures de données de la grille DS, vous devez toujours essayer d'utiliser des valeurs entières pour la position de la cellule, et tous les index non entiers seront GameMaker Studio 2 par GameMaker Studio 2 si vous ne le faites pas. Si ce n'est pas ce dont vous avez besoin, alors vous devrez faire l'arrondi vous-même avant de passer l'index que vous souhaitez vérifier.
> Les fonctions suivantes concernent les grilles DS.
- ds_grid_create
- ds_grid_destroy
- ds_grid_width
- ds_grid_height
- ds_grid_resize
- ds_grid_clear
- ds_grid_set
- ds_grid_set_disk
- ds_grid_set_grid_region
- ds_grid_set_region
- ds_grid_shuffle
- ds_grid_sort
- ds_grid_get
- ds_grid_get_max
- ds_grid_get_mean
- ds_grid_get_min
- ds_grid_get_sum
- ds_grid_get_disk_max
- ds_grid_get_disk_mean
- ds_grid_get_disk_min
- ds_grid_get_disk_sum
- ds_grid_add
- ds_grid_add_region
- ds_grid_add_disk
- ds_grid_add_grid_region
- ds_grid_multiply
- ds_grid_multiply_disk
- ds_grid_multiply_region
- ds_grid_multiply_grid_region
- ds_grid_value_exists
- ds_grid_value_disk_exists
- ds_grid_value_x
- ds_grid_value_y
- ds_grid_value_disk_x
- ds_grid_value_disk_y
- ds_grid_copy
- ds_grid_read
- ds_grid_write
En dehors de ces fonctions spécifiques, vous pouvez tous utiliser une expression (appelée accesseur ) pour ajouter ou modifier le contenu de votre ds_grid. Cet accesseur ressemble à un tableau 2D avec la syntaxe suivante:
grid_index[# xpos, ypos]
Vous pouvez trouver plus d'informations, ainsi que des exemples, à partir de la page Vue d'ensemble du GML sur les accesseurs.