Multiplayer maps with good visual graphics, gameplay and FPS. Is feasible?

This is the first time I post on this zone, and I don´t find any kind of repeated/rules thread, so please be comprehensive with me

I made a bunch of maps on Source, some of them being released, so I nearly know all about Hammer and the engine. My question is the following:

**Is feasible a multiplayer map (between 4-8 players) that not only has a good gameplay and FPS, but also it looks great on visual terms?
**
I saw many Gmod maps, as well as other maps from different mods, and the most that I have seen is that usually two of the three features are done at most (Good looking and gameplay, but poor FPS, or good FPS and gameplay, but poor graphics…).

Features of this multiplayer map:

Campaign-type map: This means that players will have to face enemies, platforms, puzzles, events…with all the entity setup that frecuently has (anti-grief systems, dynamic respawns, ambient…). Think about normal-high use of the entdata (always leaving a space for avoid crashes like the ED_Allocs error, of course).

Reduced size: Even with FastDL (you know, a server that download compressed bz2 files to speed up the download), if the players spend more than three minutes downloading files, they will probably disconnect and move to another server, so the total size of the files must be little (100mb with Bz2 compress at maximum). Of course, if the map is an official one and comes with the mod/game, this problem is avoided.

Good FPS: Self-explanatory. You don´t want a drop of them on an open space or on a zone where is a fight. This becomes more annoying if your ping is more than 150.

Decent visual of the map: No one wants a room with only 6 brushes, even on GoldSrc. Displacements, particles, textures, models, good brushwork…Not at the level of Black Mesa/Dear Esther, but something good that doesn´t hurt your eyes.

This zone is populated by good mappers, so I´m know you will give me a good answer.

Definitely possible, as long as good optimisation is put in place.
Other things would have to be compromised, especially size of the map, and physics (for something like this, it would improve FPS to have more prop_statics with no collision than prop_ragdolls and prop_physics_multiplayers).
As for reduced size, this would depend on custom content used, and generally default HL2 textures are a bit low-res now…the custom models and textures are what constitute most of the map size (after packing and what-not)
Look at some of the CS:GO maps for examples of good, well optimised (well, most of them) and visually appealing maps. Compare them to the CSS ones.

It’s called good mapping. I’m not saying others are bad they’re just aimed at each of your points rather than trying to fulfill all of it.

For my map I’m currently working on I like strike a balance of detail, tactical opportunities, space and beauty but as you’ve said fps suffers. A good medium sized map can have all those features, you just need to understand limits and cheat around them.

Yes.

But take into account that visuals need to work with gameplay principles.

Such as adding more detail to high-traffic areas and less detail to others, also usage of colour and other indicators to provide natural directions.

Rewarding players for effort is also important.

As for drops of FPS during large fights, area portals and vvis can cover this well, simply ‘contain’ the player in the arena (even if the arena does not look like one) such as through the use of a broken ladder or small drop that they can’t climb back out of, then the vision to the areas they came from or are yet to go to can be culled from rendering.

Of course, optimization is inside the good FPS features. It would be a madness make a map without using nodraw, func_detail and the hint-skip brushes (like the map of a friend did, and now i´m fixing).

About the FPS loss on the battles, the problem comes when the players already are on the area, where they can´t go back, and is an open space.

How do you check the control of the FPS? playing at high spec looking at the net_graph? Also, when I have a loss, and after checking the visibility with mat_wireframe 1, I´m unable to see what is the responsible of it when using the showbudget command, since all the parameters have a low value.