Hello Amos,
Hi,
Thanks for the welcome and all the suggestions! They are really useful, I will certainly looking saving/loading with xstream.
You're welcome

I do plan to continue developing the game after the uni project is over. I would like to (if the rest of my group agree), turn the game into a tutorial for Xith3D.
Great idea!
I was wondering if some one could point me to tutorials about nodes, branchgroups and such like.. I have basic understanding of them but could do with some more information.
I saw Marvin tutorial.. is there something missing in it ?
Also any pointers on building a 3D maze from a 2D array of int where 1 is a wall and 0 is open...?

Well, aside from the basic method Marvin suggested you, you could also have a data structure with an array of "Cell" objects :
public class Cell {
public boolean left, up, right, down;
public void setAllOn() {
left = true;
up = true;
right = true;
down = true;
}
}
Then you can translate your array of booleans for false = no wall and true = a wall with that sort of code :
public Cell[][] toCell(boolean[][] level) {
Cell[][] cells = new Cell[level.length][level[0].length];
for (int x = 0; x < cells.length; x++) {
for (int y = 0; y < cells[0].length; y++) {
cells[x][y] = new Cell();
}
}
for (int x = 0; x < cells.length; x++) {
for (int y = 0; y < cells[0].length; y++) {
if (level[x][y] == true) { // "== true" optional, more explicit
cells[x][y].setAllOn();
try {
if (cells[x - 1][y].right) {
cells[x - 1][y].right = false;
cells[x][y].left = false;
}
} catch (Exception e) {}
try {
if (cells[x + 1][y].left) {
cells[x + 1][y].left = false;
cells[x][y].right = false;
}
} catch (Exception e) {}
try {
if (cells[x - 1][y].up) {
cells[x - 1][y].up = false;
cells[x][y].down = false;
}
} catch (Exception e) {}
try {
if (cells[x + 1][y].down) {
cells[x + 1][y].down = false;
cells[x][y].up = false;
}
} catch (Exception e) {}
}
}
}
return cells;
}
And then you would build your level graphic representation from the Cell[] table, with only textured org.xith3d.geometry.Rectangle(s).. see what I mean ? It's really a great optimization since it removes all faces which are between two blocks (well, If I haven't made any mistake in the code, haven't tested it). And you could also not put face at the bottom of blocks, since you won't ever see your level from under.
Better still would be if you have a "line of wall", to unite quads which are parallel to each other (that would save a lot of power, too).
So you could have really big levels and still having your game to run on minimal hardware configuration.
Would it be ok to have a Xith3D logo in the game? Say when the game starts. I think it only fair that we recognize Xith3D and work that was put into it.
I'm currently working on a small 3D cinematic with a Xith3D logo (in 3D).
I'll try to make it as convenient as possible to include in any game.
Amos
PS : Blender rocks ! Transforming the 2D image into a 3D logo has been really easy !