Ns only bug (please read)
badmofo
Join Date: 2002-01-28 Member: 121Members
<div class="IPBDescription">Involving too many entities in visible..</div>I'll e-mail this to flayra too, but i was hoping we could all brainstorm and come up with something.
Ok - this is a mapping specific bug (hence why i posted it here) - and i KNOW other people have had the problem...and I believe I'm just starting to scratch the surface of the underlining problem. Here's the scenario:
I load up my latest compile into NSTR, at every point in the map i get the error "too many entities in visible packet" And in all the most recent areas of my map, I have entities that aren't being drawn. Everything from point entities to brush entities.
NOW i load this same map into regular HL. The engine loads every entity in the map except the func_seethroughs. EVERY OTHER non specific NS entity is loaded. The "too many entities in visible packet" error is gone, and I have everything that should be drawn working (minus the func_seethroughs).
So we have 1 conclusion and 2 possibilities to the reason we are gettin this error. The conclusion is that the error is NOT A MAPPING ERROR...but something wrong with the NS code (map in hl works fine...map in NS does not). So how can we get around this? is the problem simply in the func_seethroughs...or something more deep rooted that than?
Ok - this is a mapping specific bug (hence why i posted it here) - and i KNOW other people have had the problem...and I believe I'm just starting to scratch the surface of the underlining problem. Here's the scenario:
I load up my latest compile into NSTR, at every point in the map i get the error "too many entities in visible packet" And in all the most recent areas of my map, I have entities that aren't being drawn. Everything from point entities to brush entities.
NOW i load this same map into regular HL. The engine loads every entity in the map except the func_seethroughs. EVERY OTHER non specific NS entity is loaded. The "too many entities in visible packet" error is gone, and I have everything that should be drawn working (minus the func_seethroughs).
So we have 1 conclusion and 2 possibilities to the reason we are gettin this error. The conclusion is that the error is NOT A MAPPING ERROR...but something wrong with the NS code (map in hl works fine...map in NS does not). So how can we get around this? is the problem simply in the func_seethroughs...or something more deep rooted that than?
Comments
I too am wondering if this has something to do with the func_seethrough or another NS specific entity.
Try deleting every single func_seethrough in your map, and see if you don't have a problem then.
<!--EDIT|ken20banks|Mar. 23 2002,18:27-->
That would be funny... <!--emo&:)--><img src="http://www.natural-selection.org/iB_html/non-cgi/emoticons/smile.gif" border="0" valign="absmiddle" alt=':)'><!--endemo-->
Though I'm a bit suspicious... this problem seems to be quite commonly reported here...
Then again, I wonder if NS mappers are a little entity happy... considering how much atmosphere is in most of the levels...
What about particle systems? Could this be the cause? It sounds a bit more like a reasonable source then the func_seethrough. If you think about all those sprites.... would each one be added to the "visible entity packet" or whatever?
I wouldn't be suprised if that's the problem... Func_seethrough's aren't the only NS specific entity that wouldn't run in HL.
Try tossing satchels repeatedly in regular HL using impulse 101. Apparently that does the trick, too.
How much, exactly, is the limit? Anyone know?
I'm not suprised to hear it's reported other places too... it just seems to be quite common here, so I still wonder if the reason why it's coming up so often and easily here has to do with the particle system... Each sprite would be classified as an individual entity, wouldn't it?
Sure, you could get the error by several other means, but havings hundreds of sprites being drawn on the screen sounds like it could really speed up the process of reaching the limit...
I now seriously doubt it's any error in NS's code or anything...
<!--EDIT|ken20banks|Mar. 23 2002,18:39-->
One possible solution might be to combine like entities within one area... For example, if you have 3 pipes hanging from the ceiling that are func_seethroughs, combine all three into 1 func_seethrough. That should contribute to fewer entities being visible at any given moment (despite the fact that just as much is visible). I could be wrong, though, but going through a map doing that with the original 300 or however many func_walls did fix the old svc_bad error... perhaps it'd have a similar effect here.
In normal HL, not many additional entities are not added during the course of a game. There are occasional ammo packs dropped by dead players, but that's about it.
I'm 99% sure that Flayra has had to 'reserve' a healthy number of entities to be used in the creation of new items during a game of NS. There has to be plenty of room for all the buildings, waypoints, weapons, ammo, upgrade towers, cameras, turrets, etc. during play. This means that the maximum number of entities allowable in maps would necessarily be lower than normal.
Personally, I have all kinds of entities all over ns_bast, particle systems included, and I haven't seen this error yet. I <i>had</i> this error once way back when I had adapted ns_bast for the old commander mode. I had very close to 300 brush entities at the time (about half were func_seethroughs), and Flayra reported the "too many entities in visible packet" in several spots along with the non-appearance of newly placed entities. After I recombined the 150 (or so) func_seethroughs into more like 70 func_seethroughs, the problem disappeared.
Not something that the NS team needs to fix... just a limitation that the mappers need to consider. Obviously solved by grouping/deleting entities in busy areas.
i think markaba and i decided that it is probably my extensive use of env_beams (i have about 20 pointed at over 100 possible targets)...i'm gonna take those out and do a full compile and see what happens.
>100 targets?!? Dios Mio! That's gotta be one spectacular looking effect.
I seem to recall Flayra saying their were standard particle systems used by NS for things like welder sparks. You see a bunch of them when you use the ListPS command in the console. I suspect they may have a role to play.
BadMofo, the error message appears when you walk into an area wher you <i>could</i> see too many entiites, it's like a VIS/r_speed thing. It spams so many messages into the console it takes about 5 seconds to clear off my screen when I leave an affected area.
I've already tried combining loads of brush entities to no apparent effect.
Does anyone know if their is a command so I can see the number of entities in the visible packet list?
[edit]
I'm actually considering mannualy re-sequenceing the visible entities in my MAP file so that less important entities are later in the list. Do you think that might workarond the problem?
[/edit]
- It's not a NS problem, it's a HL engine restriction
- Yep, that env_beam sounds like it's the culprit.
- env_particles_custom entities count only for one entity, not one for each sprite. Each func_seethrough counts as one as well.
- Both bast and hera have had this problem briefly, and they have both fixed the problems by reducing the number of visible entities in the area where it shows up.
- This problem will probably surface from time to time during playtesting. When it does, some visible entities in that area will have to be removed to make the error go away. This is a limitation in the HL engine and cannot be fixed (even if I had access to the engine code, changing it would probably have bad side effects in networking or performance).
- When you see this error, you need to cut down the number of visible entities you have.
Stand strong!
<!--emo&:(--><img src="http://www.natural-selection.org/iB_html/non-cgi/emoticons/sad.gif" border="0" valign="absmiddle" alt=':('><!--endemo-->
[edit]
Sorry, that was rather childish. But I think it says how I feel.
Sounds like I have to remove some features fom NS_NEXT and limit myself to purely arcitectural changes from now on <!--emo&:(--><img src="http://www.natural-selection.org/iB_html/non-cgi/emoticons/sad.gif" border="0" valign="absmiddle" alt=':('><!--endemo-->
* bins a TON of cool features *
[/edit]