Discuss Scratch

potatoto_boy
Teacher
84 posts

Leaderboard

Hi~ I am potato_boy.
Many fantastic games have leaderboards, such as the highest points, the longest hold time, and the farthest distance run.


With the leaderboard, players will be more willing to play the project many times over because of competition, and the creators themselves will be able to see directly how players are playing through the changes in the leaderboard data.

I know many awesome creators can write a leaderboard with variables, lists, encoding, and decoding, but I think it's too hard for most creators.

The simple leaderboard blocks I'd like to suggest are these:


Display the leaderboard, you can choose whether to pause the game after opening the leaderboard or not.


Add player data to the leaderboard and rank them.


You can use this block to run a script when the leaderboard is closed. The event will be dispatched when the player closes the leaderboard.



These two blocks can be used to get the data of players on the leaderboard.

And last but not least, the leaderboard exists separate from the stage area, like a separate pop-up, so that it does not interfere with the operation of the project and occupies the space.


Do you need a leaderboard too?
Do you want such simple and useful leaderboard blocks in Scratch?

I need your support.

Last edited by potatoto_boy (Aug. 17, 2022 06:26:30)

historical_supa
Scratcher
1000+ posts

Leaderboard

The only problem this would have that I can think of would be that it would cost the Scratch Team a lot of money- since it needs to use cloud servers for the leaderboards. Since Scratch runs on donations and merchandise and those things only, it might have a negative effect on the Scratch website itself.

Also, a tip, you should probably change the game image since one of the people on the leaderboard has a pretty bad word on it…

Last edited by historical_supa (Aug. 11, 2022 08:21:47)

potatoto_boy
Teacher
84 posts

Leaderboard

historical_supa wrote:

The only problem this would have that I can think of would be that it would cost the Scratch Team a lot of money- since it needs to use cloud servers for the leaderboards. Since Scratch runs on donations and merchandise and those things only, it might have a negative effect on the Scratch website itself.

Also, a tip, you should probably change the game image since one of the people on the leaderboard has a pretty bad word on it…

Without considering the financial burden on Scratch Team, do you think that leaderboard is a feature that would make your projects better?

Thank you for the tip, that was a web picture, later I will find a way to change that bad word.
historical_supa
Scratcher
1000+ posts

Leaderboard

potatoto_boy wrote:

historical_supa wrote:

The only problem this would have that I can think of would be that it would cost the Scratch Team a lot of money- since it needs to use cloud servers for the leaderboards. Since Scratch runs on donations and merchandise and those things only, it might have a negative effect on the Scratch website itself.

Also, a tip, you should probably change the game image since one of the people on the leaderboard has a pretty bad word on it…
Without considering the financial burden on Scratch Team, do you think that leaderboard is a feature that would make your projects better?
For me, that would certainly be! It would be very nice to be able to show who has which spot on a leaderboard; it could also persuade people to try their best in any competitive games I have.

Also, speaking of finance, maybe like cloud variables, this feature should be available for Scratchers and above only, since that could reduce costs and server space.
potatoto_boy
Teacher
84 posts

Leaderboard

historical_supa wrote:

For me, that would certainly be! It would be very nice to be able to show who has which spot on a leaderboard; it could also persuade people to try their best in any competitive games I have.

Also, speaking of finance, maybe like cloud variables, this feature should be available for Scratchers and above only, since that could reduce costs and server space.

I'm glad you agree with me about the leaderboard.

Totally understand the difficulties with Scratch Team.

But I remain firm in my hope that the leaderboard will emerge and make more projects by more creators better.

Last edited by potatoto_boy (Aug. 11, 2022 09:36:29)

Euglena73
Scratcher
1000+ posts

Leaderboard

As mentioned, it's a good idea but a bit worse to do as the Scratch team probably has more important things than that.
-Valtren-
Scratcher
1000+ posts

Leaderboard

no support. it can be easily done with cloud variables and skills with cloud is something I feel that everyone should learn at some point.
also, this would only help in games, and make it seem like everything is a competition.

Last edited by -Valtren- (Aug. 11, 2022 11:08:34)

TheClaw7654
Scratcher
500+ posts

Leaderboard

this would be a good idea, but as historical_supa said, scratch is a non-profit organization the runs solely on donations, and making leaderboards are possible already.

Last edited by TheClaw7654 (Aug. 11, 2022 11:30:28)

Knightbot63
Scratcher
1000+ posts

Leaderboard

no support, I think it may be too laggy and too many requests to scratch servers so doing cloud variable complications are much better.
yavuz61035
Scratcher
500+ posts

Leaderboard

new stop all discovered

when leaderboard [get trol the project is finishd! v] closed ::hat #459AFF
show leaderboard [get trol the project is finishd! v] and [pause v] ::#459AFF

also i have 1 idea and a few blocks

first one: the thing that appears when there are no scores is something like this

Hmm…
We couldn't find any scores. Be the first one to get a score!

then there are the blocks

so this is a sorting block for leaderboards:
sort leaderboard [leaderboard v] by (highest v) combined with (A-Z v) ::#459AFF
sort options: lowest, highest, A-Z, Z-A

how will it sort: let's assume the second input is lowest and the third input is A-Z. it would first sort the lowest to highest numbers, then it would sort the text from A-Z like how you would do it in a dictionary. at the bottom. let's assume again that the first is Z-A and the second is highest. it would first sort the text from Z-A, then at the bottom it would sort the numbers from highest to lowest. 4 edge cases are when both are the same. in those cases, it would only sort highest to lowest numbers, lowest to highest, A-Z and Z-A. if both were A-Z then it would not put numbers and only text and vice versa. if it couldn't find anything while sorting, this message would appear:
Hmm…
We couldn't find any score with this current sort. Maybe try another one?
by the way you can change the sorting of the leaderboard in the leaderboard popup

another block is this:
is leaderboard [a v] shown? ::#459AFF boolean
you probably understand this one. it reports true when leaderbard a is shown and else it reports false.
another 4 are these:
delete all of leaderboard [leaderboard v] ::#459AFF
delete all instances of [hello world] in leaderboard [leaderboard v] ::#459AFF
delete user [id v] [12345678]'s score in leaderboard [leaderboard v] ::#459AFF // the options for the first input is id and username
delete item (1) of [leaderboard v] ::#459AFF

these 2 blocks are one of the simple ones
first sort of leaderboard [leaderboard v] ::#459AFF boolean
second sort of leaderboard [leaderboard v] ::#459AFF boolean
these simply report the sort on the top and the bottom. simple.

the last block is this:
score of user [id v] [314159] in leaderboard [leaderboard v] ::#459AFF reporter // first input can be id or username
simply reports any user's score in a leaderboard. if that user isn't in the leaderboard, it reports the empty value.
that block can replace "user's score in ".

so anyways, if you couldn't tell anway, i support.

also we need limitations on leaderboards like cloud variables
so these?

- there can be at most 8 leaderboards per project
- each leaderboard can contain at most (100000 / however many leaderboards are in the project) items in the project (rounded.)
- or actually just disallow letters (so the “combined sort” is just 1 sort)

Last edited by yavuz61035 (Aug. 24, 2022 11:04:09)

historical_supa
Scratcher
1000+ posts

Leaderboard

-Valtren- wrote:

also, this would only help in games
For your logic to be consistent, we would have to remove things like the music extension or blocks like the ‘day since 2000’ block should be removed, due to their rather limited uses.

-Valtren- wrote:

…and make it seem like everything is a competition.
Scratch added cloud variables, why not this? You can also do competition-y things with cloud variables, as you said.

Knightbot63 wrote:

…doing cloud variable complications are much better.
Are they really that better? Of course, the choice of adding this or not could pretty much determine the whole fate of the website, but we can also look at this from a user's perspective. Is dealing with cloud variable encoding and decoding much better? Scratch is an introduction to programming, and I assume there are simple leaderboard ‘systems’ built in with many programming software. I'm not saying we should add every possible programming feature or possibility into Scratch, but it wouldn't really hurt to add something like leaderboards.
potatoto_boy
Teacher
84 posts

Leaderboard

Euglena73 wrote:

As mentioned, it's a good idea but a bit worse to do as the Scratch team probably has more important things than that.

Without considering the financial burden on Scratch Team, do you think that leaderboard is a feature that would make your projects better?

Also, do you have any other suggestions for the leaderboard?
Do_not_create
Scratcher
9 posts

Leaderboard

Use lists
historical_supa
Scratcher
1000+ posts

Leaderboard

Do_not_create wrote:

Use lists
Using lists only does not solve the problem. Since lists do not connect to the servers, you would have to do very tricky coding with cloud variables.
potatoto_boy
Teacher
84 posts

Leaderboard

yavuz61035 wrote:

new stop all discovered

when leaderboard [get trol the project is finishd! v] closed ::hat #459AFF
show leaderboard [get trol the project is finishd! v] and [pause v] ::#459AFF

also i have 1 idea and a few blocks

first one: the thing that appears when there are no scores is something like this

Hmm…
We couldn't find any scores. Be the first one to get a score!

then there are the blocks

so this is a sorting block for leaderboards:
sort leaderboard [leaderboard v] by (highest v) combined with (A-Z v) ::#459AFF
sort options: lowest, highest, A-Z, Z-A

how will it sort: let's assume the second input is lowest and the third input is A-Z. it would first sort the lowest to highest numbers, then it would sort the text from A-Z like how you would do it in a dictionary. at the bottom. let's assume again that the first is Z-A and the second is highest. it would first sort the text from Z-A, then at the bottom it would sort the numbers from highest to lowest. 4 edge cases are when both are the same. in those cases, it would only sort highest to lowest numbers, lowest to highest, A-Z and Z-A. if both were A-Z then it would not put numbers and only text and vice versa. if it couldn't find anything while sorting, this message would appear:
Hmm…
We couldn't find any score with this current sort. Maybe try another one?
by the way you can change the sorting of the leaderboard in the leaderboard popup

another block is this:
is leaderboard [a v] shown? ::#459AFF boolean
you probably understand this one. it reports true when leaderbard a is shown and else it reports false.
another 4 are these:
delete all of leaderboard [leaderboard v] ::#459AFF
delete all instances of [hello world] in leaderboard [leaderboard v] ::#459AFF
delete user [id v] [12345678]'s score in leaderboard [leaderboard v] ::#459AFF // the options for the first input is id and username
delete item (1) of [leaderboard v] ::#459AFF

these 2 blocks are one of the simple ones
first sort of leaderboard [leaderboard v] ::#459AFF boolean
second sort of leaderboard [leaderboard v] ::#459AFF boolean
these simply report the sort on the top and the bottom. simple.

the last block is this:
score of user [id v] [314159] in leaderboard [leaderboard v] ::#459AFF reporter // first input can be id or username
simply reports any user's score in a leaderboard. if that user isn't in the leaderboard, it reports the empty value.
that block can replace "user's score in ".

so anyways, if you couldn't tell anway, i support.

also we need limitations on leaderboards like cloud variables
so these?

- there can be at most 8 leaderboards per project
- each leaderboard can contain at most (100000 / however many leaderboards are in the project) items in the project (rounded.)


The sorting in the leaderboard is indeed an important feature.
The blocks you mentioned are very inspiring to me.
Thank you so much.

musicROCKS013
Scratcher
1000+ posts

Leaderboard

Bumping this post for the OP v

historical_supa wrote:

Also, a tip, you should probably change the game image since one of the people on the leaderboard has a pretty bad word on it…
-
I think this is a good idea, but where exactly would the popup appear outside of the stage?
Unity_and_Cq
Scratcher
500+ posts

Leaderboard

No support. This is essentially cloud lists and that is rejected (and yes, I know it's not EXACTLY like cloud lists but it is close enough for it to be a reason)
HeliosTheSuperior
Scratcher
100+ posts

Leaderboard

why not just add a cloud variable for each player onto a list
Supernoodles99
Scratcher
100+ posts

Leaderboard

potatoto_boy wrote:

Hi~ I am potato_boy.
Many fantastic games have leaderboards, such as the highest points, the longest hold time, and the farthest distance run.

I know many awesome creators can write a leaderboard with variables, lists, encoding, and decoding, but I think it's too hard for most creators.

Do you need a leaderboard too?
Do you want such simple and useful leaderboard blocks in Scratch?

I need your support.
No support. The scratch team already said that cloud lists are a rejected suggestion. and leaderboards are pretty much the exact same thing but restricted to usernames and numbers. While this restriction might save space in the cloud servers, it's highly unlikely.
Supernoodles99
Scratcher
100+ posts

Leaderboard

HeliosTheSuperior wrote:

why not just add a cloud variable for each player onto a list
You can only have 10 cloud variables at a time which can be a very small amount. Imagine if, Let's say Rocket league was somehow recreated as a cloud multiplayer game in scratch. Considering that the players themselves are stored in cloud variables, we would have Even less Cloud variables to work with for the leaderboards. So your idea would be virtually impossible to be useful.

Powered by DjangoBB