// Constructor
    public GameManager(int numPlayers, GameMap gameMap)
    {
        this.numPlayers = numPlayers;

        // All the start positions, 2 spaces from the corners of the board
        Vector3Int[] startLocations =
        {
            new Vector3Int(0,                        gameMap.mapRadius - 2,    -(gameMap.mapRadius - 2)),
            new Vector3Int(0,                        -(gameMap.mapRadius - 2), gameMap.mapRadius - 2),
            new Vector3Int(-(gameMap.mapRadius - 2), gameMap.mapRadius - 2,                           0),
            new Vector3Int(gameMap.mapRadius - 2,    -(gameMap.mapRadius - 2),                        0),
            new Vector3Int(-(gameMap.mapRadius - 2),                        0, gameMap.mapRadius - 2),
            new Vector3Int(gameMap.mapRadius - 2,                           0, -(gameMap.mapRadius - 2))
        };

        // Create players
        for (int i = 0; i < numPlayers; i++)
        {
            Vector3Int startTileCoords = Hex.HexToTileCoords(startLocations[i]);
            Player     newPlayer       = new Player(i, startTileCoords, gameMap, this);
            gameMap.AddPiece(GamePiece.CreateCastle(newPlayer), startTileCoords);

            // Add new player to list
            players.Add(newPlayer);
        }
    }