I am working on a FPS game - soon I'll be starting to design the first level for the game.
I am wondering what will be the best way to approach this.
What bothers me are a few things:
- Ease of creating complex geometry
- Managing updates and manual work involved in any change
- Performance of the final product
My natural instinct is to model the basic level geometry in Blender (and then fill it with static meshes and other objects) - map the textures to walls etc. I am worried however that any COLLADA export will require me to manually assign materials again, and generate a static collision mesh from the visible one every time I update the geometry. I also had problems with the newly exported COLLADA files didn't refresh or started importing with a different scale for no apparent reason.
I've heard there's a CSG support coming to Godot 3. I wonder if that'd be a better idea for building levels - would that make it easier for me to assign materials and generate static collision objects?
I also wonder if I should design and export each room of my level separately or one big mesh for the whole level is fine?
What does BSP have to do with that? Can I optimize the performance later with any of these approaches?
What about later adding AI enemies - can I generate a navmesh from any of these options? How to update it with a newly imported external geometry?
I'm new to this, there are so many different options and I'd like to know what to do to give myself minimal headache while working on 3D levels.
I didn't even consider gridmaps, as they seem to be very limiting- however maybe I'm wrong? Maybe with small enough grid size it can make designing a 3D level easy and fast, without sacrificing design freedom?
What do you think of all this?