wouldnt a single matrix [x,y] be the same as a 2-dimensional array in delphi?
[pascal]
var
Player: Array of Array of TPlayer;

Player[x,y].Name := 'NewPlayer';
[/pascal]

can make more dimensians also, if you make a type that is either a single array or a two-dimensional...

[pascal]
type
TPlayerArray = Array of TPlayer;

var
Players: Array of Array of TPlayerArray;

Player[x,y,z].Name := 'NewPlayer';
[/pascal]