+3 votes

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:

  1. Ease of creating complex geometry
  2. Managing updates and manual work involved in any change
  3. 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?

in Engine by (211 points)

Please log in or register to answer this question.

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read Frequently asked questions and How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to [email protected] with your username.