Solution for skins
- 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
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.
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.
- HackerinPink
- Member
- Posts: 43
- Joined: Tue Oct 29, 2019 19:36
- Location: Somewhere in a 100% regular place.
- Contact:
Re: Solution for skins
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.
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.
- 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
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.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.
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.
Re: Solution for skins
Good idea. And I would add an API to manage skins, a bridge between a mod and ContentDB.
- Linuxdirk
- Member
- Posts: 3219
- Joined: Wed Sep 17, 2014 11:21
- In-game: Linuxdirk
- Location: Germany
- Contact:
Re: Solution for skins
The CDB would be constantly flooded with skins from all servers ...runs wrote:Good idea. And I would add an API to manage skins, a bridge between a mod and ContentDB.
- 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
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.Linuxdirk wrote:The CDB would be constantly flooded with skins from all servers ...runs wrote:Good idea. And I would add an API to manage skins, a bridge between a mod and ContentDB.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.
- 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
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)
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.
- HackerinPink
- Member
- Posts: 43
- Joined: Tue Oct 29, 2019 19:36
- Location: Somewhere in a 100% regular place.
- Contact:
Re: Solution for skins
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.
- 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
Thanks!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.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.
- Hume2
- Member
- Posts: 710
- Joined: Tue Jun 19, 2018 08:24
- GitHub: Hume2
- In-game: Hume2
- Location: Czech Republic
Re: Solution for skins
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.
- 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
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?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.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.
- Linuxdirk
- Member
- Posts: 3219
- Joined: Wed Sep 17, 2014 11:21
- In-game: Linuxdirk
- Location: Germany
- Contact:
Re: Solution for skins
You can't.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?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.
You either have a moderated central repository for skins, or server-owners and admins have to manually check if a skin is inappropriate.
- 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
Exactly. That's one of the main reasons for hosting it on the CDB in the first place.Linuxdirk wrote:You can't.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?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.
You either have a moderated central repository for skins, or server-owners and admins have to manually check if a skin is inappropriate.
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.
- Linuxdirk
- Member
- Posts: 3219
- Joined: Wed Sep 17, 2014 11:21
- In-game: Linuxdirk
- Location: Germany
- Contact:
Re: Solution for skins
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.PolySaken wrote:hosting it on the CDB in the first place.
- 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
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.Linuxdirk wrote: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.PolySaken wrote: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.
- Linuxdirk
- Member
- Posts: 3219
- Joined: Wed Sep 17, 2014 11:21
- In-game: Linuxdirk
- Location: Germany
- Contact:
Re: Solution for skins
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.PolySaken wrote:The idea is that the skins are cross-server
- Hume2
- Member
- Posts: 710
- Joined: Tue Jun 19, 2018 08:24
- GitHub: Hume2
- In-game: Hume2
- Location: Czech Republic
Re: Solution for skins
No, the clients won't be able to choose the database. The server would choose the database.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?
BTW, why don't do it like this instead?
- Attachments
-
- skin.png (50.08 KiB) Viewed 603 times
If you lack the reality, go on a trip or find a job.
- 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
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.Hume2 wrote:No, the clients won't be able to choose the database. The server would choose the database.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?
BTW, why don't do it like this instead?
(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.
- 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
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.Linuxdirk wrote: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.PolySaken wrote:The idea is that the skins are cross-server
(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.
- Hume2
- Member
- Posts: 710
- Joined: Tue Jun 19, 2018 08:24
- GitHub: Hume2
- In-game: Hume2
- Location: Czech Republic
Re: Solution for skins
The skin database URL is human-readable, so the player can know it even before joining the server.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 Minetest server can be malicious itself. This won't make it easier nor harder for the hackers to hack into your computer.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)
If you lack the reality, go on a trip or find a job.
- 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
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.Hume2 wrote:The skin database URL is human-readable, so the player can know it even before joining the server.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 Minetest server can be malicious itself. This won't make it easier nor harder for the hackers to hack into your computer.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)
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.
- Hume2
- Member
- Posts: 710
- Joined: Tue Jun 19, 2018 08:24
- GitHub: Hume2
- In-game: Hume2
- Location: Czech Republic
Re: Solution for skins
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: 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'.
The same can be done for any other skin database. There is no need for centrality.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.
If you lack the reality, go on a trip or find a job.
- 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
It's already possible for a Minetest server to get clients to download from an arbitrary domain - the remote media feature
- HackerinPink
- Member
- Posts: 43
- Joined: Tue Oct 29, 2019 19:36
- Location: Somewhere in a 100% regular place.
- Contact:
Re: Solution for skins
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.
- 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
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.rubenwardy wrote:It's already possible for a Minetest server to get clients to download from an arbitrary domain - the remote media feature
Guidebook Lib, for in-game docs | Poly Decor, some cool blocks | Vision Lib, an all-purpose library.
Who is online
Users browsing this forum: TenPlus1 and 25 guests