Create an account


Skin warning system

#1
Dear Server Guru's,

This skin problem is getting fairly bad, several skins over 2-3mb etc on day one of the Campaign being live. 

This causes stutter for 2-5minutes (Horrific headache causing nausia) while they are being downloaded to the client.  A 500kb skin stutters for 5-10 seconds (acceptable).

Using the same concept/system when a pilot doesn't qualify to use a certain plane:

Can it be written to check the players skin size upon spawning in?

If it can be - can it then kick them out of the plane - stating "Skin size too large!!  Reduce to under 500kb!!" in big flashey yellow/orange letters across the top?

Failing that:

Can we have a server text message that states "Skins must be under 500kb - you have been warned" every 30/60 minutes?

Ideally both of the above Heart

There is only 1 post on ATAG that mentions custom skins sizes for the campaign and it is very apparent that not many have read it. Rolleyes

I am hoping we can get this problem auto-managed, because it's getting fairly old manually posting the skins into discord to name n shame etc.

Moustache (as an example) - was very polite and on the ball about it and acted immediately, which was very nice to see.  But again, not many use our discord - so we are limited in accessing the buggers who have maaaaahusive skins.

Fingers cross something can be sorted out.
Reply

#2
The server doesn't really have any way to see the skins, know which player loaded which skin, etc etc etc.

The only thing you can really do on the server end is either set skins as "allowed" or "not allowed". 

Now you know why many servers have just set skins to "not allowed" because they just cause too many problems.

Also you can  look in the cache folder to see what graphics files are in there--much as you have done manually.  But there is no way to know which skin file is associated with which player, which aircraft, how exactly it is used internally etc etc etc.

However, I had a thought. 

As I just mentioned, the server has a "cache" directory just as your local CloD does.  I BELIEVE that is the only place where the player's skins are uploaded and saved, and from there uploaded to the various players individual computers.

So, what if we just went in & deleted every skin file larger than 500K that is in the cache folder?

So I have a little experimental routine set up to do that now.  It is  live on the practice/test server so we can see if it really works.

I can anticipate that it might cause a lot of unanticipated problems because we really have no way of knowing exactly how the server uses the cache folder and the various graphics files in it.  But, we can try it just to see.

What it does is checks the folder immediately after a person has jumped into an aircraft, and then again 10 minutes and 30 minutes afterwards (if the skin file is big it can take a LONG time to upload). And if any graphics file in that directory is over 500K in size, it just deletes it.

If the skin file is deleted from the server's cache folder presumably it will not be uploaded to anyone thereafter. So problem solved, maybe?

We'll see.
Reply

#3
In general though I think this is the type of thing we should leave to TF to solve. There is no particular reason downloading a large skin should make your game glitchy at all. It should take a little or perhaps a lot longer to download but there is no reason for it to affect performance. If it does, that it an issue for TF to solve, because it really should't be happening at all.
Reply

#4
It causes severe stutter for sometime when large skins are being sent to a client, it almost seems to be worse for those with larger pings to the server - almost like playing at 20fps until it has loaded. I haven't whitnessed it lasting for over 5minutes - but even a minute of stutter can be fatal to someone flying.

For myself, 100ms ping and someones 3-4mb skin - I get nausiating (I can not spell) stutter for 1-2 minutes ish - it's how I know when to check my cache and hate the dumb f**k who thought it was ok. But then I reason with myself, that they wouldn't know about the skin size limit (not everyone uses Discord and in some cases - not any forum) - it's not their fault - they aren't being told - thus not dumb. This is why a server message broadcast every 30-60 minutes would get the point across - even tagged under the message that states the mission summary (Blues x points Reds x points - altogether the mission something something) - Customs skins should be limited to 500kb. That shouldn't cause alot of extra traffic splurging across the screen.

It has been a problem since vanilla release, the size of the skins: http://forum.1cpublishing.eu/showthread.php?t=24973 was just one random I found while looking for the proper post with all the details in it.

I have been sifting through my bookmarks but can not find the right one that stated how the skins were transfered - it was on the old "banana forums" - it pre-dates my current machine - I am thinking I don't have the bookmark as a result.

From my vague memory:

Client has a skin on their aircraft
- The skin will start to be uploaded to the server.
- The server recieves the full file, uses "Picture.BMP" (always 12mb) to do some wizardry/processing - found in the cache folder.

- The server will then send the skin out to a client. I used to think it was based on the first one connected to the server gets it first, then number 2, number 3 etc - maybe it's who ever else was within "draw distance" of the skinned aircraft - maybe both - who knows.
- The skin is sent out in small chunks 50-100kb each chunk maybe. Each chunk is a stutter while the client recieves and processes it. The larger the skin file size, the more chunks needed - the more stutters observed.
- The client recieves the full skin file, again wizardry with "Picture.BMP" - then the client has the skin. Stutters stop immediately.

In the mean time, along with what you are trying out, dearest Flug - could we please have an existing server message edited to include "Skins must be under 500kb - ignoring this will result in Skins being disabled." or similar. To me - it is the simplest method to communicate with all those that are in the game - no forum and no discord required. This way "Jonny No Stripes" (fresh player) is just as informed as everyone else. I would add it to the Briefings aswell.

It is a shame, the Skin file names (numbers) are not tied into a players Steam ID number/key - obviously it can't be just the ID as there are pilots who have multiple skins and multiple aircraft. Probably why banning people in CloD has not really been a thing - atleast not that i've seen anyway - there doesn't seem to be a log of Steam account ID's connected. I've not found, nor looked for anything like that when I player host sessions atleast.

I do like your idea - as an addition to a server message - hopefully someone will ask somewhere "Why can't my friend see my skin sometimes?" To which, we can reply - it's probably over 500kb.

I can not get it out of my head that each client connection to a server is limited to a certain amount in some way - normally perfectly adequate for transfering the x,y,z etc of each plane/object/maybe bullet etc - however, when a skin is being transfered - that allocation is being maxed out - in some cases for a fairly long time.

I love your work fella, hopefully this is being recieved as suggestions for ways around a problem and not a dig at anything on the server <3
Reply

#5
HELP!

Not truly understanding these things, I have relied on the kindness of others for my skins.
But your post made me investigate:

My Hurri/SPit nose art is quite complicated (lovely lass holding 2 beers)
and is only 2.33Kb
(I can't remember who forwarded this to me, but thank you...)

My Blennie nose art was given to me by Fatal (Thank you!)
& is less complicated, containing a large Bomb with a face holding a beer bottle! (I love it!)
But a quick check reveals that it is a whopping 2.84 megabytes!

I don;t know how to do these things (& don;t make me read all the recent chatter pls...)
(I tend to zone out after a paragraph or two-as you can tell by my flying...)
But could some one be kind enough to create an under 500Kb nose art for my bLENNIE
that is BEER related?

I would be so grateful, my first toast would be to you...

Regards
Dave
Reply

#6
Hi Dave, here it is at 433kb.

I posted it here, so you can find it - once you have it - i'll remove it from my post.

Please reply once you have it on your PC.

EDIT: removed skin from post.
Reply

#7
Thank you mackers,

I have applied it to my Blennies
Reply

#8
coolbeans chap, i'll remove it from here.
Reply

#9
Could you run a script on the server that checks the file size, and if over 500K it resizes it and deletes the original? Imagemagick should be able to do that from the command line (http://www.imagemagick.org).
Reply

#10
There are a few options for getting around this - none are simple.

A server message should be the first step - dealing with communication of the requirement - to all players in the environment - automated.

"Welcome to the TWC Campaign Server."
"TWCpilots.com for more information"
"Note: Custom skins must be under 500kb."

As for stuff run on the server, this should be limited to something devoid of 3rd party licences and/or updates. The bigger picture here is all servers, not just ours. Having a community written/developed tool should be sought. Ideally, something that can run in or atleast with the server commander\map and session manager software (or whatever it's called these days).

As for function, many things need testing to see how and what could work and where.

In no particular order:

- Detection of the large skin on the client (TF Territory)
- Client side notification in plane options (TF Territory) - "Skin may not be Multiplayer Friendly (500kb suggested limit)." - Only a text warning so anyone can opt in or out, because reasons.
- Detection of the large skin on the server
- how long does a skin sit on the server, before it is pushed out
- Automated deletion and no loop caused
- Can the file be replaced on the server, using the same filename (numbers) and not cause a loop
- Client notification from the server - example: "Your skin is over 500kb, please fix."
- Client auto-eject function, either from the plane or from the server with a message
- What do the filenames (numbers) mean - are they purely randomised - or is there any logic in their creation
- Matching skins (files) to SteamID's (Players)
- Impact\benefits of any or all of the above

Servers use a tool (there are a couple out there) to manage the multiplayer sessions in CloD. I suggest an addition to those community tools should be sought, not an out-side 3rd party program.

With the exception of a notification in "Plane Options" nothing here is in Team Fusions realm. The game itself runs as it should in terms of passing skins around, be it dedicated server or player hosting.
Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)