I agree, it does. And what you’re building depends on how much optimization needs to be considered from the start. sometimes this can nothing and sometimes you really need to have a plan. The later only really matters if you know what to plan for, and most users don’t know so it’s relatively futile for many people to build real-time levels with any kind of performance. I think it’s a big reason why people give up half-way through projects because they get to a certain point and realize that they are going to have to redo everything to get the result they were aiming for.
That really depends. I build my own atlased kits, and when I’m building a level, I know pretty accurately how my levels are going to perform due to consistency of the way my models are built. This is of course after thousands of hours of studying profiler results over the years and building my own environment assets, shaders and such. I basically know what my stats are going to be on average down to square meter with a guestimate sliding scale for nature shaders, overdraw and microtriangles. My system actually follows traditional construction estimating processes used for materials on real world buildings. It’s sort of the same thing. If you were creating a building brick and mortar, you’re going to know your cost upfront within a 10% threshold before you start. It can work the exact same way with performance overhead when creating the same building in digital format. Your price for square meter (or square foot as we do in the states) is basically like your average m/s delay for square meter. It’s absolutely doable and can even be easy when you are able to make your unknown variables into reliable constants before you start.
I use the plain old stats window in play-mode first as it’s usually sufficient to pinpoint most bright burning fires, set-pass calls, shadow casters, & batches are by far the most common and biggest bottlenecks people tend to hit first. The main thing the stats window doesn’t give me is VRAM usage, but I already know what my texture budget is before I start building a level…ie usually the bulk of vram allotment. Profiler in development build is the most accurate and useful for pinpointing further if necessary. I don’t need to the profiler for building static environments, dynamic objects and scripts though absolutely useful to me.
For very small desktop levels are strictly prototyping I agree, and if you’re doing that it’s usually best to do basic blocking at that point. For mobile, VR, or open worlds that’s a recipe for failure optimization-wise because you know going in that you gotta do optimization pedal to metal style no matter what. If you build a level kit bash style combining the typical run of the mill average environment assets (with a thousand different materials), that’s going to be an optimization problem no matter what platform you’re targeting. It’s a huge time sink if you are certainly going to have to replace every single mesh. As you know, this approach also takes precision discipline for file naming and can be a lot. I think we might of had a conversation related to this many years ago…can’t remember for sure.
But yeah, large open world levels or even moderately sized maps of a couple square kilometers can benefit greatly from knowing what you’re getting into first.
You can wing it and go optimize after the fact and use something like mesh baker to create atlases and merge meshes, but without planning around an initial texture budget, you’re going to to get either a much higher VRAM usage and loading time than necessary or sacrifice texture quality.
Other notes…
@Jinxology mentioned using a small terrain for background outside the window. That’s a performance hog with no visual benefit. Use meshes if possible and place your trees like you would any other regular prefab. Thank me later.
The right answers for static level optimization (eg the environment) really comes down to how big of level you are building and what platform(s) are targeted blah blah blah. If you’re building a small or linear level for desktop, or an interior where you have lots of obstructions to make opportunity of various culling practices, then yeah kitbash away and shoot from the hip building the level because some types of environments are inherently 100x easier to optimize after the fact than others due to not having vistas and long ranges of sight dense with game objects.