So we got started on making a sandbox game. All went well. We got our terrain generation classes working and rendering. It worked perfectly fine. But I'm looking for ways to optimize it. Apparently, the terrain generation code doesn't have the so-called "Batching" where the whole world is ,if I'm right, being rendered and handled by the core engine as a single data or entity. Each and every tile is being rendered individually in every game loop. Which is, in my opinion, is god awfully horrible. Unfortunately, we still haven't found a way to fix this. I'm not looking for exact codes to do this rather I'm looking for tips and techniques to achieve this. We're relatively new to game programming. I just thought that I needed to stress that part out.
Also, we're using "IDs" for each tile of that the terrain generation uses. At the meantime, we are using 6 IDs just to keep it simple. No liquids yet. The coders of the terrain generation used std::map for the tile/item ids of the game. Because, we're also hoping to include a mod support using lua in the near future. We're using SFML 2.1.
How can we improve this terrain generation bug? Can anyone give any tips, technique or maybe even just a starting point to how we can fix this?
Also, can anyone give us a starting point to how we can serialize the world so we can save it into a file(Save/Load) or for use with sqlite? We tried reading minetest's code. Unfortunately, we aren't really that good at reverse engineering an existing code. So we got a little confuse on the most part. Sorry if I may sound like a complete noob. I just wanted to get this issues done and fixed asap.