CapsAdmin / pac3

advanced avatar customization for garrysmod
GNU General Public License v3.0
205 stars 94 forks source link

Control the amount of Web Content one can have in a PAC #209

Closed Hazbelll closed 5 years ago

Hazbelll commented 9 years ago

This Image should give you a good overview as to why we need such Control: Image of PAC Web Spam

A lot of people these days are putting far too much Web Content (WebAudio, ogg, obj, custom textures etc.) in their PACs, mostly by treating PAC as a music library and having all other clients download their content. This wouldn't be an issue if everyone had fast Internet, however we sadly do not live in such a world.

Due to people's misuse of PAC in such a fashion, those with slow Internet are unable to enjoy themselves as their bandwidth gets saturated with Web Content downloads from PAC. Their ping can skyrocket up to 999+ ping, meaning they are unable to play on a server whatsoever.

This is a vicious circle too as those who do experience horrific pings on a server due to PAC will _accuse the Server itself for being the cause of "lag"_ when in actual fact it's not the server's fault at all but _the forced downloads of other player's PACs_. This can potentially _scare off players as they feel the server they're playing on is too laggy for them to enjoy_.

As of right now, there is no way to limit the amount of web content one can have in their PAC and "wear" on a server, whether it be through the overall download size of all content combined, or a limit on how many WebAudio, ogg, obj, custom textures etc. one can have and "wear" in a single PAC. There isn't even a log for Administrators or Server Operators to identify what belongs to who so they can deal with the offending players.

I and many others would be extremely grateful if you would consider implementing some form of control for Server Operators or Administration regarding such issues with PAC.

NightlyH commented 9 years ago

+1 @FPtje You sir deserve a medal

Hazbelll commented 9 years ago

SNIP: It's late, I'm tired. Not worth going on and on with this. Props to @FPtje though for his response. Hit the nail right on the head.

According to @Fred-FredBurger the GitHub version of PAC has a potential solution that we need, so I'll be trying it out. Cannot speak for the others here again though. Perhaps if @LUModder just suggested that in the first place, none of this would've happened.

Shigbeard commented 9 years ago

Grow up Noah, data is money and keeping file sizes down is a good thing no matter what.

FPtje commented 9 years ago

The clients who suffer from this are already on the blame list, Noiwex

Hazbelll commented 9 years ago

It's your problem that users are able to have an infinite amount of web content in a PAC.

A lot of us with very slow Internet cannot help that either. Long distance from the telephone exchange, no fibre optic link. Our only options are to wait years for fibre optic to (hopefully) reach us or move house.

FPtje commented 9 years ago

@Noiwex you mean just like sbox_maxprops? What is your down speed?

Hazbelll commented 9 years ago

What if I make a PAC that has 50 gigabytes worth of Web Content in it? I go on a Server with PAC and wear that. Uh oh, everyone has 999 ping. Uh oh, everyone gets nullrouted because they're being DDoS'd, with PAC co-ordinating it.

thegrb93 commented 9 years ago

Content is queued so that is unlikely, but I believe that clients should be allowed to opt out of pac downloads and it seems impossible with the current system.

Hazbelll commented 9 years ago

@thegrb93 Yeah, I was just way over-exaggerating things, however it's still possible to use huge amounts of Web Content in a PAC as a form of minging, as everyone has to download that stuff, and as you say, cannot opt out of it.

Shigbeard commented 9 years ago

In Australia, your average internet speed barely goes over 10 megabits. In some countries, its even worse. Just because you have 300 mbps internet doesn't mean everyone else does

thegrb93 commented 9 years ago

Yeah, though it is possible to fill up someone's v-ram, or even ram (i think) with pac.

Hazbelll commented 9 years ago

@HDG-MrDeeJay Exactly. Many people cannot help that either, due to where they live and the limited resources available. Not everyone is going to be onboard with moving house, just so they can see how awesome your 500 WebAudio Song DJ PAC is.

@thegrb93 AwesomiumCore gets crashed when too many ogg sounds are being used in PAC. Once it crashes, oggs will stop working entirely. You have to pac_restart. Lets not forget the never ending memory leaks either.

Shigbeard commented 9 years ago

Awesomium is trash

Hazbelll commented 9 years ago

@HDG-MrDeeJay Agreed.

@Noiwex That's a tad rude. Kudos to the Russians for having such great Internet. Not all of us do though in 2015 and it's not necessarily our fault, the end users if line conditions or alternatives aren't great.

thegrb93 commented 9 years ago

He didn't say it is.

Hazbelll commented 9 years ago

I find this thread offensive.

thegrb93 commented 9 years ago

You find everything offensive. We're fixing the issue. Close issue if you want.

Shigbeard commented 9 years ago

Noah get the fuck off your high fucking horse its an excessive amount of data, a significant performance issue, and is forced upon all clients. Admins cannot identify offending clients easily, if at all.

If you can't see a problem in that, you have a severe mental defect.

FPtje commented 9 years ago

@Hazbelll got my point quite well. I was hoping @Noiwex would brag with like 1gbps, but 100mbps will do absolutely fine.

How about we continue on the hypothetical situation @Hazbelll started. I join @Noiwex in a server, spam enough web stuff to make sure he and his 100mbit (or whatever part of that given to GMod) spend the next 6 hours downloading. I can do that because there is no limit (assuming OP is right of course).

Even funnier is that I can use @Noiwex his own logic to blame him for it because he doesn't have enough bandwidth. Switch to another ISP Noiwex, your internet is terrible

Regardless of your down speed, no limits = no limits. Blaming it on the bandwidth is the purest form of denial.

Add a setting to have server owners decide a maximum and set it to a sensible default.

Don't trust clients with unlimited access to any resource.

That's simply asking for trouble. A display of a lack of understanding of this simple concept greatly undermines your god damn credibility.

FPtje commented 9 years ago

Not very clever if that sake of arguing goes at the cost of your credibility.

FPtje commented 9 years ago

No, developers who do understand the basic concepts of networking.

Hazbelll commented 9 years ago

@FPtje Excellent points again.

...so, can we have some control over this? For Clients, Servers, Both. Anything.

Uberfuchs commented 9 years ago

I must agree with Hazbelll here. Administratively one of the largest problems with PAC3 seems to be this idea that it is the fault of the players making/using the PAC3's, and not something that administrators should be able to regulate without directly policing those players after they spend a good hour trying to determine who it is.

Hazbelll commented 9 years ago

@Uberfuchs Thank you.

@Noiwex Uh, elaborate?

Shigbeard commented 9 years ago

Holy shit idk who has a bigger ego.

Noah, or Seto Kaiba.

Uberfuchs commented 9 years ago

I was going to put this in an edit, but I'm adding this as an addendum.

@LUModder I would rather have heard someone say, "We don't really have someone who can work on this right now," rather than just blame players / the communities they are part of for the problems.

Especially considering PAC3 comes with no manual, and doesn't warn anyone about any of its features when they go to use it, such as problems it may cause for others. A perfect example of this would be silly MLG-style PAC3's that use loud sounds, screen shakes, or that cause players to blind everyone nearby. This stuff really upsets some people, even though a lot of the time it's not intentional to upset anyone.

@Fred-FredBurger there are pony servers where NSFW content is not allowed to be visible / you can get banned for it. I do not see how your dislike for what players use on some servers is really relevant to this discussion in any way.

Moonakins commented 9 years ago

@HDG-MrDeeJay You are now my favorite person in this thread. @FPtje Great points all around. @Noiwex Really, this is an ongoing issue, and we're kindly asking if you could add restriction convars or logging to whatever 'to-do' list you guys have, or give some insight as to how to add it ourselves. Telling people to fuck off and arguing for the sake of arguing is exactly why companies have PR departments instead of letting the developers talk to the end-users. All of you are saying it's not your problem and just blame the players that have this content for it and the ones that cannot handle the bandwidth, just give us a real reason why you won't, do it, or give us the ability to do it. It's really not that hard to pick one of those instead of just telling us to get a better internet connection or punish the offenders without the information to do so. Whether or not you want it restricted doesn't really matter, as again, you can just have it default to unrestricted. Giving us the option is very nice for us, and doesn't affect you aside from the work you put in. We're all even open to other options that don't restrict it at all, but you're just shooting the entire thread down.

atakiya commented 9 years ago

Agreeing with Hazbelll. I myself have to survive with a downspeed of about 150 KB/s (1.2 mbps) - change ISP you say? Well surprise for you: The connection to this part of the city is a telephone line.

Due to this whenever I join a server which has above 12 players on (who have intense content pacs), I have to atleast wait 10-20 minutes for the whole PAC3-content to download. Above 24 players with intense content its not less than 30 or 45 minutes.

Disabling PAC3 does NOTHING - I tried it yesterday and PAC3 STILL DOWNLOADED In the end I had to block dl.dropboxusercontent.com and copy.com from my network's firewall. Which brings another problem: Now I get at playercounts of around 30-40 players 10 FPS.. Why? Cause PAC3 spams my client with error messages about content not being able to download. For reference: CPU: i7-4790K & GPU: 750TI - both having mostly less than 50% usage at the 10 FPS scenario.

PAC3 also fills up VRAM like a hogging monster due to the custom models and textures.. ss 2015-08-24 at 08 23 25 (GMod shut down at around 7,5 GB VRAM) ss 2015-08-24 at 08 26 50

This is seriously an issue. But just an addition of PROPER (debug-)logging and some restrictments on the Webaudio / OGG can fix it.

@HDG-MrDeeJay Why not both.

Hazbelll commented 9 years ago

The song of Noiwex's people

CThrill commented 9 years ago

I'm an admin on one of these servers and i spend most of my time on it monitoring players. I gotta say there's no way we could know exactly what players are making everyone download more files for their pacs. There's simply no way to tell as some of their pacs are only activated by triggers and obviously it's not logged. And on top of that we got a bunch of other stuff to worry about. We can't dedicate 100% of our time and effort trying to find out who's got the heaviest pac.

Frankly, like hazbell said, just a log of all the pacs (ex: player X has a pac with ## files worth ####MB) would be more than enough for all of us. Of course that some sort of ability to cap the amount of data users are able to upload would be golden.

I also gotta point out that the way this thread was handled by some people was just awful. Lack of care and downright arrogance was a thing here. Hazbell just put a problem on the table and presented a possible solution, and was treated with absolute ignorance.

If you don't wanna worry about it and have more important stuff to handle just say it and it'd be over in a matter of minutes. Now blaming hazbell and even the entire community using completely illogical arguments is just unnecessary.

I would appreciate it if you could at least point us to someone who can help us out or somewhere so we can fix tem problem.

CThrill commented 9 years ago

By the way, all of my thanks to the people who actually tried to help out and present some alternatives. I had to mention it.

Radray commented 9 years ago

Massive PACs are becoming a noticable issue due to the amount of copy pasta PACs out there and more people learning how to use PAC and adding webcontent recklessly. A few people using a few MP3's isn't much of an issue, but logging onto a server where 15 people have about 30 MP3's in their PAC would be very much noticable for those not blessed with fast internet.

That amount of content could easily add up to about 2GB of data. Today's average internet speed is 5Mbps, and that adds up to about an hour of downloading content.

I spent about 20 minutes in singleplayer and wrote a script that I've only tested myself, but it should be usable for limiting how many of each part a PAC can contain:

http://pastebin.com/DEv24A05

Vuthakral commented 9 years ago

Oh for fuck sake, @Hazbelll I honestly think you should just continue this in a private discussion between the devs, This thread is becoming fucked beyond all belief with unrelated topics now, and my patience for just about everyone not productive to the main topic here is completely gone at this point. On top of that after said private discussion is made I feel this issue should be removed or locked, as only a minority population of it are actually being productive to the issue in question.

@WindyRain0212 Yeah there is totally something that can be done about VRAM usage. It's called telling people how to optimize their fucking PACs. It's not an issue with the developers. The issue is already being discussed, you don't need to jump in and say "OH yeah I have it too." and then talk about some other personal issue with the addon.

@Radray If you ever limit parts, or encourage the devs to do so, I will fucking destroy you. Adding a part limiter to pac would be destroying it's purpose of creativity. Especially in the numbers you have in this script. 30 Models maximum by default? What the honest fuck, man. This is the exact reason I said I'd prefer a logging system earlier, because you will piss off a TON of people by adding any sort of limitation to anything in PAC. Like, you will have a shitstorm at your doorstep in the millisecond. I'm probably just typing in a fit of annoyance and dislike because of the idea of even limiting any parts, but my bottom line is you should never, under any circumstance, limit parts for PAC. If you had read this thread through, you would see it was not a preferred idea.

FPtje commented 9 years ago

Ah yes, the creative freedom to create the fanciest of contraptions is much more important than anyone's ability to view it and/or playing the game with a decent speed. You truly are a selfless person.

CThrill commented 9 years ago

You could just add the option to makw it limited. It woulsn't need to be pac in general. Just adding the option to be abke to put a limit to it. That's what everyone's saying.

CThrill commented 9 years ago

Nobody's asking you to completely change the way pac works. All we're suggesting is that you just add a little option to be able to cap it and how much (like in some games where you have an option to set your framerate limit, for example).

Vuthakral commented 9 years ago

@FPtje No. That is not the reason at all. Do not assume such things about a person you so not even know. In fact, anything I do in PAC I always lose my mind trying to optimize it, and find more efficient ways to make stuff work in the editor. Now, like said by multiple users on here, stay relevant to the topic in your post, or don't post at all. I was saying that adding a limit to anything, specifically as drastic as he had implied it with the script, would be very restrictive and do nothing but cause a shitstorm in the communities that use pac, I worded it very rudely, but that was not a free ticket for someone to try to bash me for saying it. I still think a logging system would be best. If this continual dramafest keeps going on its probably going to get closed, any devs in here need to read the actual problem and possible solutions, not what looks like a high school dramafest. So can we start staying on topic here?

Vuthakral commented 9 years ago

Ps: Ignore typos in last message, on phone and can not edit comments on mobile apparently :/

CThrill commented 9 years ago

As i stated earlier, a logging system would be great already. It would be more than useful.

CThrill commented 9 years ago

That wouldn't be too much of a worry to be honest. It would just be a couple more Mb per log file. I'd be completely okay with that, but that's me.

CThrill commented 9 years ago

Talking about the logging option by the way hehe

CThrill commented 9 years ago

That really depends on how your server organizes the log files. So if your server makes a log file every two days, it would obviously be more than a couple of Mbs

CThrill commented 9 years ago

And about people accessing their files, i also talked about it in my first comment here. Just a simple format like "Player Z has a pac with 15 files worth 246Mb total" would be great. Nobody would actually know specifically what those files are and their respective path.

atakiya commented 9 years ago

@LUModder People already can get every single file with the current state. Your argument is invalid. @Vuthakral You try telling over 100 people to optimize their pacs. Do it and show me the proof that you did. Seriously.

void rant() { It's really angering me how immature you guys are. I thought @FPtje is an angry coder, but damn, atleast he knows how and when to do shit. }

FPtje commented 9 years ago

@Vuthakral Ironic that you first say this:

If [...], I will fucking destroy you

And then complain about drama:

[...] a high school dramafest.

Any group of people with access to an unlimited amount of resources can and will take advantage of them. When the actual resources are limited, this will lead to problems where someone takes up so much resources that it negatively affects other people. The solution you want is to let those people take those resources, but keep track of how the resources are distributed. The onus is then put on some arbiter (admin) to settle the in-server drama about lag by deciding who is wearing the heaviest of outfits. This arbiter tells the offending player to give back resources (i.e. take some stuff off the outfit) in the hope that the cries of lag will die down.

Now let's all imagine the offending player is, despite his many optimisations, @Vuthakral. I don't have to assume anything about him to know that he won't be happy:

If you ever limit parts, [...], I will fucking destroy you.

The only difference between that and having a setting for it that limits parts, there's an actual person who limits the parts, person to person, in an even more arbitrary way than the setting would. This setup goes against @Vuthakral's own logic (because it limits parts). Why could he possibly be in favour of it? Because then he'll know just who to destroy :+1:

Have another set of arguments of why a setting is better than shoving the entire solution of this problem onto admins reading logs:

Now to prepare for the retort that

I simply say: that's unreasonable.

TL;DR: a config option to set the maximum of web stuff is better for everyone, even for those adamantly against it, saying logging is better.

CThrill commented 9 years ago

@FPtje first of all thank you. You spoke my mind.

And it really would be better to have a simple config, that you can use to determine if you wanna limit the pacs or not, and by how much. But for some reason they made a big fuss about it, so to be honest, if they bother to just log it, it would be something.

Radray commented 9 years ago

@Vuthakral So let me get this straight. People ask for a way to limit PAC on their server, the one they pay their own money to run, and make their own choices on. I make an example of how bad it can be with people being "creative" with their PAC's, and I offer a solution to the server owners requesting a feature, and I really don't see how I was rude in any way. I had no intention of making any pull requests for such a feature, as I would see it as more of a niche feature. I don't see how you can justify throwing threats at me like you just did, my only intention is to help server owners run their server the way they want to.

Saying PAC should always be unlimited is like yelling at server owners for having sv_allowcslua set to 0, or sbox_maxprops set to anything below 200. The limitations are there to make it an overall more enjoyable experience for everyone to play on the server.

Sometimes this might involve people not being allowed to load up their DJ PAC with their entire MP3 collection preloaded, or using that insane amplitude screenshake that puts your view outside the map.

Since you're so eager for limitations to be added to PAC I can see about refining the code a bit and make a pull request so we can have this feature in PAC. (There would only be limits to parts defined by the server config)

ghost commented 9 years ago

@FPtje Absolutely perfect.

@Radray What @Vuthakral said was completely out of line, and I say kudos to you for actually putting time into a solution instead of trying to bash anyone voicing a problem.

I'm all in for actual configurable limits in this case, my only caveat would be that they need to be a little more sophisticated than just counting up the number of each type of part, especially with the .oggs. Having 100 sounds isn't so much of a problem if they're all small, like just an effect for walking, clicks for loading a gun, etc. Sound effects stuff. It's the total size that's the issue, when giant DJ PACs are made.

NightlyH commented 9 years ago

@LUModder Can't come up with a counter to @FPtje and the best solution is to just end this because the developers don't seem to care what their community thinks.

CThrill commented 9 years ago

I'm not really sure on which part he got far tho. He really didn't insult anyone or anything of the sorts. Some of those people making threats and saying "fuck off" to peeps that are just voicing their opinions in a respectful and peaceful wayare the one who really need to stop and think for a bit to be honest