Okay so if that works for you we’ll stick with that since I actually found something similar with spawning alot of meshes, I actually didnt remember till you mentioned it but I did have some camera frustrum culling issues with instances when I was panning really quickly but Im sure the performance outweighs the drawbacks. I think it goes to the amount of drawcalls and instances have draw call batching which could be why it was suggested to use volumes.
There are a few ways to speed up searches, first would be narrowing the search field. If you know youre searching for a water tile, or tundra etc there are ways you could narrow the field and search only the required indices. Keeping a list of boundaries for continents would certainly help, if youre searching water you would avoid any index within the bounds of a continent, C++ does have some handy things like checking sets if one contains another and so forth. Sublists are extremely handy and if you really need them I highly recommend a concept called skiplists, its like a weighted array that can speed up searches quite alot in the right conditions.
I did it to find the tropical climate, you know based on the enum how to slice each section of the columns. Basically I had to round to make it a valid array index because they are integers not floats.
Yes ofcoarse and this neighbour data is useful in the actual gameplay too. Like I said for generating routes over tiles. In terms of generating islands though its pretty easy to just choose a random neighbour and give it some land with preference to neighbours already with land adjacent but thats just another example.
Yup those seem straight forward enough, its much the same with grabbing all tiles along the equator for instance, you just have to account for both odd and even numbers, odd meaning there will only be a single strip of equatorial tiles and even meaning there will be 2. You obviously even have some kind of algorithm for knowing how wide each climate should be at a certain map size, if its customizable or what not.
Its not as hard as you might think, if you are drawing single lines all you have to make sure is that it doesnt back over or cross over itself kinda like snake, the odds on it winding itself into a spiral though are next to none (it is possible though). Using the same example as before [Tile 3, Tile 6] we know the line has to go along either of those two and we know they both share Tile 5 adjacent so there is actually only 2 possibilities to start the path [Tile 3, Tile 5) or [Tile 6, Tile 5] if you actually make it so it can only move forward choosing 2 or 3 of the most forward directions then the line should slice the map vertically eventually.
Ahh Im glad I am being helpful, this is actually interesting for me too since Ive not actually studied much so its abit of a test to see if I can understand how to do this. Set theory and probabilities are my two kinda pet subjects lol