Solution for skins

Post Reply
User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Solution for skins

by PolySaken » Post

Firstly: this topic is in general Discussion because it is not entirely about Minetest Features.
Secondly, This is addressed mostly to:
1) The core developers in general (for obvious reasons)
2) Rubenwardy (As you are the admin/owner/whatever of the CDB)
Thirdly: This proposal is not perfect and I do not claim it to be. However, It is a possible solution for the ongoing discussion about built-in skins.

(Assume everything is in reference to the default player model)

Now on to the main topic.

There have been many topics posted about skins, with the oldest I was able to find dating to 2013.
There has also been the potential issue of inappropriate or offensive skins being used if skins were incorporated into the game. This seems almost unavoidable at first glance, but can actually be solved quite easily.
This is where the Content Database comes in.

I propose that a new section be added to the CDB called 'Skins' where users can submit skins exactly as if they were a mod, game or texture pack. The CDB already uses a system of manual approval and with a few more 'staff'
(I would happily volunteer) the issue of inappropriate skins could be solved.

Time to address the second issue: Implementation. Sending 50+ skins to a server whenever it starts, or receiving a skin whenever a player joins, is too inefficient and would cause needless server lag. There should be a 'Skins' tab in the main menu, which shows a list of skins already on the CDB. Players could then choose a skin from this list, which would save a Unique Identifier to the client. This identifier is then sent to the server, allowing the server to download the skin from the content db at its own pace, reducing the load on the server.
Basic info about the skin (name, author, license) should also be included in the list entries.

Server owners should also be able to disable the use of skins on their server in favor of server provided skins, or just because they prefer not to use them.

Another way to reduce server load is to limit and standardize the skin format.
The standard skin seems to be 2:1 in size and in divisions of 2.
The maximum size should probably be 64 x 32, or maybe 128 x 64 depending on the load of requesting a skin from the CDB. A maximum file size of 3 or 4 kb should also be specified.

These things should all drastically reduce the load on servers compared to other solutions.

As I stated before, I would be more than happy to moderate the skin section and approve acceptable skins.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
HackerinPink
Member
Posts: 43
Joined: Tue Oct 29, 2019 19:36
Location: Somewhere in a 100% regular place.
Contact:

Re: Solution for skins

by HackerinPink » Post

This is a nice idea but its horribly unrealistic. How much goddarn skins will you need to moderate! and where!
And even if you somehow waste your life moderating skins for free, people can make their own mods and put it privately on their servers without needing to ask for moderation. There is no actual control. But keep going, nice idea, but needs some fixes maybe.
A Dude with power and Intellect.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: Solution for skins

by PolySaken » Post

HackerinPink wrote:This is a nice idea but its horribly unrealistic. How much goddarn skins will you need to moderate! and where!
And even if you somehow waste your life moderating skins for free, people can make their own mods and put it privately on their servers without needing to ask for moderation. There is no actual control. But keep going, nice idea, but needs some fixes maybe.
There are already many, many packages on the CDB and it doesn't seem like too much trouble, at least not to the point of wasting the reviewers' lives.
Also, the idea is not to control skin usage, but provide an easy system for inexperienced users to add their own skins to the cdb and have them approved for use across any server.
And yes, people's skin mods will still work. This whole system will be optional.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
runs
Member
Posts: 3225
Joined: Sat Oct 27, 2018 08:32

Re: Solution for skins

by runs » Post

Good idea. And I would add an API to manage skins, a bridge between a mod and ContentDB.

User avatar
Linuxdirk
Member
Posts: 3219
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: Solution for skins

by Linuxdirk » Post

runs wrote:Good idea. And I would add an API to manage skins, a bridge between a mod and ContentDB.
The CDB would be constantly flooded with skins from all servers ...

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: Solution for skins

by PolySaken » Post

Linuxdirk wrote:
runs wrote:Good idea. And I would add an API to manage skins, a bridge between a mod and ContentDB.
The CDB would be constantly flooded with skins from all servers ...
if the API was just limited to functions that get information about a player's skin, and request it from the CDB the toll wouldn't be that high. There is no need to automate two-way sending of most data.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: Solution for skins

by PolySaken » Post

Keep in mind that the amount of people who will upload original, appropriate skins will be quite low, so the CDB will not have much extra load.
The amount of people who actually create MT content is still ridiculously small in comparison to the amount of users in total, and most people are going to use a random skin that someone else made.
Another way to decrease load on the CDB is to have servers cache the most frequently or consistently used skins.
Also the skin IDs can be kept in memory avoid loading the same skin twice (for example if two players use the same skin)
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
HackerinPink
Member
Posts: 43
Joined: Tue Oct 29, 2019 19:36
Location: Somewhere in a 100% regular place.
Contact:

Re: Solution for skins

by HackerinPink » Post

Looking back onto the new replies and stuff, I stand corrected. This is a nice idea and I give my complete support! Love to see how this will turn out to be.
A Dude with power and Intellect.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: Solution for skins

by PolySaken » Post

HackerinPink wrote:Looking back onto the new replies and stuff, I stand corrected. This is a nice idea and I give my complete support! Love to see how this will turn out to be.
Thanks!
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
Hume2
Member
Posts: 710
Joined: Tue Jun 19, 2018 08:24
GitHub: Hume2
In-game: Hume2
Location: Czech Republic

Re: Solution for skins

by Hume2 » Post

I have a suggestion. There might be one central database but it should be possible for anyone to make his own database. The database would be a separate server and each server could refer to a different database while the central database could be default. This would be good so if a server would have different opinion on what skin is suitable or it would use a different character model, it wouldn't loose the advantages.
If you lack the reality, go on a trip or find a job.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: Solution for skins

by PolySaken » Post

Hume2 wrote:I have a suggestion. There might be one central database but it should be possible for anyone to make his own database. The database would be a separate server and each server could refer to a different database while the central database could be default. This would be good so if a server would have different opinion on what skin is suitable or it would use a different character model, it wouldn't loose the advantages.
How would a server verify that the database provided in the client is safe? If a player chooses to use an unmoderated database and joins a server, what's to stop them from using an inappropriate skin?
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
Linuxdirk
Member
Posts: 3219
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: Solution for skins

by Linuxdirk » Post

PolySaken wrote:
Hume2 wrote:I have a suggestion. There might be one central database but it should be possible for anyone to make his own database. The database would be a separate server and each server could refer to a different database while the central database could be default. This would be good so if a server would have different opinion on what skin is suitable or it would use a different character model, it wouldn't loose the advantages.
How would a server verify that the database provided in the client is safe? If a player chooses to use an unmoderated database and joins a server, what's to stop them from using an inappropriate skin?
You can't.

You either have a moderated central repository for skins, or server-owners and admins have to manually check if a skin is inappropriate.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: Solution for skins

by PolySaken » Post

Linuxdirk wrote:
PolySaken wrote:
Hume2 wrote:I have a suggestion. There might be one central database but it should be possible for anyone to make his own database. The database would be a separate server and each server could refer to a different database while the central database could be default. This would be good so if a server would have different opinion on what skin is suitable or it would use a different character model, it wouldn't loose the advantages.
How would a server verify that the database provided in the client is safe? If a player chooses to use an unmoderated database and joins a server, what's to stop them from using an inappropriate skin?
You can't.

You either have a moderated central repository for skins, or server-owners and admins have to manually check if a skin is inappropriate.
Exactly. That's one of the main reasons for hosting it on the CDB in the first place.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
Linuxdirk
Member
Posts: 3219
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: Solution for skins

by Linuxdirk » Post

PolySaken wrote:hosting it on the CDB in the first place.
I don't see why there should be hundreds of skins in the CDB where most of them are used by only one person on only one server.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: Solution for skins

by PolySaken » Post

Linuxdirk wrote:
PolySaken wrote:hosting it on the CDB in the first place.
I don't see why there should be hundreds of skins in the CDB where most of them are used by only one person on only one server.
What do you mean by only one server...? The idea is that the skins are cross-server, hence why I didn't just make a new skin mod. Here's a less-than-simple flowcharty thing explaining the processes.
Image
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
Linuxdirk
Member
Posts: 3219
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: Solution for skins

by Linuxdirk » Post

PolySaken wrote:The idea is that the skins are cross-server
I'm pretty sure the majority of players plays exclusively on one server and uses only one skin. Therefore a cross-server solution might be massive overhead with little to no benefit but only administrative work in CDB.

User avatar
Hume2
Member
Posts: 710
Joined: Tue Jun 19, 2018 08:24
GitHub: Hume2
In-game: Hume2
Location: Czech Republic

Re: Solution for skins

by Hume2 » Post

PolySaken wrote: How would a server verify that the database provided in the client is safe? If a player chooses to use an unmoderated database and joins a server, what's to stop them from using an inappropriate skin?
No, the clients won't be able to choose the database. The server would choose the database.

BTW, why don't do it like this instead?
Image
Attachments
skin.png
skin.png (50.08 KiB) Viewed 603 times
If you lack the reality, go on a trip or find a job.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: Solution for skins

by PolySaken » Post

Hume2 wrote:
PolySaken wrote: How would a server verify that the database provided in the client is safe? If a player chooses to use an unmoderated database and joins a server, what's to stop them from using an inappropriate skin?
No, the clients won't be able to choose the database. The server would choose the database.

BTW, why don't do it like this instead?
Image
If the server chooses the database, then a player has no way of knowing what skins are available, or even knowing if they can add their own. Also, if the server wants to use their own database, they should just disable the use of custom skins and use a pre-existing skin mod.

(I also noticed that with your method, A malicious server could provide a url to a fake skin database which leads to an unsafe website. This would allow server operators to potentially install malware on clients)

I personally think that the CDB should be the only database because it is the safest and easiest to incorporate, but at the end of the day it's all up to the people who actually implement this (if at all).
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: Solution for skins

by PolySaken » Post

Linuxdirk wrote:
PolySaken wrote:The idea is that the skins are cross-server
I'm pretty sure the majority of players plays exclusively on one server and uses only one skin. Therefore a cross-server solution might be massive overhead with little to no benefit but only administrative work in CDB.
If players are using only one skin each then there wouldn't be much more admin work. Also, where are you getting your info from? I can't think of anyone I know that only play on one server. I personally frequent at least five.
(Though, like yours, my experiences are not universal)
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
Hume2
Member
Posts: 710
Joined: Tue Jun 19, 2018 08:24
GitHub: Hume2
In-game: Hume2
Location: Czech Republic

Re: Solution for skins

by Hume2 » Post

PolySaken wrote: If the server chooses the database, then a player has no way of knowing what skins are available, or even knowing if they can add their own. Also, if the server wants to use their own database, they should just disable the use of custom skins and use a pre-existing skin mod.
The skin database URL is human-readable, so the player can know it even before joining the server.
PolySaken wrote: (I also noticed that with your method, A malicious server could provide a url to a fake skin database which leads to an unsafe website. This would allow server operators to potentially install malware on clients)
The Minetest server can be malicious itself. This won't make it easier nor harder for the hackers to hack into your computer.
If you lack the reality, go on a trip or find a job.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: Solution for skins

by PolySaken » Post

Hume2 wrote:
PolySaken wrote: If the server chooses the database, then a player has no way of knowing what skins are available, or even knowing if they can add their own. Also, if the server wants to use their own database, they should just disable the use of custom skins and use a pre-existing skin mod.
The skin database URL is human-readable, so the player can know it even before joining the server.
PolySaken wrote: (I also noticed that with your method, A malicious server could provide a url to a fake skin database which leads to an unsafe website. This would allow server operators to potentially install malware on clients)
The Minetest server can be malicious itself. This won't make it easier nor harder for the hackers to hack into your computer.
Yes, it is possible to affect clients through connection to a server. However, blindly trusting a server to provide a safe url definitely makes it easier for said clients to be 'hacked'. Also, my point about disabling the skin system and using a mod still stands in the case of servers that want to use their own database. Players shouldn't have to trawl through an external website looking for skins made by other people when they could just upload their own to the Content Database, select it in the main menu and click play.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

User avatar
Hume2
Member
Posts: 710
Joined: Tue Jun 19, 2018 08:24
GitHub: Hume2
In-game: Hume2
Location: Czech Republic

Re: Solution for skins

by Hume2 » Post

PolySaken wrote: Yes, it is possible to affect clients through connection to a server. However, blindly trusting a server to provide a safe url definitely makes it easier for said clients to be 'hacked'.
You already blindly trust the Minetest server. The skin server will only provide the skins, which is currently being done by Minetest. So there is no way how this could be more dangerous than it is now.
PolySaken wrote: Also, my point about disabling the skin system and using a mod still stands in the case of servers that want to use their own database. Players shouldn't have to trawl through an external website looking for skins made by other people when they could just upload their own to the Content Database, select it in the main menu and click play.
The same can be done for any other skin database. There is no need for centrality.
If you lack the reality, go on a trip or find a job.

User avatar
rubenwardy
Moderator
Posts: 6978
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
Location: Bristol, United Kingdom
Contact:

Re: Solution for skins

by rubenwardy » Post

It's already possible for a Minetest server to get clients to download from an arbitrary domain - the remote media feature
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

User avatar
HackerinPink
Member
Posts: 43
Joined: Tue Oct 29, 2019 19:36
Location: Somewhere in a 100% regular place.
Contact:

Re: Solution for skins

by HackerinPink » Post

WOW! Now this thread is REALLY shining! With all the diagrams and stuff! Sucks i'm too stupid to contribute, but nice work!
A Dude with power and Intellect.

User avatar
PolySaken
Member
Posts: 817
Joined: Thu Nov 09, 2017 05:18
GitHub: PolySaken-I-Am
In-game: PolySaken
Location: Wānaka, Aotearoa
Contact:

Re: Solution for skins

by PolySaken » Post

rubenwardy wrote:It's already possible for a Minetest server to get clients to download from an arbitrary domain - the remote media feature
This is close to my intention but not quite there. Centalization on the CDB is important for new/inexperienced players, especially those who are coming from minec***t. It's no good if every server has their own database, because players want to be able to use their skin on every server.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.

Post Reply

Who is online

Users browsing this forum: TenPlus1 and 25 guests