For the people who have had map crashes: what's your entdata?

Vilepickle

Banned
Oct 25, 2007
372
199
I'm curious. Someone told me they were playing on the new Mach3, which has a pretty high entdata, and it was crashing. For the toystore guy and the studio guy, what is your entdata? Is it under 100%? Mine is

entdata [variable] 378018/393216 (96.1%) VERY FULL!

Let me know.
 

Vilepickle

Banned
Oct 25, 2007
372
199
I'm thinking that this issue can be solved simply by combining many (or all) func_details in a final compile so they aren't all individual. I'm going to give this a go.
 

jakeparlay

L2: Junior Member
Dec 11, 2007
66
2
i think its a heavier load on point entities thats causing maps to crash... reduce sprites, spotlights, particles, etc... i don't think the crashing is affected by brushwork per se

(and I think, if you combine all the detail brushes into one massive func_detail, the whole bunch of 'em will be rendered once a single item is visible... i'm about 80% that this is the case across the map, and 100% sure its true for brushes within the same visleaf
 

Vilepickle

Banned
Oct 25, 2007
372
199
Ok, yeah combining all the details doesn't do anything for entdata. HOWEVER, I did a bit of digging.

THIS is the error showing up (in Mach3 at least on this 32man server):
Error
ED_Alloc: no free edicts

Fix
An error that indicates you've gone over the entity limit. Use fewer entities.

----------------------
This is from the source wiki:

A Source engine server can handle up to 2048 entities at the same time (see MAX_EDICT_BITS in \public\const.h), where each entity may have 1024 different member variables that are networked to clients (MAX_PACKEDENTITY_PROPS). (A CNetworkArray consisting of X items counts as X properties towards the 1024 limit.) Also, each entity can only send 2K of encoded data at a time. See SDK Known Issues List for more information.
 

Vilepickle

Banned
Oct 25, 2007
372
199
Is there any way to check the # of entities you have in a map?
 

Vilepickle

Banned
Oct 25, 2007
372
199
nm, found it.
 

Vilepickle

Banned
Oct 25, 2007
372
199
Yeah, I had around 1850 entities going in Mach3. I'm sure that would add up with a full 32 man server with the player models and projectiles/etc etc to be over the 2048 limit. Time to start cutting.
 

Vilepickle

Banned
Oct 25, 2007
372
199
As a reference for anyone else with this problem, Castle has 1559 entities and does NOT have any edict crashing.
 

Vilepickle

Banned
Oct 25, 2007
372
199
i think its a heavier load on point entities thats causing maps to crash... reduce sprites, spotlights, particles, etc... i don't think the crashing is affected by brushwork per se

(and I think, if you combine all the detail brushes into one massive func_detail, the whole bunch of 'em will be rendered once a single item is visible... i'm about 80% that this is the case across the map, and 100% sure its true for brushes within the same visleaf

I'm testing it right now, as reducing my func_details to one func_detail is about 200 entities.

I'll let you know what I find.

http://developer.valvesoftware.com/wiki/Optimization_(Geometry)#Detail_brushes

^^Says nothing about making many across the map into one detail. Just states that they act as normal brushes after their vis is ignored.
 

Vilepickle

Banned
Oct 25, 2007
372
199
Ok, making all my detail brushes into one actually worked fine. It doesn't draw all of them, it works the same as it did before (draws only in vis range). That saved me a lot of hassle so far.
 

jakeparlay

L2: Junior Member
Dec 11, 2007
66
2
glad to hear you got it sorted :D

can't believe I was wrong on the detail brushes. :lol:
 
K

Kev_Boy

I actually have entdata at 125%. I also had the "no free edicts" error but that was due to an oversized 3D Skybox which was resolved when I shrunk it down some. I've got about 3500 entities (Maximum is at 4096 I believe not 2048) but that's including prop_statics and func_details, I'm not cutting anything! No way.
 
Last edited by a moderator:

Armadillo of Doom

Group Founder, Lover of Pie
aa
Oct 25, 2007
949
1,228
Are you sure func_detail counts towards entities? I could have sworn it was still a brush for rendering purposes. Still, 125% ent data is pretty impressive :p
 
K

Kev_Boy

I've exceeded that with LZ 129 Hindenburg for The Ship before, it shouldn't be a concern as far as I know. It's mostly named things like controlled electrical outlet shocks and of course the light groups that can be toggled on/off.
 

Vilepickle

Banned
Oct 25, 2007
372
199
Well, I reduced my map from around 1850 to 1500 and it stopped the edict crashes. So obviously Valve has something bugged with TF2 approaching 2048 entities. I'm fairly sure the official maps have MUCH more than 2048, but currently 3 custom maps I've known of that have a lot are crashing.

Could it be something with the compiler? I don't know what it could be really, but I've narrowed it down to the 2048 mark and some sort of anomaly happening here.

And yes func_detail does count towards entities, as it reduces the count in Show Information.
 
K

Kev_Boy

I have just played Toystore with about 3 other players for over an hour without any crashing. It does seem to be a problem with either entities or just for the most part, complexity. More players = More complexity.
 

Vilepickle

Banned
Oct 25, 2007
372
199
I tried your map with the 24 bot cfg and it crashed, same crash I was getting. My crash map (with 1850 ents) worked with up to 24 players, but at 24 and above the map crashes. When I reduced it to around max 1600 entities it stops crashing. Try using the bot cfg and testing it out to be sure if it crashes or not.

This crash hard locks my system now so it's kind of blah... so be warned. I have the G15 keyboard with LCD screen where I can kill processes on it though so it isn't an issue.

It's kind of hard to reduce the # of ents if you're WAY over, but try it by saving a new file and keeping your old. Just cut a lot of stuff out of the new one, make func_details all together (select them all with the Entity Report), and run a test with the bots. I'll bet you it will stop.