Converting a large number of func_brushes to func_details has helped reduce the entdata problem somewhat. Lots of the details on the sides of the tracks were func_brushes as Hammer seems to be less inclined to move their vertices off the grid when it feels like it than it does with func_details. But I’ve had to do away with that, as func_brushes ARE entities in game while func_details, are not. The other major cut I’ve made so far is to simplify the train’s path_tracks a lot. On some of the turns I was using twice as many path_tracks as Black Mesa did to make the turning smoother and less jerky, but sadly, that’s a luxury the map can no longer afford.
This does mean that, so far, I haven’t cut any actual content from the map. I haven’t even changed the inefficient system for prefights yet, though I’d still like to.
From my understanding of entdata, which is admittedly limited but I’m doing more research and learning as I go along - the actual entdata value itself is kinda bullshit. It takes into account lots of things which the game doesn’t actually consider to be an entity. It’s more about how many entities exist in the game at runtime. The limit for the Source engine is 2048 - apparently the moment the engine exceeds this number of entities it will crash.
The point at which things start to go wrong in Black Mesa seems to be at about 1800 entities - my map currently sits at 1850 even with a fair amount of pruning. I was visgrouping out certain entities just for testing purposes and while running at 1750 entities I had no problem at all, aside from the HECU tending not to gib as much (though you still could). However at 1800 or so stuff seems to stop gibbing entirely and just disappears instead. As JeffMOD said, probably the game trying to keep as many free edicts as possible. Most of the Black Mesa maps seem to sit around 1400 entities (at least according to “report_entities” in the console - though it’s not 100% accurate), with the larger ones hovering around 1500.
The two biggest offenders on A2 seem to be env_sprites (400), and prop_physics (450). You can’t really have a light without an env_sprite as it will look really stupid, but removing a few lights here and there (along with their env_sprite) should help a bit. I’ll have to cut down quite a lot on the physics props. This may serve to help alleviate some peoples’ concerns about the map being a bit too crowded, anyway. Lots of the small cardboard boxes you can find on shelves and things like that will have to go, it’s just necessary.