ULX

Author Topic: RSO Discussion  (Read 7371 times)

0 Members and 1 Guest are viewing this topic.

Offline MrPresident

  • Ulysses Team Member
  • Hero Member
  • *****
  • Posts: 2728
  • Karma: 430
    • |G4P| Gman4President
RSO Discussion
« on: May 02, 2008, 12:25:07 PM »
Garry CANT fix RSO. It's a problem with the engine, something he has no control over.

Changing maps doesn't solve RSO nor does it even address it. Wiping the map (by changing it or otherwise) is simply a work around for this and many other things that GMod has to offer.

Edit by Megiddo: Split from UMaps thread.
« Last Edit: May 02, 2008, 01:59:00 PM by Megiddo »

CasanovaFrankenstein

  • Guest
Re: UMaps - change map at specified time
« Reply #1 on: May 02, 2008, 01:04:26 PM »
I have always been careful to say that it doesn't fix RSO, but yes it is a great workaround for the problem--the main point is that it is automatic and does not require someone to physically remember to reset the map.  On Tricky's Tutorials, I end up resetting the Spacebuild servers 5-6 times a day, and that isn't even close to often enough.

I realize that the actual fixing is out of Garry's hands, but maybe he could put some pressure to get the engine fixed.


Offline MrPresident

  • Ulysses Team Member
  • Hero Member
  • *****
  • Posts: 2728
  • Karma: 430
    • |G4P| Gman4President
Re: UMaps - change map at specified time
« Reply #2 on: May 02, 2008, 01:38:43 PM »
Well, you see... The only problem with the RSO being 'fixed' is that it's not broken. Reliable snapshot (at least from what I've gathered in my research) is a security measure in place by the engine to keep a player from getting bombarded with information as they join a server. This could potentially cause engine trouble and crash a client's game or worse.

Before the engine update, certain things were not included in the RS.. such things as constraints for one... Imagine a spaceship(in the case of your spacebuild) with 30 props. Each prop is welded to all the other props (via smart weld tool) That is.. 870 welds(probably not.. my math is bleh.. but you get the point). 870 entries in the RS that has to be sent to a client. I'm not 100% sure at what point the engine says it's too much..
Also, I'm almost certain that some clients will get RSO before the server starts forcing it.. due to it's hardware limitations, so even if Valve told the engine to not force an RSO, it may not fix the issue 100% with older systems.
In the old engine GMod10 only props and other major entites were sent to the RS and the issue wasn't as bad, something in the new engine must require these new things to be sent to the RS table.

/preaching to the choir.

Offline MrPresident

  • Ulysses Team Member
  • Hero Member
  • *****
  • Posts: 2728
  • Karma: 430
    • |G4P| Gman4President
Re: RSO Discussion
« Reply #3 on: May 15, 2008, 01:09:44 AM »
We found some un-nerving facts out about this issue..

there is a pesky entity called gmod_ghost. It is used to make ghost entities for adv Dupe and dupe tool.

When a player puts the tool away.. the ghosts remain.. only invisible. Also.. when the player leaves the server.. the ghosts stay.. forever...

This can build up and help contribute to the rso problem. I suggest finding a way to delete them.

Code: [Select]
lua_run for _, v in pairs(ents.FindByClass("gmod_ghost")) do if v:IsValid() then v:Remove() end end^^ this line of code will remove all of the ghosts from your server if run from the dedicated console.

Code: [Select]
lua_run Msg(#ents.FindByClass("gmod_ghost"))^^ Run this line of code to see how many of the entities there are currently on your server.. you might be surprised!! I just ran it on our SBox#3 and found 80.. there aren't even any people on the server...
« Last Edit: May 15, 2008, 11:40:36 AM by MrPresident »

Offline Megiddo

  • Ulysses Team Member
  • Hero Member
  • *****
  • Posts: 6214
  • Karma: 394
  • Project Lead
Re: RSO Discussion
« Reply #4 on: May 15, 2008, 04:51:51 AM »
Another demonstration of how Garry focuses on putting out fires instead of getting it right the first time...
Experiencing God's grace one day at a time.

Offline jay209015

  • Ulysses Team Member
  • Hero Member
  • *****
  • Posts: 934
  • Karma: 62
    • Dev-Solutions
Re: RSO Discussion
« Reply #5 on: May 19, 2008, 08:39:35 PM »
If you could make a script to autorun:
Code: [Select]
lua_run for _, v in pairs(ents.FindByClass("gmod_ghost")) do if v:IsValid() then v:Remove() end endeverytime this:
Code: [Select]
lua_run Msg(#ents.FindByClass("gmod_ghost"))is Greater than 20 I guess, or when there arn't any players on the server, or when either is true.
An error only becomes a mistake when you refuse to correct it. --JFK

"And thus the downfall of the great ULX dynasty was wrought not by another dynasty, but the slow and steady deterioration of the leaders themselves, followed by the deprecation of the great knowledge they possessed." -Gmod, Chapter 28, verse 34 -- Stickly

Offline MrPresident

  • Ulysses Team Member
  • Hero Member
  • *****
  • Posts: 2728
  • Karma: 430
    • |G4P| Gman4President
Re: RSO Discussion
« Reply #6 on: May 20, 2008, 12:36:21 AM »
Here you go.. put in a lua file in garrysmod/lua/autorun/server

Code: [Select]

function GhostRemover()
local ghosts = #ents.FindByClass("gmod_ghost")
local pnum = #player.GetAll()

if (ghosts >= 200) or (pnum <= 0) then
for _, v in pairs(ents.FindByClass("gmod_ghost")) do
if v:IsValid() then
v:Remove()
end
end
end
end
timer.Create("GhostRemover", 180, 0, GhostRemover)


This will check every 3 minutes.. if there are no players connected, it'll remove all ghosts.. if there are players and there are more than 200 ghosts.. it'll remove them. The timer interval is set to 3 minutes in case someone is atually using the ghosts it wont remove them too fast for the person to finish.

Offline saintmark

  • Newbie
  • *
  • Posts: 27
  • Karma: 1
Re: RSO Discussion
« Reply #7 on: May 26, 2008, 11:15:37 PM »
Very nice!
Thanks for posting this!

Does the antiRSO maps help too?

Offline MrPresident

  • Ulysses Team Member
  • Hero Member
  • *****
  • Posts: 2728
  • Karma: 430
    • |G4P| Gman4President
Re: RSO Discussion
« Reply #8 on: May 27, 2008, 12:33:17 AM »
anti-RSO maps...

I'm assuming you just mean maps that have seperate defined sections where the vis sections are seperated. In that case, yes, they do seem to help from what I have observed.

Offline saintmark

  • Newbie
  • *
  • Posts: 27
  • Karma: 1
Re: RSO Discussion
« Reply #9 on: May 27, 2008, 02:04:19 AM »
ok good, I had a custom map made with the antiRSO feature.

An Error Has Occurred!

array_keys(): Argument #1 ($array) must be of type array, null given