Spatial ArrangementPuzzle

Solution requires placing, rotating, or organizing tiles or objects in physical space according to a rule set.

Falling pieces are placed and stacked into a grid according to a rule set.

How spatial arrangement works in Godot

Placement puzzles are a grid array plus a validity rule plus a goal check. The grid is data; a TileMapLayer is just one way to draw it.

Arrayprimitive

Hold the board as a 2D array of cell states. Every placement, rotation, or move is a write to this grid — the source of truth.

var grid := []   # grid[y][x] = piece_id or 0
func place(x, y, piece):
    if grid[y][x] == 0: grid[y][x] = piece

TileMapLayernode

A convenient renderer/input surface for the grid: world coordinates map to cells via local_to_map, so clicks land on the right array index.

var cell = $Board.local_to_map(get_local_mouse_position())
place(cell.x, cell.y, current_piece)

Signalsprimitive

After each placement, run the win check against the target configuration and emit solved (or line_cleared) on a match.

signal solved
func check():
    if grid_matches(target): solved.emit()

In short: Grid array; validity check on each placement; win condition checks target configuration

Retro games that use spatial arrangement

11 catalogued game(s) use this mechanic, spanning 1983–1999.

Related puzzle mechanics

▶ Explore Spatial Arrangement interactively — see every game + the Godot system