I am creating a grid- or tiled-based map system in C++. That system uses quadratic meshes as ground planes for each grid cell.
Maybe something like this (just an example, not my game):
First I tried to create a new simple actor, with a static mesh component, for each grid cell / ground plane / tile. But it turned out for large maps (say 100 x 100 = 10.000 map cells or even larger), for example when rotating the camera around the map zoomed out, then FPS would drop drastically. I thought that are just too many actors transformed each tick.
So I changed the system to use instanced static mesh components with one single actor instead. That works fine also for such large maps. However, now I encountered the problem that every time I remove a mesh instance (to replace it with another tile / mesh instance) that removal takes a bit of time, which adds up when I remove many mesh instances at once. From my research this seems to be normal ISM behaviour.
So … what would be a better approach to deal with this requirement of tile- or grid-based maps built UE4 via C++?