   What is the best way to deal with a growing landscape?
  I'm working on a graphics engine, and I am sort of stumped on how to approach this idea.I want to build a world using "cube tiles" (one tile might be a tree on grass; another tile might be a road; etc.). I want to be able to add tiles as the game goes on (as in, the player can place a tile like in a board game), but I'm sort of at a loss on how the data would be handled.My current train of thought -- Store the overall board in a collection of arrays. When a new tile is added, create new arrays with the tile data added. Pipe the arrays off to replace the VBO.My idea feels slow (each time a tile is added). How should I do it? Should each individual tile be its own VBO (simply render duplicate cubes again transformed the same VBO)? The board is essentially static except for when a tile is added on. I'm not sure yet if I need a solution for removing tiles as well, but I think I'd want that in there if for no other reason than to allow undo.Thoughts?   
  You don't need to recreate the array each time you add a new tile. You could use dynamic arrays instead. The average time for adding a tile would go down significantly, but the trade off is that you will always have some memory that is allocated but not in use. I don't see why tiles which are exactly the same can't use the same VBO, unless you change your mind and want tiles to also be deformable.   