Basically, to all your questions:

**Yes**Hexagon grid, some tips to help you go on the right way:

private void drawHexGridLoop(Point origin, int size, int radius, int padding) {

double ang30 = Math.toRadians(30);

double xOff = Math.cos(ang30) * (radius + padding);

double yOff = Math.sin(ang30) * (radius + padding);

int half = size / 2;

for (int row = 0; row < size; row++) {

int cols = size - java.lang.Math.abs(row - half);

for (int col = 0; col < cols; col++) {

int xLbl = row < half ? col - row : col - half;

int yLbl = row - half;

int x = (int) (origin.x + xOff * (col * 2 + 1 - cols));

int y = (int) (origin.y + yOff * (row - half) * 3);

drawHex(xLbl, yLbl, x, y, radius);

}

}

}

basicall you need to have a regular grid (2D array) but the columns should be slightly offset a bit, like in the example above.

here is the source:

https://stackoverflow.com/questions/20734438/algorithm-to-generate-a-hexagonal-grid-with-coordinate-systemabout you questions if jPCT will do the trick, well it depends on your skills and goals, if you want to see out some works that use grid based structure and layout, you can check some of my work below: