Most efficient way to save tile data of an isometric game

If you are trying to do something like the picture you don’t need to store which corners are up/down as it can be deduced from the surrounding tiles.

For example if the current tile is height n and the height of the tile one up from the current tile is height n+1 then the current tile must have “top corner up”

Great! Thank you! I’ll try to implement this. One more thought to complete your answer: is it possible to store height and tile ID as an integer?

Yes. You will need to use Bitwise Operations.

If you divided the integer equally between height and id using the first 16 bits for height and the rest of id

var id = tile & 0x0000FFFF; //mask the first 16 bits
var height = tile >>> 16; //shift the first 16 bits to the right

Setting can be done in a similar mannar

tile &= 0xFFFF0000; //remove id bits
tile |= id; //set new id

tile &= 0x0000FFFF; //remove height bits
tile |= (height << 16);

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)