Page 1 of 1

The THROWuglarity

Posted: Fri Jul 03, 2015 4:29 pm
by Actionb
A few months (or years, forgot) back, after some performance tweaks, you could actually enjoy a loose singularity without much lag. Even WITH the speed boost it was given shortly after, playing felt rather smooth. Bombs were pretty to watch considering it wasn't just "SMOKE--LAAAAAAAAAAAAAAAAAAAAAG--EVERYTHING IS GONE"; you could actually see the destruction happening.
I was really heavily impressed with that feat, considering SS13 has always been a laggy piece of garbage.
Ever since singularities and bombs have begun throwing shit around, while amazing gameplay-wise, the lag has become worse than ever before.
As soon as singularity is free, the game usually just stops for 5 seconds straight and whenever it affects a large chunk of the station, the lag can be 10+ seconds long.
Are thrown objects really worth having such a horrible laggy time?

Re: The THROWuglarity

Posted: Fri Jul 03, 2015 4:31 pm
by MisterPerson
Everything I've seen suggests it's fastmos, not throwing.

EDIT: Profiles from a few days ago:
http://privatepaste.com/09e5c70f5b - compare throw_at() to everything else, air and lighting subsystems are monsters
http://privatepaste.com/bcc7c3ad00 - same info but what parts of air and lighting ss's are awful. Also Del() is still :(

Re: The THROWuglarity

Posted: Fri Jul 03, 2015 4:33 pm
by Remie Richards
While not 100% relevant I'll step in a pinpoint the lag exactly, it is NOT the fact they throw the items, no no! that's fairly lagless, it uses a fairly common line drawing algorithm for throwing.
what's laggy about it is each thrown object is spawn(0)'d off, and a spawn(0) is equivalent to making all elements in a loop happen simultaneously, that's all at once! so when you have let's say for the singularity, 150-250~ objects on screen being thrown at the exact same moment, you'll bet your ass that's going to lag.

however if we remove the spawn(0)... objects will get thrown one by one, now for the singularity, that might work, it may not look ~that~ weird, but for an explosion? chucking one object a frame which arguably will still be going after the explosion effect ended? that's gonna look ugly.

Edit: fastmos doesn't help but the lag occurred before fastmos.

Re: The THROWuglarity

Posted: Fri Jul 03, 2015 4:35 pm
by MisterPerson
The spawn()'s are definintely a problem, especially since they're totally fucking unnecessary.

Re: The THROWuglarity

Posted: Fri Jul 03, 2015 4:37 pm
by Remie Richards
They're necessary to get the simultaneous effect, which for everything except the singulo (maybe) would look absolutely disgusting.
I'd rather remove explosions throwing items altogether than just remove the spawns on explosion item throwing (but I ain't removing explosion item throwing any time soon because muh embedding feature)

Re: The THROWuglarity

Posted: Fri Jul 03, 2015 4:42 pm
by Saegrimr
It'd probably help if the repeated metal rod and glass shard fuckstorm would delete the items if they pass through the singularity. Otherwise it just throws them back and forth passing straight through the singulo forever unless the item happens to be within that little zone that deletes everything whenever the singulo actually does its movement (and not drift).

Re: The THROWuglarity

Posted: Fri Jul 03, 2015 4:47 pm
by onleavedontatme
I cant imagine generating thousands of floor tiles to throw helps much either. The whole thing seems pretty unnecessary a radiation spewing vortex destroying everything is already very deadly.

Re: The THROWuglarity

Posted: Fri Jul 03, 2015 4:49 pm
by Remie Richards
Kor wrote:I cant imagine generating thousands of floor tiles to throw helps much either. The whole thing seems pretty unnecessary a radiation spewing vortex destroying everything is already very deadly.
Fairly certain like most objects these days, the "item" form is actually stored inside the object and simply removed from the contents list, meaning the singularity actually causes no New() lag.

Re: The THROWuglarity

Posted: Fri Jul 03, 2015 5:01 pm
by Cheimon
As far as I'm concerned, the singularity is only cool as long as it's non-laggy. The moment it starts to seriously lag, any interest that its deadliness holds dies.

It's not amazing gameplay-wise if it takes 20 minutes to play through 7 of in-game time.

Re: The THROWuglarity

Posted: Fri Jul 03, 2015 6:22 pm
by Actionb
While explosions also lag a lot, they only do so only once. The singularity, however, is just the lag incarnate at this point and really annoys every single player.
Would it be possible to tweak the items throwing feature for the singularity only? All in all, singularity produces so much destruction and chaos, people would probably barely notice when you removed this spawn(0) thingamabob, giving up simultaneity in favor of less lag.

Re: The THROWuglarity

Posted: Fri Jul 03, 2015 9:42 pm
by Bombadil
Remove Spawn(0) from singulo and keep it on explosions I found the solution everyone we can go home

Re: The THROWuglarity

Posted: Fri Jul 03, 2015 11:09 pm
by Incomptinence
MisterPerson none of the throwularity is essential. Even old non drift singularity was a round ender this is just icing on the restart cake and we don't really need it.

Re: The THROWuglarity

Posted: Fri Jul 03, 2015 11:31 pm
by MisterPerson
The throwing could, at the very least, be toned down to happen less frequently.

Once again, fastmos is a much bigger contributor. The singulo is laggy even when it's off in space not doing anything. The atmos subsystem can take 3 deciseconds to run. For reference we have 9 deciseconds total each tick to use, so the air ss alone accounts for a third of any tick it decides to run. And if it decides to run on the same tick as the lighting, garbage, obj, machine, or lighting ss, yeah that'll cause some serious overtime on ticks.