Issues with batching meshes

I’ve been working on a new game, and I decided to batch the cubes that I’m rendering. I batched them, no problem, reduced the number of draw calls to 1, which quadrupled my FPS :stuck_out_tongue:

Problem is, now I can’t change the translation, rotation, scale and colour of the cubes without having to run the batch function all over again during the render loop, which causes lag. If I want to remove a cube from the batch, I can’t do that either because it’s all in one VAO and I have to run the batch function again to remove the cube.

If Minecraft batches the blocks to optimise the rendering process, how is it that the environment in Minecraft is destructible? And how is it that individual blocks can be outlined, even though all the blocks are part of a single mesh (the chunk)?

I’d love to know how ^this^ is done.