You could use the tilemap. The tilemap system updates based on partitions - default is 32x32 tiles, but user definable to be smaller or bigger. When a tile changes, a partition is marked as dirty and when you call Build, only dirty partitions are rebuilt. Could work quite well in your case.