Discuss Scratch
- Discussion Forums
- » Collaboration
- » Enhanced Games Unlimited Collaboration ~ Making Drifter!
- jsnpldng
- Scratcher
100+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
That would mean we'd have to create names with 16 letters or less, usually one word, and it'd have to make clear what the achievement is. I like it. What if one of our achievements was something like how in “Getting Over It with Bennett Foddy”, you get an achievement for beating the game 50 times. What if we had an achievement for beating the easiest mission 10 times, or something?
We could also set up a system where a cloud list (seemingly impossible with the variable limit, but hear me out) stores the most recent usernames of people get an achievement… Sorta like this:
- IceBryker just got achievement: 100 enemies killed
- RonTheNerd just got achievement: 300 enemies killed
If we added a list that stored these variables, we could use the current cloud system (120 variables) to store simple values on a traditional cloud list, like store their username and achievement: 32 characters needed for each username (2 digits for each letter, 16 letters total), 2 for each achievement (99 achievements total).
- chickenbomber just got achievement: Leveled up to max
I guess we could all pitch in names if we add achievements.
- Tropic
- Scratcher
1000+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
Same, and I also have a Swedish keyboard that has the Swedish/German letter required to spell that correctly: Schöne Ferien!I can speak a little German xDFeliese Navidad! Or however you spell that xD I can speak a little Spanish, I can't spell in Spanish Merry Christmas guys! Schone Ferien! :P
- OhHeyStranger
- Scratcher
37 posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
I know a way to transfer the data but we'd have to have a processing computer. Which is impossible. But, I could make it work.Interesting thought… What if one of our achievements was something like how in “Getting Over It with Bennett Foddy”, you get an achievement for beating the game 50 times. What if we had an achievement for beating the easiest mission 10 times, or something?
We could also set up a system where a cloud list (seemingly impossible with the variable limit, but hear me out) stores the most recent usernames of people get an achievement… Sorta like this:
- IceBryker just got achievement: 100 enemies killed
- RonTheNerd just got achievement: 300 enemies killed
If we added a list that stored these variables, we could use the current cloud system (120 variables) to store simple values on a traditional cloud list, like store their username and achievement: 32 characters needed for each username (2 digits for each letter, 16 letters total), 2 for each achievement (99 achievements total).
- chickenbomber just got achievement: Leveled up to max
- chickenbomber
- Scratcher
100+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
Yea it is, and the cloud list sounds like a great idea, but to make specific usernames would mean to have a text engine :| We could in theory do that with just plain variables though.Interesting thought… snip
It's not as not-christmas-y as ‘Grandma got run over by a reindeer’, whoever it was that wrote that must have had a very interesting life :POh gosh. I have to listen to that song every 2 hours on loop at work… SO done with it. Same for “Baby It's Cold Outside”. I wanna have a talk with whoever wrote that. If you listen to the lyrics, it's not about Christmas at all….it's about, well, stuff I'm not gonna say on Scratch.Feliese Navidad! Or however you spell that xD I can speak a little Spanish, I can't spell in Spanish snipped also:P
#offtopic
- jsnpldng
- Scratcher
100+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
Processing computer? I thought computers had processors inside them. And also, couldn't we just make an encoder/decoder system inside the project? It could be used to add usernames and achievements to lists, so that everyone is assigned their encoded username and a byte made of numbers; For example, if we had 5 achievements then we would have a byte made of 5 digits like so; 09175. If the first two digits were the achievement for beating the game ten times, then it would start out at 0 and rise up every time you beat the game. Thus, this player's beaten the game 09 times, and if it goes too far up to 99 then we can code it so the digits don't overflow and mess up everything (i.e. if they beat the game 100 times then it won't overflow back down to 00175, or end up improperly encoded as 100175).It would take a lot of work, and each digit would have to be manually accounted for, but we could have a persistent achievement system unlike any other on Scratch. Though, that does raise the question: Could this encoding/decoding system be used to bypass Scratch's “No Cloud Chat Rooms” policy? I think we should warn Scratch Team about this, just in case somebody decides to use an encoding/decoding system like this one to make a chat room.I know a way to transfer the data but we'd have to have a processing computer. Which is impossible. But, I could make it work.Interesting thought… *snip*
Last edited by jsnpldng (Dec. 17, 2018 17:01:27)
- chickenbomber
- Scratcher
100+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
I know one word in German xDI can speak a little German xDFeliese Navidad! Or however you spell that xD I can speak a little Spanish, I can't spell in Spanish Merry Christmas guys! Schone Ferien! :P
- NDSDNS
- Scratcher
1000+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
Thanks to everyone who tried my game.
Gdevelop is an open source, free thing that lets you make games without coding, kinda like scratch, but simpler and more powerful at the same time. Google it.
Gdevelop is an open source, free thing that lets you make games without coding, kinda like scratch, but simpler and more powerful at the same time. Google it.
i do stuff sometimes but not very often
- RonTheNerd
- Scratcher
1000+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
*SNIP* It's not as not-christmas-y as ‘Grandma got run over by a reindeer’, whoever it was that wrote that must have had a very interesting life
LOL I used to hear that one all the time too. Not so much this year.
- RonTheNerd
- Scratcher
1000+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
I don't think it's necessary to warn the ST. In the past, they did allow some CCR's that had been approved. But let's face it. Making one this way would be incredibly hard and confusing…I don't know of anyone besides Griffpatch who might be able to really do it. If we were to do it, there would have to be a whitelist of some kind. Also very hard in and of itself, although it has been done before…Processing computer? I thought computers had processors inside them. And also, couldn't we just make an encoder/decoder system inside the project? It could be used to add usernames and achievements to lists, so that everyone is assigned their encoded username and a byte made of numbers; For example, if we had 5 achievements then we would have a byte made of 5 digits like so; 09175. If the first two digits were the achievement for beating the game ten times, then it would start out at 0 and rise up every time you beat the game. Thus, this player's beaten the game 09 times, and if it goes too far up to 99 then we can code it so the digits don't overflow and mess up everything (i.e. if they beat the game 100 times then it won't overflow back down to 00175, or end up improperly encoded as 100175).It would take a lot of work, and each digit would have to be manually accounted for, but we could have a persistent achievement system unlike any other on Scratch. Though, that does raise the question: Could this encoding/decoding system be used to bypass Scratch's “No Cloud Chat Rooms” policy? I think we should warn Scratch Team about this, just in case somebody decides to use an encoding/decoding system like this one to make a chat room.I know a way to transfer the data but we'd have to have a processing computer. Which is impossible. But, I could make it work.Interesting thought… *snip*
- RonTheNerd
- Scratcher
1000+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
Very cool! And you're welcome. Thanks to everyone who tried my game.
Gdevelop is an open source, free thing that lets you make games without coding, kinda like scratch, but simpler and more powerful at the same time. Google it.
- chickenbomber
- Scratcher
100+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
It might not actually be that hard; Ever seen/played the game Blood Borne? (It's rated M and this is Scratch so I doubt many of you have, but ) A feature in it is that if you play online, people can leave hints around the map, but just so that nobody abuses the chat feature, instead of getting to type your own message you get a list of words you can use. It's stuff like “And, trap, danger, warning, here, there, near, for, watch out, jumpscare, secret, don't” and so forth. We could do that so it's a number assigned to every word. Obviously we'd have more regular words like “hello, scratch, cat, nano, pico, terra, code, block, 's, it, them, they, the, well, I, he, she, jump, fall, attack” and so forth, but it would save a ton of space trying to make an entire encode/decode system.I don't think it's necessary to warn the ST. In the past, they did allow some CCR's that had been approved. But let's face it. Making one this way would be incredibly hard and confusing…I don't know of anyone besides Griffpatch who might be able to really do it. If we were to do it, there would have to be a whitelist of some kind. Also very hard in and of itself, although it has been done before… snip
- IceBryker
- Scratcher
100+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
Jag kan tala några Svenska, men inte mycket. (I can speak some Swedish, but not much.)Same, and I also have a Swedish keyboard that has the Swedish/German letter required to spell that correctly: Schöne Ferien!I can speak a little German xDFeliese Navidad! Or however you spell that xD I can speak a little Spanish, I can't spell in Spanish Merry Christmas guys! Schone Ferien! :P
Last edited by IceBryker (Dec. 18, 2018 02:32:32)
- Partial2Partials
- Scratcher
500+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
Ego dico parvo Latine possum. (I can speak some Latin)Jag kan tala några Svenska. (I can speak some Swedish)I can speak a little German xDFeliese Navidad! Or however you spell that xD I can speak a little Spanish, I can't spell in Spanish Merry Christmas guys! Schone Ferien! :P
- IceBryker
- Scratcher
100+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
What OhHeyStranger means by a “Processing computer” is a computer that is entirely dedicated to running the project specifically as a ‘server“ as sorts. It wouldn’t have to be much, simply a computer that detects changes to an ”input cloud variable", stores it to a list, resets the input variable, and constantly releases the items of the list as sections of cloud variable encoding. This reply is already snip-worthy and getting quite lengthy, so I'm going to make a second post after this one that contains detailed instructions for how I'd make the thing work.Processing computer? I thought computers had processors inside them. And also, couldn't we just make an encoder/decoder system inside the project? It could be used to add usernames and achievements to lists, so that everyone is assigned their encoded username and a byte made of numbers; For example, if we had 5 achievements then we would have a byte made of 5 digits like so; 09175. If the first two digits were the achievement for beating the game ten times, then it would start out at 0 and rise up every time you beat the game. Thus, this player's beaten the game 09 times, and if it goes too far up to 99 then we can code it so the digits don't overflow and mess up everything (i.e. if they beat the game 100 times then it won't overflow back down to 00175, or end up improperly encoded as 100175).It would take a lot of work, and each digit would have to be manually accounted for, but we could have a persistent achievement system unlike any other on Scratch. Though, that does raise the question: Could this encoding/decoding system be used to bypass Scratch's “No Cloud Chat Rooms” policy? I think we should warn Scratch Team about this, just in case somebody decides to use an encoding/decoding system like this one to make a chat room.I know a way to transfer the data but we'd have to have a processing computer. Which is impossible. But, I could make it work.Interesting thought… *snip*
- Joshia_T
- Scratcher
500+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
I think you're overthinking it. We're making a system specifically designed for achievements, one must be able to make a cloud chat on his own if he could use our system to make a chatroom. (if you understand) Also I don't think its that hard to make those kind of achievements, however it has its limits though we shouldn't worry about it yet. I think we should warn Scratch Team about this, just in case somebody decides to use an encoding/decoding system like this one to make a chat room.
Don't think we need any sort of dedicated “Processing computer” such basic achievements only requires the easiest tasks of encoding and decoding I'm pretty sure all computers are made to do that anyways. We're currently reading 1s and 0s anyways right yet we're seeing english letters. (that's a form of encoding) What OhHeyStranger means by a “Processing computer” is a computer that is entirely dedicated to running the project specifically as a ‘server“ as sorts. It wouldn’t have to be much, simply a computer that detects changes to an ”input cloud variable", stores it to a list, resets the input variable, and constantly releases the items of the list as sections of cloud variable encoding. This reply is already snip-worthy and getting quite lengthy, so I'm going to make a second post after this one that contains detailed instructions for how I'd make the thing work.
- Oceanboy98
- Scratcher
100+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
*SNIP* It's not as not-christmas-y as ‘Grandma got run over by a reindeer’, whoever it was that wrote that must have had a very interesting life
LOL I used to hear that one all the time too. Not so much this year.
T(hank)G(oodness)!
Last edited by Oceanboy98 (Dec. 18, 2018 20:42:30)
- IceBryker
- Scratcher
100+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
^ ^ ^ See my last post for context ^ ^ ^
For a server computer to work, we would need a separate user with a name like “drifterserver”. Inside the Drifter project, we would have a script that only works if your username is “driftserver”. This would allow your server profile to run the project differently than other players, thus allowing for the storing of cloud information on lists. With a cloud variable that is changed by a player, the server profile picks up the change to the cloud variable, stores the shared value, and changes the value back to the reset or null value.
There are several issues with this idea: 1) It is WILDLY overcomplicated for a simple “sharing of achievements” idea. The only way this would make ANY sense would be by using this cloud sharing system for every aspect of the project and have other key uses for the system. 2) It would require one of us to have a computer just lying around, idling with the sole purpose of running this scratch project. This is an expensive investment for a scratch project. 3) If there were a simple power outage, some bystander unplugged the cable, or the tab got closed out, the stored values would be deleted forever. Not to mention, the server would become non-functioning if we were to edit the project in any fashion after the initial release due to how cloud variables work.
A much more efficient way of doing it would be to have a single cloud variable dedicated to the storage of a username-achievement duo combined term. As a cloud variable can have no more than 120 digits, there would need to be a code system in place to allow us to store multiple username-achievement duos. Allowing for 22 digits to each username (2 digits for each character, 11 characters) and 2 digits for each achievement contributed to the conjoined username, we have 24 digits total per entry, (120/24) 5 total recent entries. Using one cloud variable limits us to 11 characters per username, but using two cloud variables would allow us to store 40 digits per username (the scratch limit for usernames is 20 characters) and the freedom to have more than 100 achievements if we desired.
The reading/writing of the cloud variables would look something like this…At any given moment, the cloud variable would have all 120 characters taken up with 5 groupings of username-achievements. Here is an example of what one username-achievement grouping of the cloud variable might look like at a given instance, broken up into groupings:
I think we should allow the player to name their character, but I don't think we should let their character's name be the name shown on the achievement list. This would go against the Scratch Guidelines, as any person could set their name to something inappropriate and have it be on the cloud list for everyone to see. We should instead just use the first 11 or 20 characters of the username, as scratch's AI has already prevented bad usernames. If we opted for the two cloud variable system that allows for 20 username characters, it would allow for every possible name to be included, as scratch's username character limit is 20 characters.
Also important is how to encode/decode the code. We could start by breaking the username into ASCII code that fits into the 20 digit limit. For example, the username “IceBryker” would become “00 00 09 03 05 02 18 11 05 18” (the two groupings of 00 are to make the system a uniform length). Let's say “IceBryker” got the achievement “Kill 12 enemies”, or achievement #15 for our purposes. Our final 24 digit encoding would be “00 00 09 03 05 02 18 11 05 18 15” (without the spaces, which are there for visualization purposes). This could be stored onto the cloud variable by erasing the 5th username-achievement combination and re-writing our most recent achievement onto it.
We could decode the message by making a script that takes the 22 (or 40) language digits and turns them into the usernames on the list. We could also create a list with each item on the list being the name of an achievement. The effect could be created with the “join” blocks with the playerusername and playerachievement representing the decoded username and achievement:
The playerusername variable would be decoded by taking a separate variable that contains the alpha-numeric codes. The value of the variable would be: (space)abcdefghijklmnopqrstuvwxyz1234567890-_ and we would decode like this: space = 00, a = 01, b = 02, c = 03 . . . 0 = 37, - = 38, _ = 39. We could encode the numbers of the username by taking the username piece and splitting it into however many bi-numeral numbers needed.
(Sorry for the long post, I tried to break it up to make it easier to read.)
For a server computer to work, we would need a separate user with a name like “drifterserver”. Inside the Drifter project, we would have a script that only works if your username is “driftserver”. This would allow your server profile to run the project differently than other players, thus allowing for the storing of cloud information on lists. With a cloud variable that is changed by a player, the server profile picks up the change to the cloud variable, stores the shared value, and changes the value back to the reset or null value.
There are several issues with this idea: 1) It is WILDLY overcomplicated for a simple “sharing of achievements” idea. The only way this would make ANY sense would be by using this cloud sharing system for every aspect of the project and have other key uses for the system. 2) It would require one of us to have a computer just lying around, idling with the sole purpose of running this scratch project. This is an expensive investment for a scratch project. 3) If there were a simple power outage, some bystander unplugged the cable, or the tab got closed out, the stored values would be deleted forever. Not to mention, the server would become non-functioning if we were to edit the project in any fashion after the initial release due to how cloud variables work.
A much more efficient way of doing it would be to have a single cloud variable dedicated to the storage of a username-achievement duo combined term. As a cloud variable can have no more than 120 digits, there would need to be a code system in place to allow us to store multiple username-achievement duos. Allowing for 22 digits to each username (2 digits for each character, 11 characters) and 2 digits for each achievement contributed to the conjoined username, we have 24 digits total per entry, (120/24) 5 total recent entries. Using one cloud variable limits us to 11 characters per username, but using two cloud variables would allow us to store 40 digits per username (the scratch limit for usernames is 20 characters) and the freedom to have more than 100 achievements if we desired.
The reading/writing of the cloud variables would look something like this…At any given moment, the cloud variable would have all 120 characters taken up with 5 groupings of username-achievements. Here is an example of what one username-achievement grouping of the cloud variable might look like at a given instance, broken up into groupings:
170124012114162416132503
(17 01 24 01 21 14 16 24 16 13 25) - 11 x 2 digits for storing the username. (03) - This represents that the user got the third achievement.
(17 01 24 01 21 14 16 24 16 13 25) - 11 x 2 digits for storing the username. (03) - This represents that the user got the third achievement.
I think we should allow the player to name their character, but I don't think we should let their character's name be the name shown on the achievement list. This would go against the Scratch Guidelines, as any person could set their name to something inappropriate and have it be on the cloud list for everyone to see. We should instead just use the first 11 or 20 characters of the username, as scratch's AI has already prevented bad usernames. If we opted for the two cloud variable system that allows for 20 username characters, it would allow for every possible name to be included, as scratch's username character limit is 20 characters.
Also important is how to encode/decode the code. We could start by breaking the username into ASCII code that fits into the 20 digit limit. For example, the username “IceBryker” would become “00 00 09 03 05 02 18 11 05 18” (the two groupings of 00 are to make the system a uniform length). Let's say “IceBryker” got the achievement “Kill 12 enemies”, or achievement #15 for our purposes. Our final 24 digit encoding would be “00 00 09 03 05 02 18 11 05 18 15” (without the spaces, which are there for visualization purposes). This could be stored onto the cloud variable by erasing the 5th username-achievement combination and re-writing our most recent achievement onto it.
We could decode the message by making a script that takes the 22 (or 40) language digits and turns them into the usernames on the list. We could also create a list with each item on the list being the name of an achievement. The effect could be created with the “join” blocks with the playerusername and playerachievement representing the decoded username and achievement:
(join (playerusername) (join [ got the achievement ] (item (playerachievement) of [achievements v]))
The playerusername variable would be decoded by taking a separate variable that contains the alpha-numeric codes. The value of the variable would be: (space)abcdefghijklmnopqrstuvwxyz1234567890-_ and we would decode like this: space = 00, a = 01, b = 02, c = 03 . . . 0 = 37, - = 38, _ = 39. We could encode the numbers of the username by taking the username piece and splitting it into however many bi-numeral numbers needed.
(Sorry for the long post, I tried to break it up to make it easier to read.)
- jsnpldng
- Scratcher
100+ posts
Enhanced Games Unlimited Collaboration ~ Making Drifter!
This is brilliant! Well done, IceBryker. This could be handy for achievements, even for future projects. *snipping intensifies*