Closed masrourmouad closed 7 years ago
@masrourmouad +1
I think this is a good idea, but this means that the client is going to need to upload an image to the server. This brings to mind a few considerations.
@duckbrain the server will cache the skin , so the skin will be uploaded only one time, but when the user changes the skin the server will compare the (md5 or sha1) if the hash is changed it will update the skin.
@duckbrain for security implications the skin image will have to be validated in the client before sending it to the server.
This also means the server will have to send skins to clients after the client is already connected and playing.
It means that the first connection with the server, the skin will be validated in the client and sent to the server after, only one time
The server has to send new player skins to existing clients so that they can display the skin.
@masrourmouad When a client connects to a server, all of the assets (images, audio, models, etc.) needed to play are sent to the client. This transfer is never repeated while the client stays connected. So if player A connects then player B connects with a custom skin, then the server did not have player B's skin until they connected, and player A will never get the update and won't be able to display that skin. We are just saying that to implement this, that will need to change.
A skin server: when player choose the skin from the main menu the selected skin will be automatically uploaded the the skin server, all servers will have do download one time the skin from the skin server and caching it, so next time the player connects the server, the server will send the skin to the player as an asset, that way the skin server will be not overloaded and the player will have skins.
@masrourmouad What happens if one player is already connected and there is a player with a new skin?
A server mod that connects to the skin server via the server can automatically update the skin, and cache the new skin; when the player connects his skin will be standard , the server mod will do the job.
'skin servers` should absolutely not be added. If we do something like this, the skin should be send directly from the client to the server.
The last thing we want is some central service where we have to do censorship on skins because some servers don't allow some skins, and other servers do allow it. E.g. some don't allow mature skins, some do not allow religious symbols, some do not allow text, some do not allow non-RP skins, some do not allow the Canadian flag, etc. etc. YOU CANT WIN THIS GAME, EVER.
What is needed to make this work is extensive:
Another issue is that servers may be using a different character model, requiring a custom skin. Meaning, all of this should be optional.
create within the skin server an interface that allow server operators to review and approve player skins; i dont say we should have one skin server but we can have a lot of them, so a group of servers will create their own skin server, the skin server url will not be hard coded.
in the client setting the player will specify the skin server.
Skin servers are definitely out of the question.
This whole feature is out of the question anyway, because nobody is going to solve this problem:
so lets start with single player, can we apply skins in single player.
so lets start with single player, can we apply skins in single player.
Yup. Make a new empty texture pack folder and put in a modified character.png
.
for singleplayer? you're kidding right? Do you honestly ever look at your own skin while in singleplayer?
the skin server is the only solution to problem.
then start coding, I gave a list of things to do already, that should be a reasonable start.
Ok, a server mod that connects to the skin server via the server can automatically update the skin, and cache the new skin; is the easiest solution to the problem.
a server owner will install this mod.
thank you @sofar but i will ask other members about my idea .
mods can not update skins in real time after the server has started, so you're stuck rebooting after a player changed their skins. That is an unworkable solution.
This is why the following issue should be solved first:
- new server packet: new texture at run time (not load time)
but hey, what do I know?
thanks
You're welcome. I hope someday someone will solve this underlying problem and we can actually have this feature.
We cannot use a skin server. Celeron55 had an email request for something like this and he considers it a really bad idea.
@paramat ok, why not just allow mods to change skins, and rethink the skin server after.
Mods can already change skins, there are several that do this. wardrobe
, for instance.
im speaking on servers
Sofar it's right. insert a features changing skin in the game (client), when the player connects to the server, the administrator must confirm the skin usa before being displayed at all? through the admin chat a notification appears with colorful text with a click will bring up the player data tab with preview of the skin and the button to approve the his skin. program too complex?
I think the feature being requested here is for mods to be able to dynamically update resources. If mods can create/update textures on the clients while, connected, then new skins could be created.
This would pave the way for the network protocol that @sofar's concept is talking about.
A practical use-case: You could have 10 base character designs and 30 outfits and 5 hats. Currently you would have to create all permutations of the character models (1500 textures). If textures could be dynamically updated, you could create the new textures when they are created in some wardrobe-like mod that takes advantage of this, and only uses the combinations that are actually used by a player. (Note: I'm not suggesting that such a mod be made)
This would also make it possible to create some form of @masrourmouad's concept as I understand it, implemented as a mod. There is some server that contains a bunch of skins that players can choose from and apply to their characters. A formspec could give an interface to this server on login.
Personally I think @sofar's solution is better because the user could download/create any player texture themselves and use it when they log in to any server, and more importantly, it does not use any centralized server. Additional external tools could help with downloading/creating textures in the future.
Sofar has the right idea here https://github.com/minetest/minetest/issues/4845#issuecomment-264952819 I support moves to make it easier for server admins to receive, approve and apply skins.
im speaking on servers
Mods can do this on servers too.
the server owner or a group of server owners can make their own skin server, so there is no probleme
the server owner or a group of server owners can make their own skin server, so there is no probleme
Not having a skin server is simpler, and therefore better.
Also, once a client selects a skin in their client, it will be sent to all servers. Nothing prevents server admins from sharing skin caches
between servers if implemented properly.
We already have a skin-server of sorts, see http://minetest.fensta.bplaced.net though we really should update the skin format, that's another issue.
can a mod update the players skin at server run time
A mod can change which skin a player has, but not what skins are available.
duplicate of #3528
Add a player skin option on main minetest menu. Create a player skin folder to let player choose witch skin to use. Add support to minecraft skins by auto cropping the png.