---
title: GKGridGraph
framework: gameplaykit
role: symbol
role_heading: Class
path: gameplaykit/gkgridgraph
---

# GKGridGraph

A navigation graph for 2D game worlds where movement is constrained to an integer grid.

## Declaration

```swift
class GKGridGraph<NodeType> where NodeType : GKGridGraphNode
```

## Overview

Overview Use this class to generate a graph containing GKGridGraphNode objects representing a specified grid. Then use methods of the superclass GKGraph to find routes through the graph. To learn more about graphs and pathfinding, see Pathfinding in GameplayKit Programming Guide.

## Topics

### Creating a Graph

- [init(fromGridStartingAt:width:height:diagonalsAllowed:nodeClass:)](gameplaykit/gkgridgraph/init(fromgridstartingat:width:height:diagonalsallowed:nodeclass:).md)
- [init(fromGridStartingAt:width:height:diagonalsAllowed:)](gameplaykit/gkgridgraph/init(fromgridstartingat:width:height:diagonalsallowed:).md)

### Working with Nodes

- [node(atGridPosition:)](gameplaykit/gkgridgraph/node(atgridposition:).md)
- [connectToAdjacentNodes(node:)](gameplaykit/gkgridgraph/connecttoadjacentnodes(node:).md)

### Inspecting a Graph

- [diagonalsAllowed](gameplaykit/gkgridgraph/diagonalsallowed.md)
- [gridOrigin](gameplaykit/gkgridgraph/gridorigin.md)
- [gridWidth](gameplaykit/gkgridgraph/gridwidth.md)
- [gridHeight](gameplaykit/gkgridgraph/gridheight.md)

### Instance Methods

- [classForGenericArgument(at:)](gameplaykit/gkgridgraph/classforgenericargument(at:).md)

### Initializers

- [init(nodes:)](gameplaykit/gkgridgraph/init(nodes:).md)

## Relationships

### Inherits From

- [GKGraph](gameplaykit/gkgraph.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)

## See Also

### Pathfinding

- [GKGraph](gameplaykit/gkgraph.md)
- [GKObstacleGraph](gameplaykit/gkobstaclegraph.md)
- [GKMeshGraph](gameplaykit/gkmeshgraph.md)
- [GKGraphNode](gameplaykit/gkgraphnode.md)
- [GKGraphNode2D](gameplaykit/gkgraphnode2d.md)
- [GKGraphNode3D](gameplaykit/gkgraphnode3d.md)
- [GKGridGraphNode](gameplaykit/gkgridgraphnode.md)
