Last on Land: Devlog #2 Part 2 - Goodbye Gridmaps, Problems Solved
Gridmaps abandoned:
After some further research into Gridmaps I have come to the conclusion that they are not suitable for my needs in the case. Grid maps are a fantastic tool for fast and easy map building however due to my need for an ever changeable map layout with the block destruction playing a key role in the gameplay Gridmaps lack the functionality for collision based tile detection.
New map generation:
After abandoning the Gridmaps I looked into other methods of generating my block styled maps. I spent some time looking into Zylanns work in particular (can be found here: https://github.com/Zylann/godot_voxel ), this module for godot helps generate voxel terrains both blocky and smooth and is a very powerful tool, I would highly recommend checking out Zylanns work to anyone looking to generate terrains in godot. After spending some time looking into this however I decided it was more than necessary for me as it is a tool to generate large world terrain whereas I require only small lower layered maps for my game. Using Zylanns module would be like using an Olympic sized pool to store my single glass of water. For that reason I decided to simply generate the maps out of block mech instances into the open world space. This would be a problematic way of handling things in a much larger game but due to the smaller nature and simplicity of the style of game I am currently able to generate and play maps more than double the size of any maps I may wish to have in the final product without any performance issues, this however does not mean that there will never be performance issues and so I do intend to work on optimisations in order to reduce any potential performance issues in the future as more features get added to the game, one of the first places for me to look will be the MultiMesh node in godot which is designed to take large groups of same mesh objects nearby together and pass them through the GPU as a single call rather than each object being called individually, this should be able to help performance in the future.
New map destruction:
With the new map generation method I am now able to identify exactly what object has been collided with and remove that object from the map. This new system is now far more reliable and seems to work almost flawlessly with (so far) no performance issue even when spamming the deletion.