For your lighting problem, maybe you can calculate it individually for each player in the area around the screen? For example, whenever a torch is loaded x distance away from the screen, it's effect is calculated.
Perhaps torches and suhc can have a white circle around them by standard, but with a multiplication effect applied to them, to give the illusion they're lighting up the surroundings, while they're actually just compensating for the black. Is this even possible in scratch?
You could possible use the days since 1/1/2000 if you multiply this number by 60*4 (1 = 15 minutes) and leave the fractional part, then there will be a segment of numbers [0; 1) which should ideally be synchronized for different time zones, then 0-night, 0.25 - morning, 0.5 - day, 0.75 - evening. I hopw this helps for day and night sequences!
Hey Griffpatch, I can't really use Scratch anymore, mainly because my account got blocked, but I just wanted to say that your content is really cool, and that you've been a big inspiration for me in programming in general. Even if I can't use Scratch anymore, you still continue to surprise me with your programming skills every day, and hopefully some day, I can be as good as you, and hopefully even better(you know what I mean lol). Keep up the good work man
Really interesting delta encoding. Almost a mini version of git. 😂 I think a cool idea could be a build battle game. Where players are given a prompt and try and build the closest things with the limitations. Would need a voting system though but that could just be another key in the players object. Could be a way to introduce competitiveness in a way that’s technically possible
That is an interesting idea :D - If only cloud wasn't so unreliable! (regarding git, yeah! It is a mine change control system, but where everyone is broadcasting / streaming their changes in a loop continually :) fun
@@griffpatch Griffpatch, sorry for asking too much in the chat, I treated it as an interview, I'm really sorry, I'm a big fan and I know that you only sometimes see my comments due to large amounts of messages. I'm very sorry for potentially distracting you, You're a busy person, I just won't ask you so much stuff. I'm very sorry if this was annoying or irritating to You 😥
Ideas: You don’t have to do any of them, obviously :D: 1. More Animal Masks - In the beginning, the Pig Masks were a hit! I think it would add more variety to add different ones :) 2. Community Regions - These regions are unclaimable, such as the gold mine and the well. 3. A way to extend your land - Maybe players could pay, iron / gold / diamonds to expand their land 4. Trading - Maybe you could add a new type of chatting such as (TENDERGALAXY) 10 WOOD -> 4 IRON, and then I could enter to accept the offer and the game would auto trade Of course, these are just my personal opinion and you don’t have to do them :D
This is just amazing! I played the game in scratch too! I had more 15 diamonds but suddenly the game refreshed and everything I had just vanished! This is a bug I guess cuz of the massive multiplayer and even in the comments section many people is talking about it. Please fix this bug. Let's not talk about the bug but you know something? Your Amazing, Outstanding and Unbelievable! You're the best scratcher in scratch!
To fix your issue with the non-synchronizing chests. - Shrink the max items allowed in a chest, - Using the same method as your chunkloader between users; aswell syncing terrain shrink chest data changes. - Depending on your cloud variable limit in which you have left, the size of the chest. Shouldn't take up much as itemCostumeID+10
Maybe you can have a system where players can award each other points or items to encourage cooperation. This could be how the mob masks you suggested would be gained.
Also, you could add a negative point system(so its more of a rep system) that removes players with a low reputation, that would mostly fix the griefing problem too and encourage being nice to each other😊
The illumination problem can be partially fixed. More specifically, the day and night! Simply use days since 2000, since it stays the same for all clients, all time zones, and has no lag. So more technically, the day and night cycle can be client based off of days since 2000.
In Cloud Splatoon i (sort of) found a solution to the problem of new players joining after someone leaves. And it's kind of like what you've said about cloud map storing in the past. I made it so all cloud players are also storing their "static" tiles in the cloud, that is, all the tiles on their map currently. They store about 50 tiles per frame, cycling through the whole map, and these tiles will be immediately read by the New joining player to fill in the map that all other players see. The more players are online, the faster it loads in for new players. 50,000 would take way too long, but since your starting world is already preset, maybe you could only have them send the static tiles that are different from the preset world. Also, since splatoon has only 3 color possibilities for tiles, I was able to store 2 tile values in only 1 digit (using the numbers 1-9 since 3^2 = 9), so maybe you could do this combination system to save data in minecraft as well.
Finally, the secret has been revealed! This is a very impressive technical feat. It's so cool to see how far we've come since the character limit was employed. In the future, I think it would do a lot of people good if you took a bit of time to leave some helpful comments in your code. I think it would benefit the Scratch community greatly.
Wow, this is absolutely incredible, and such a great video! 💖 Couldn’t overstate how much you inspired me when learning Scratch & getting into programming. Such impressive work, as always! 😊 Having just worked on replacing the light propagation algorithm in Minecraft: Java Edition, that struggle sounds very familiar! 😄
I just realized... you are the man who inspired me to learn programming, so many years ago. First with scratch, but I've come so far since. Now I'm managing huge projects and on track to build a career on it. Thank you.
@@Richard_Nixon-mr6rq yep. I now use both the username and a time joined as a unique identifier. This allows for the same user to join twice in different browser windows
Hi Griffpatch, Would it be possible to ad servers to the game? Its really just an Idea but when it would be possible i would find that pretty cool: You could may be make private and public servers like this: 1. They are as much as possible servers in the game. 2. To play you would need to save your world (like in your Paper Minecraft game)and ,,load" it into a free server. (if there is one free) 3. When you finished playing, you just save the world, and when everyone has left the server, it turns free again and someone else can use it!
Just wondering, what are your thoughts about people using code to change Scratch cloud variables outside of scratch? Also, do you have any plans to stop any “hackers” from doing these such as writing text in bedrock, drawing things, etc.?
My thoughts are that I wish the scratch team would lock things down to prevent cloud hacking. The benefits of external cloud modification are not enough to outweigh the detrimental effects in my opinion
I code in raw js and i've been trying to figure out how to code a mmo without consuming too much bandwidth since i'm using replit, this is really cool and seems like the whole sending packets by just syncing variables is really cool for scratch, but well the server still has to send all the variable updates so I still have to look around some more, but the whole storing your changes and then deleting them after you leave is so smart! Thanks for this as it will help me make my own projects and it's super cool to see you do stuff that should not be possible in scratch Also for your mobs, you could pass on mobs from player to player so they can be maintained as long as a few people are online, and for chests, try making ur encoder and decoder go with the item ids, so then each item in the chest is 1 digit long, then using that it should be possible to have one chest per player. So you would need to put a limit on the chests placed per player. (I'm assuming that each item has a id in a list or something, and that ur using the encoder and decoder from your cloud multiplayer tutorial series) Also with ur encoder and decoder, maybe you could change the numbers to actuall numbers, this could be done by adding a seperator letter like |, then you could save so much space and you could make the game so much less laggy.
My solution to the griefing would be to give everyone one sign block that when placed, only you can build within a certain radius of the sign. Not sure what the radius would be though...
That could also be used to grief though. Someone could log on with a lol of accounts and fill huge areas with signs so no one could build. Even if there aren’t grinders, the entire surface would be completely filled up all the time.
@@stevenpochatko945 the moment you leave all of your builds including the sign get removed, so you'd have to keep all those accounts online at the same time which would lag your computer. And also, I'm pretty sure you get kicked for being afk too long like in every multiplayer griffpatch game
@@stefan-x9g that’s fair, but I doubt you lag your computer with like 20 chrome tabs open. Still seems as though the surface would be taken up by people rather quickly, but ig it could be a viable option.
Very impressive! I started my dev journey on Scratch (age 6) and multiplayer always seemed impossible to me because of the restrictions but I am glad to hear that some people managed to make this dream come true. I recall thinking of such a system (encoding data into a number) but never made because to me it seemed too complex. I am glad someone finally realized my dream ! Also I didn't know you could have multiple cloud variables.
For saving the whole level, you could just run scratchattach on a server and store the level in a file. This level could then be sent to new players in reserved variables. I actually did this once and it works surprisingly well.
i have an idea for pvp: when players are mining or building you go into "change mode(or something like that)" which is where your changes are sent with more priority than your movement if you start running around or start using your weapon/s then your movements are sent and received by players with much more priority than your changes (i might have this completely wrong as i have only done a few cloud projects)
wow. wow. Griffpatch, it's been like a year since i've used Scratch, and you've been still creating remarkable stuff! You're like the Albert Enstin of Scratch. Nice!!!
I find it really sad that your solution was to remove all edits a player made once he leaves the game. I really hope you use a different solution! Imagine making a huge monument and leave the game, and then everyone else gets to observe your creation, perhaps even add onto the landmark!
I know I'm really late to this video and that you probably won't see this comment but I think I might have figured out a way to get an entire world to fit on a single cloud variable. When you're making a world for players to explore there will a;ways be a finite amount of blocks they can use, which means that instead of just having a single letter assigned to a single block, you could have a single letter/symbol or whatever equate to MULTIPLE blocks using something similar to Binary-Decimal conversion. - Just as an example, you have a tower of dirt with a stone block on top, instead of writing it as "SDDDDD" You could write it as "XFF" (Stone=S, Dirt=D, SD=X, DD=F) and of course it would optimize itself more then just 2 blocks becoming 1. - This idea could also get rid of the need for having players connected to certain blocks and adding moving blocks that move on a server clock - Chest could also run on a separate cloud variable with the same general idea For lighting I have done experiments based on only having as much light calculated for as much light you can see on your screen but Idk how to explain that in depth. Though the basic idea is that a light sprite has a costume that is a straight white translucent blurry line. The light sprite has many clones, and each clone raycast a light by changing to a straight line sprite and setting it's size to the closest light source, and if it hits any objects in it's path, then it hides the sprite, else the sprite is shown. Though this mainly only works on TurboWarp from my experience. Lastly for mobs. I'd say just have each player only calculate one of each mob, and add the mob data to the player's cloud variable (Which would have more space now since they aren't storing the list of edited blocks cause of the first fix) I don't truly know if any of these would actually work but I feel like these are pretty good ideas that could still be implemented in some manner!
I remember like 8 years ago I was amazed by your scratch games, I think I even talked to you a bit, completely different username though. Nostalgic to see your name again, I'm still amazed about how you make these within scratch
This is a very interesting topic with multiplayer! I do not really understand multiplayer, but perhaps to avoid players who destroy buildings need to add a privat. You can make in the block code (in coded form) the numbers either 0 or the order number of the player (0 is a block without a privat, and if there is a player number, then under the privat the player). Most likely you will also have to make some kind of tool that will allow you to create a privat. I don't know for sure if this will work, but it's just my idea of protecting player buildings.
@griffpatch i got on this on scratch and thought im gonna play this for hours every day i love your stuff thanks for making all the cool stuff for us to enjoy keep it up.
I don't actually know how it works, but for saving changes for new players you could send users changes to other players and to scrattatach, and when a new player joins the game tiles would load directly from it(of course it would take some time). By the way, great project
Honestly, this must have been really complicated to make because of the limitations of what Scratch provides. Yet, somehow your clever tricks and ideas always seem to blow my mind. Breaking the limitations of Scratch is just Genius!
Very fun! I spent my time in-game by building a giant tower on the far side of the map, then wondered off all the way to the other side and back, and looked at what changed while i was gone!
woww griffpatch! this is incedible!! your content is just the best!!!!! I've done almost all of your tutorials!!! just now I'm make your mario platformer!!!!!!!
1. There is a critical security issue in the version variable. You can essentially kick everybody off the game with a python script. 2. You should make the change system p2p. When bob sends updates, we store it and start broadcasting it as bob, ALONGSIDE our own updates. 3. Can you show us how you did encoding?
7:55 You can create afk player that Online every time and the plan is Bob will send this value to this afk player and the afk player will send this value to everyone every time (english is not my main Language so I can have mistakes)
I love these videos SO much. Also for the chest system you could create a non cloud for creating an item code then plug that in to a cloud variable then use a list to decode it like a save code to keep the items in based on the item code
It's really remarkable how you've created this even with all the limitations in the cloud variables. Great video - a real eye-opener! I vaguely knew the theory of MMO, but have never tried to put one into practice. I might now :)
your tests and games used to fascinate me when i was just learning to program back in 2013/14, particularly that platformer engine you made with the scratch cat that had 16 frames io animation. Here I am a decade later making my own stuff, and youtube brings me right back to where it all began...
*Amazing game!* Now I see why you where not posting videos. This entire time you were working in the *Scratch Minecraft game* , but more cool and with more people! *Amazing work, keep it up!*
and for the lights you can make it light up based on when a player joins, a player that plays with you while you place the torch will be able to get the full light up at the same time but a new player at first not have to torch light lit up like it has just been placed, then it will eventually fully light up, hope that helps :)
I think i found out how to add procedural generation accross multiplayer So basically there will be dulplicates of the same game as scratch projects and named like "MMO Server 1, 2, ect." When a play joins, if that player is player kne meaning the whole server just restarted, the whole word procedurally generates and makes a unique code. player one is given both the code and the save code of the entire world. Player one can then send these two codes to friends so they can join. People who dont know the furst cide wont be ket in and has to find a different server that is free or us owned by a friend. One the friend gets both the code, the game then asks the player for the first code which lets the game know that its a friend and the second code is the procedurally genedared land and the changes to it. MMO eorks the same Scratcharia, REVIVED!
interesting idea but i think that the majority of players who want to play the game will not be able to, unless there is a community server with a universal code, but idk
I found you on the server... Anyway, your tutorials, even the oldest, is surprisingly awesome. It made me interested on Scratch coding, and let me make the first platformer game.
Potential Solutions: 1) Have one "home base" computer that does all the hard calculations 2) Expand the data packet system to include stuff like chest interactions 3) Save a single cloud variable that allows each individual player to "claim" it randomly. They then compute that frame's mobs/liquids/falling blocks. May cause lag spikes.
Truly amazing. I never knew this kind of this was possible on a platform like scratch. Very inspirational, I hope one day I could be able to think of such a genius solution like this. Anyways, stunning work and I cant wait to see the finished game!
This is really awesome! I cannot believe how you can think of these! Your tutorials are what really made me admire the world of coding. Keep up the good work!
Very Impressive Griffpatch!!. I have an idea if you like the idea of people having private multiplayer worlds [for this to work u will need a list called worlds which checks if the block updates are for its world ] what they can do is invite certain scratch accounts and the scratch accounts {assuming if in same experience} will get a special teleport request which when pressed makes them leave from the central map and loads the host players new world which can be saved and loaded . plus the host can be in charge of computing all the background block updates and mob updates
Griffpatch man it be so fun to talk and theorize about scratch multiplayer. your ways of doing multiplayer where ones i had thought of about 3 or so months ago or smt like that and i started on a multiplayer engine that others could just implement to any of there games and do some simple connecting to get it to work but any way. Ive been wanting to get deeper into scratch multiplayer but i have had no one to rlly brain storm or theorize with. And honestly some of the questions you where talking about such as falling sand, chest and such sound like interesting problems to solve.
For building with others and still prevent people from griefing, you can make it so you can only destroy a certain amount of other players' blocks within a certain amount of time, or make it so you can't destroy other people's blocks at all, but add a chat function to ask someone to delete a certain block
An idea that *could* work is if you have an account you have act as a server, constantly running and doing all the calculations. It would never leave, and be able to update everything at once. Though I’m not as good as you, so idk if it would work!
this project is amazing. i play mincraft a lot and it is realy like it. one thing i notaced is that stone normally spawns 5 blocks below dirt in miecraft but in your game is a bit diffrent and is depper. anyway love the game
Scratch has gone so far as a programming software we went from simple projects to full on 100+ players multiplayer games i'm so happy to be part of this community
For land claim protection, you add a setting that toggles the list overwriting. Like if a player does not want their blocks to be broken, you could protect their change list and prevent it from being overwritten. Then limit the number of claimed-blocks they could place.
Honestly forgot about scratch. I've been working in C for a while trying to go back to fundamentals.. I wonder what I could do in scratch today. Subbed, you earned it with your commitment to pushing the platform's limits. Perhaps teams could be implemented using the same code you use to revert a player's changes on leaving? Somehow a player claims a small region (specifics aren't too important), and has ownership of those tiles until they leave. They could keep a list of trusted players, and overwrite any changes by untrusted players. Doesn't seem like that would be *too* difficult to implement, compared to the other things here.
My suggestion for preventing destroying people's builds is to add sort of a psuedo friend-system. Players who are friends can destroy each other's blocks. Maybe there could also be a "trust everyone" tick for people who don't care about their stuff getting broken. To avoid abusing this to trap people, perhaps allow non-friends to temporarily break blocks client-side. Or, a moderation solution could work. Keep a list of "banned" players in the project that you update periodically, which makes it so that they can only walk around. It might also be worthwhile to consider splitting it up into two "servers" (maybe through a second project), where one allows griefing and the other doesn't.
hey Griffpatch, Maybe you could have a main menu with the ability to join and leave giving the players the ability to save there work by sending the break and place data as a different player but as the same player in the Space feature. they could be given the choice to save there data to another player for broadcasting or erase there data for world reconstruction. I hope This helps, I wouldn't want more players stuck in mines, Its really annoying. I hope I have the chance of helping the channel through the comments section! Btw love your videos!
You can constantly refresh the data about the blocks players place, use a list, generate the data and delete it then resend the data and delete, if new block is added then add the new data and do the same process
You could make light stored only on the client, as well as only syncing time and using that Also, you could have everyone store a ledger of everyone else's changes, and having an "authoritative client" be assigned (maybe the order of joins, if p1 leaves p2 becomes authority) to send changes to new players
i rarely use scratch anymore but this is p neat and for the problem with griefing, maybe you could add a toggle for players to allow either nobody to edit what they've done, allow a select few users, or allow everybody. maybe just a button in a corner that changes a digit in your data packet to 0, 1, or 2, and that number indicates your limitations on other-player editing. as for allowing some people, you could add their encoded usernames after the original number this is just an idea tho and might not work well in practice. regardless, i hope this project goes well
For the cooperative building problem, you could add a feature like: if you double click someone, it sends a request to share land and ownership of blocks, i have no clue how you could do that, but im just giving you the shovel to dig the hole!
You could use a bot that connects as a scratcher and is online all the time to manage all the world data. Or an alternative that I didn't try yet: make a bot that changes the variables in the project, so the whole edited map is delivered with the page load.
I have actually thought of using lists for multiplayer in my turbowarp game for a very long time , but I thought it wasn't possible (besides, there isn't no limit to how many cloud variables I can make in my game because I'm using Turbowarp). Thanks Griffpatch!
I will make tons of bad ideas now: Drag an item from your hotbar to a player to give it to that player Larger inventory that can be accessed with [I] (I did this in a remix ID:857862285) Add more than 10 chat categories (blocks, items, questions, buildings, locations, directions, etc.) by having Next Page and Previous Page as options Tools will break blocks faster (this is probably already planned) Furnace can smelt items (it said this was already implemented but I wasn't able to do it in the game) There's an infinite wood generator (trees), but could we get an infinite stone and ores generator? (probably from water and lava) If you respawn as a pig, a piece of pork appears where you were before A brand new ore that does wacky things?? And I'm not gonna suggest to add inventory to chests because that sounds like it won't fit in a single cloud variable. (unless it has very few slots)
hey griffpatch, i really love your content, and i say keep working, and i love how u figured out how to make many ppl play at once, but i think something really cool would be to have like a death run, or a parkour on the game. players could jump over the blocks, and u could addd in poison blocks that if u touch it, u die. i really love your content, though, and as u say, "SCRATCH ON!"
great project griffpatch! For the anti-greifing thing, maybe you could add claiming land, but you use a pinboard to place it and other players can request acess to the land on pinboards? idk
For your lighting problem, maybe you can calculate it individually for each player in the area around the screen? For example, whenever a torch is loaded x distance away from the screen, it's effect is calculated.
I visited the project but yes he did fix the lightning problem
Perhaps torches and suhc can have a white circle around them by standard, but with a multiplication effect applied to them, to give the illusion they're lighting up the surroundings, while they're actually just compensating for the black. Is this even possible in scratch?
@@zellenny1784 no, there no composition display filters like multiply, that would be awesome
@@griffpatch looks like we have a new update idea for scratch :)
hi
This is crazy, honestly it makes me wonder how scratch think of you.
@griffpatch can i please get a shoutout
i’ve literally wondered too
@@palmossi comment of shame
1 day ago??
@@Adventure_Epic what
You could possible use the days since 1/1/2000 if you multiply this number by 60*4 (1 = 15 minutes) and leave the fractional part, then there will be a segment of numbers [0; 1) which should ideally be synchronized for different time zones, then 0-night, 0.25 - morning, 0.5 - day, 0.75 - evening. I hopw this helps for day and night sequences!
This is amazing, griffpatch, don’t stop ever.
Please
Hey Griffpatch, I can't really use Scratch anymore, mainly because my account got blocked, but I just wanted to say that your content is really cool, and that you've been a big inspiration for me in programming in general. Even if I can't use Scratch anymore, you still continue to surprise me with your programming skills every day, and hopefully some day, I can be as good as you, and hopefully even better(you know what I mean lol). Keep up the good work man
why did your account get removed?
What did you do?
Why were you banned, they usually don’t do that for no reason
Wow, really? Sorry to hear that man. Scratch is like that a lot, trust me.
@@kolby125 no they don't, I've only received 1 warn when I was a kid.
Really interesting delta encoding. Almost a mini version of git. 😂 I think a cool idea could be a build battle game. Where players are given a prompt and try and build the closest things with the limitations. Would need a voting system though but that could just be another key in the players object. Could be a way to introduce competitiveness in a way that’s technically possible
That is an interesting idea :D - If only cloud wasn't so unreliable! (regarding git, yeah! It is a mine change control system, but where everyone is broadcasting / streaming their changes in a loop continually :) fun
@@griffpatch Griffpatch, sorry for asking too much in the chat, I treated it as an interview, I'm really sorry, I'm a big fan and I know that you only sometimes see my comments due to large amounts of messages. I'm very sorry for potentially distracting you, You're a busy person, I just won't ask you so much stuff. I'm very sorry if this was annoying or irritating to You 😥
@@IAmAFailureYT he might be tired of youtube or something happened in his personal life
@@griffpatch after years of wondering thats how you made so many players in one game
@@griffpatch there are more reliable exts tho (like cloudlink)
Ideas: You don’t have to do any of them, obviously :D:
1. More Animal Masks - In the beginning, the Pig Masks were a hit! I think it would add more variety to add different ones :)
2. Community Regions - These regions are unclaimable, such as the gold mine and the well.
3. A way to extend your land - Maybe players could pay, iron / gold / diamonds to expand their land
4. Trading - Maybe you could add a new type of chatting such as (TENDERGALAXY) 10 WOOD -> 4 IRON, and then I could enter to accept the offer and the game would auto trade
Of course, these are just my personal opinion and you don’t have to do them :D
This is just amazing! I played the game in scratch too! I had more 15 diamonds but suddenly the game refreshed and everything I had just vanished! This is a bug I guess cuz of the massive multiplayer and even in the comments section many people is talking about it. Please fix this bug. Let's not talk about the bug but you know something? Your Amazing, Outstanding and Unbelievable! You're the best scratcher in scratch!
I remember playing this and saw you, I tried following you but then you left. This has got to be the most insane cloud project ever.
This is insane, I’ve been obsessed with figuring out how to make mega multiplayer games and this just gave me so many ideas! Thanks!
To fix your issue with the non-synchronizing chests.
- Shrink the max items allowed in a chest,
- Using the same method as your chunkloader between users; aswell syncing terrain shrink chest data changes.
- Depending on your cloud variable limit in which you have left, the size of the chest. Shouldn't take up much as itemCostumeID+10
Maybe you can have a system where players can award each other points or items to encourage cooperation. This could be how the mob masks you suggested would be gained.
Also, you could add a negative point system(so its more of a rep system) that removes players with a low reputation, that would mostly fix the griefing problem too and encourage being nice to each other😊
NO MOBS? NO PVP? this is how you get a boring game...
9:50 you could make light apply only to the blocks that are showing on the screen.
the way you have created this is really clever, I would have never been able to think of something like this!
The illumination problem can be partially fixed. More specifically, the day and night! Simply use days since 2000, since it stays the same for all clients, all time zones, and has no lag. So more technically, the day and night cycle can be client based off of days since 2000.
In Cloud Splatoon i (sort of) found a solution to the problem of new players joining after someone leaves. And it's kind of like what you've said about cloud map storing in the past. I made it so all cloud players are also storing their "static" tiles in the cloud, that is, all the tiles on their map currently. They store about 50 tiles per frame, cycling through the whole map, and these tiles will be immediately read by the New joining player to fill in the map that all other players see. The more players are online, the faster it loads in for new players. 50,000 would take way too long, but since your starting world is already preset, maybe you could only have them send the static tiles that are different from the preset world.
Also, since splatoon has only 3 color possibilities for tiles, I was able to store 2 tile values in only 1 digit (using the numbers 1-9 since 3^2 = 9), so maybe you could do this combination system to save data in minecraft as well.
Wow I never thought I see you there
9:33 Owner for the sand will be the nature it's self
Finally, the secret has been revealed! This is a very impressive technical feat. It's so cool to see how far we've come since the character limit was employed. In the future, I think it would do a lot of people good if you took a bit of time to leave some helpful comments in your code. I think it would benefit the Scratch community greatly.
Wow, this is absolutely incredible, and such a great video! 💖 Couldn’t overstate how much you inspired me when learning Scratch & getting into programming. Such impressive work, as always! 😊
Having just worked on replacing the light propagation algorithm in Minecraft: Java Edition, that struggle sounds very familiar! 😄
8:20 made me laugh so hard! I would never expect Griffpatch to do something like this which only makes it funnier. XD
He he thank you
I don’t understand how you’ve been able to do this. You are so talented and I hope you keep up the great work 👍
I just realized... you are the man who inspired me to learn programming, so many years ago. First with scratch, but I've come so far since. Now I'm managing huge projects and on track to build a career on it. Thank you.
How do you test online? I.e. at 7:20 you have other people all around, and a second account ( I’m assuming ) your also controlling
We can even test with the same account now if you do some tricks to identify which player is which
@@griffpatch like are you talking about using usernames in the data packet or something else?
@@Richard_Nixon-mr6rq yep. I now use both the username and a time joined as a unique identifier. This allows for the same user to join twice in different browser windows
@@griffpatch woah!
Hi Griffpatch,
Would it be possible to ad servers to the game?
Its really just an Idea but when it would be possible i would find that pretty cool:
You could may be make private and public servers like this:
1. They are as much as possible servers in the game.
2. To play you would need to save your world (like in your Paper Minecraft game)and ,,load" it into a free server. (if there is one free)
3. When you finished playing, you just save the world, and when everyone has left the server, it turns free again and someone else can use it!
Just wondering, what are your thoughts about people using code to change Scratch cloud variables outside of scratch? Also, do you have any plans to stop any “hackers” from doing these such as writing text in bedrock, drawing things, etc.?
My thoughts are that I wish the scratch team would lock things down to prevent cloud hacking. The benefits of external cloud modification are not enough to outweigh the detrimental effects in my opinion
I code in raw js and i've been trying to figure out how to code a mmo without consuming too much bandwidth since i'm using replit, this is really cool and seems like the whole sending packets by just syncing variables is really cool for scratch, but well the server still has to send all the variable updates so I still have to look around some more, but the whole storing your changes and then deleting them after you leave is so smart! Thanks for this as it will help me make my own projects and it's super cool to see you do stuff that should not be possible in scratch
Also for your mobs, you could pass on mobs from player to player so they can be maintained as long as a few people are online, and for chests, try making ur encoder and decoder go with the item ids, so then each item in the chest is 1 digit long, then using that it should be possible to have one chest per player. So you would need to put a limit on the chests placed per player.
(I'm assuming that each item has a id in a list or something, and that ur using the encoder and decoder from your cloud multiplayer tutorial series)
Also with ur encoder and decoder, maybe you could change the numbers to actuall numbers, this could be done by adding a seperator letter like |, then you could save so much space and you could make the game so much less laggy.
My solution to the griefing would be to give everyone one sign block that when placed, only you can build within a certain radius of the sign. Not sure what the radius would be though...
I think in scratcharia he did that. Correct me if i'm wrong
That could also be used to grief though. Someone could log on with a lol of accounts and fill huge areas with signs so no one could build. Even if there aren’t grinders, the entire surface would be completely filled up all the time.
@@stevenpochatko945 the moment you leave all of your builds including the sign get removed, so you'd have to keep all those accounts online at the same time which would lag your computer. And also, I'm pretty sure you get kicked for being afk too long like in every multiplayer griffpatch game
@@stefan-x9g that’s fair, but I doubt you lag your computer with like 20 chrome tabs open.
Still seems as though the surface would be taken up by people rather quickly, but ig it could be a viable option.
Unfortunately this has almost ruined the game
Very impressive! I started my dev journey on Scratch (age 6) and multiplayer always seemed impossible to me because of the restrictions but I am glad to hear that some people managed to make this dream come true. I recall thinking of such a system (encoding data into a number) but never made because to me it seemed too complex. I am glad someone finally realized my dream !
Also I didn't know you could have multiple cloud variables.
For saving the whole level, you could just run scratchattach on a server and store the level in a file. This level could then be sent to new players in reserved variables. I actually did this once and it works surprisingly well.
I’m working on the same thing also using severs for security and to increase the max player limit
i have an idea for pvp: when players are mining or building you go into "change mode(or something like that)" which is where your changes are sent with more priority than your movement if you start running around or start using your weapon/s then your movements are sent and received by players with much more priority than your changes (i might have this completely wrong as i have only done a few cloud projects)
If this is what he can do in scratch, imagine what this man could do outside of scratch.
he is a skilled JS coder
wow. wow. Griffpatch, it's been like a year since i've used Scratch, and you've been still creating remarkable stuff! You're like the Albert Enstin of Scratch. Nice!!!
I find it really sad that your solution was to remove all edits a player made once he leaves the game. I really hope you use a different solution! Imagine making a huge monument and leave the game, and then everyone else gets to observe your creation, perhaps even add onto the landmark!
I know I'm really late to this video and that you probably won't see this comment but I think I might have figured out a way to get an entire world to fit on a single cloud variable.
When you're making a world for players to explore there will a;ways be a finite amount of blocks they can use, which means that instead of just having a single letter assigned to a single block, you could have a single letter/symbol or whatever equate to MULTIPLE blocks using something similar to Binary-Decimal conversion.
- Just as an example, you have a tower of dirt with a stone block on top, instead of writing it as "SDDDDD" You could write it as "XFF" (Stone=S, Dirt=D, SD=X, DD=F) and of course it would optimize itself more then just 2 blocks becoming 1.
- This idea could also get rid of the need for having players connected to certain blocks and adding moving blocks that move on a server clock
- Chest could also run on a separate cloud variable with the same general idea
For lighting I have done experiments based on only having as much light calculated for as much light you can see on your screen but Idk how to explain that in depth. Though the basic idea is that a light sprite has a costume that is a straight white translucent blurry line. The light sprite has many clones, and each clone raycast a light by changing to a straight line sprite and setting it's size to the closest light source, and if it hits any objects in it's path, then it hides the sprite, else the sprite is shown. Though this mainly only works on TurboWarp from my experience.
Lastly for mobs. I'd say just have each player only calculate one of each mob, and add the mob data to the player's cloud variable (Which would have more space now since they aren't storing the list of edited blocks cause of the first fix)
I don't truly know if any of these would actually work but I feel like these are pretty good ideas that could still be implemented in some manner!
make a friends system where it can detect if a certain “friend”(other user) is online
Good idea
I remember like 8 years ago I was amazed by your scratch games, I think I even talked to you a bit, completely different username though. Nostalgic to see your name again, I'm still amazed about how you make these within scratch
I love your tutorials, and I would LOVE to see you make a merge game tutorial
This is a very interesting topic with multiplayer! I do not really understand multiplayer, but perhaps to avoid players who destroy buildings need to add a privat. You can make in the block code (in coded form) the numbers either 0 or the order number of the player (0 is a block without a privat, and if there is a player number, then under the privat the player). Most likely you will also have to make some kind of tool that will allow you to create a privat. I don't know for sure if this will work, but it's just my idea of protecting player buildings.
@griffpatch i got on this on scratch and thought im gonna play this for hours every day i love your stuff thanks for making all the cool stuff for us to enjoy keep it up.
I like that you can place items down just like blocks! It reminds me of the Minecraft April Fools update 22w13oneBlockAtATime
Wow, had no idea you had a RUclips channel. You really inspired a ton of us when the 2.0 era rolled around. So happy you're still going!
:o 0:41 POLISH PLAYER Jerzyku :OOO
I don't actually know how it works, but for saving changes for new players you could send users changes to other players and to scrattatach, and when a new player joins the game tiles would load directly from it(of course it would take some time). By the way, great project
Honestly, this must have been really complicated to make because of the limitations of what Scratch provides. Yet, somehow your clever tricks and ideas always seem to blow my mind. Breaking the limitations of Scratch is just Genius!
This is crazy cool! Scratcharia Multiplayer was my favorite game as a kid
Very fun! I spent my time in-game by building a giant tower on the far side of the map, then wondered off all the way to the other side and back, and looked at what changed while i was gone!
woww griffpatch! this is incedible!! your content is just the best!!!!! I've done almost all of your tutorials!!! just now I'm make your mario platformer!!!!!!!
1. There is a critical security issue in the version variable. You can essentially kick everybody off the game with a python script.
2. You should make the change system p2p. When bob sends updates, we store it and start broadcasting it as bob, ALONGSIDE our own updates.
3. Can you show us how you did encoding?
7:55 You can create afk player that Online every time and the plan is Bob will send this value to this afk player and the afk player will send this value to everyone every time (english is not my main Language so I can have mistakes)
I love these videos SO much. Also for the chest system you could create a non cloud for creating an item code then plug that in to a cloud variable then use a list to decode it like a save code to keep the items in based on the item code
It's really remarkable how you've created this even with all the limitations in the cloud variables. Great video - a real eye-opener! I vaguely knew the theory of MMO, but have never tried to put one into practice. I might now :)
your tests and games used to fascinate me when i was just learning to program back in 2013/14, particularly that platformer engine you made with the scratch cat that had 16 frames io animation. Here I am a decade later making my own stuff, and youtube brings me right back to where it all began...
*Amazing game!*
Now I see why you where not posting videos.
This entire time you were working in the *Scratch Minecraft game* , but more cool and with more people!
*Amazing work, keep it up!*
This is very cool! How you just push the limits of scratch! Good job =)
Incredible. I have looked up to you ever since I joined Scratch, you never disappoint!
Thanks :D
and for the lights you can make it light up based on when a player joins, a player that plays with you while you place the torch will be able to get the full light up at the same time but a new player at first not have to torch light lit up like it has just been placed, then it will eventually fully light up, hope that helps :)
I think i found out how to add procedural generation accross multiplayer
So basically there will be dulplicates of the same game as scratch projects and named like "MMO Server 1, 2, ect."
When a play joins, if that player is player kne meaning the whole server just restarted, the whole word procedurally generates and makes a unique code. player one is given both the code and the save code of the entire world. Player one can then send these two codes to friends so they can join. People who dont know the furst cide wont be ket in and has to find a different server that is free or us owned by a friend.
One the friend gets both the code, the game then asks the player for the first code which lets the game know that its a friend and the second code is the procedurally genedared land and the changes to it. MMO eorks the same
Scratcharia, REVIVED!
interesting idea but i think that the majority of players who want to play the game will not be able to, unless there is a community server with a universal code, but idk
I found you on the server... Anyway, your tutorials, even the oldest, is surprisingly awesome. It made me interested on Scratch coding, and let me make the first platformer game.
Potential Solutions:
1) Have one "home base" computer that does all the hard calculations
2) Expand the data packet system to include stuff like chest interactions
3) Save a single cloud variable that allows each individual player to "claim" it randomly. They then compute that frame's mobs/liquids/falling blocks. May cause lag spikes.
Good idea
bruh its been so looooonnngg since i wachted ur vids LOVEEE the intro my guys breaking scratch again keep it up griff ;)
Truly amazing. I never knew this kind of this was possible on a platform like scratch. Very inspirational, I hope one day I could be able to think of such a genius solution like this. Anyways, stunning work and I cant wait to see the finished game!
Your tutorials have helped me in scratch but now I am moving up to lua code so thank you for my help in my coding journey
At this point griffpatch is on scratches hit list!
This is really awesome! I cannot believe how you can think of these! Your tutorials are what really made me admire the world of coding. Keep up the good work!
Very Impressive Griffpatch!!. I have an idea if you like the idea of people having private multiplayer worlds [for this to work u will need a list called worlds which checks if the block updates are for its world ] what they can do is invite certain scratch accounts and the scratch accounts {assuming if in same experience} will get a special teleport request which when pressed makes them leave from the central map and loads the host players new world which can be saved and loaded . plus the host can be in charge of computing all the background block updates and mob updates
love your vids I have been in the inner circle been waiting for a vid thank you soooooooo much
Sorry for the delay - It's been a busy month for me! - Here's the project on my tutor account at present: scratch.mit.edu/projects/831603644/
Realy cool! I love how you push the limits of Scratch!
Griffpatch man it be so fun to talk and theorize about scratch multiplayer. your ways of doing multiplayer where ones i had thought of about 3 or so months ago or smt like that and i started on a multiplayer engine that others could just implement to any of there games and do some simple connecting to get it to work but any way. Ive been wanting to get deeper into scratch multiplayer but i have had no one to rlly brain storm or theorize with. And honestly some of the questions you where talking about such as falling sand, chest and such sound like interesting problems to solve.
For building with others and still prevent people from griefing, you can make it so you can only destroy a certain amount of other players' blocks within a certain amount of time, or make it so you can't destroy other people's blocks at all, but add a chat function to ask someone to delete a certain block
This is insane! It's honestly incredible what you can do with Scratch
An idea that *could* work is if you have an account you have act as a server, constantly running and doing all the calculations. It would never leave, and be able to update everything at once. Though I’m not as good as you, so idk if it would work!
I think it would
this project is amazing. i play mincraft a lot and it is realy like it. one thing i notaced is that stone normally spawns 5 blocks below dirt in miecraft but in your game is a bit diffrent and is depper. anyway love the game
Thanks so much, Griffpatch! This has been really useful for a base on how to make cloud projects. Maybe I'll make a multiplayer survival game!
Scratch has gone so far as a programming software
we went from simple projects to full on 100+ players multiplayer games
i'm so happy to be part of this community
Wow that is really impressive, makes me want to attempt something like this! You are really driving forward scratch cloud variable tech
i find it amazing how you essentially managed to make a changing world consistent across multiple players without having a host server. unreal
Nice video! I love all your content and scratch games!! Continue like that!
Also: I want to be a mob!
Reply me too!!!
@@griffpatch Me too!
@@griffpatch me too (wolf)
@@griffpatch me too!!!
For land claim protection, you add a setting that toggles the list overwriting. Like if a player does not want their blocks to be broken, you could protect their change list and prevent it from being overwritten. Then limit the number of claimed-blocks they could place.
yes, but people can still grief by burying everything in dirt, and plus, griffpatch still wants people to cooperate to build stuff
Honestly forgot about scratch. I've been working in C for a while trying to go back to fundamentals.. I wonder what I could do in scratch today. Subbed, you earned it with your commitment to pushing the platform's limits.
Perhaps teams could be implemented using the same code you use to revert a player's changes on leaving? Somehow a player claims a small region (specifics aren't too important), and has ownership of those tiles until they leave. They could keep a list of trusted players, and overwrite any changes by untrusted players. Doesn't seem like that would be *too* difficult to implement, compared to the other things here.
My suggestion for preventing destroying people's builds is to add sort of a psuedo friend-system. Players who are friends can destroy each other's blocks. Maybe there could also be a "trust everyone" tick for people who don't care about their stuff getting broken.
To avoid abusing this to trap people, perhaps allow non-friends to temporarily break blocks client-side.
Or, a moderation solution could work. Keep a list of "banned" players in the project that you update periodically, which makes it so that they can only walk around.
It might also be worthwhile to consider splitting it up into two "servers" (maybe through a second project), where one allows griefing and the other doesn't.
It’s very impressive how you deal with Cloud variables, encoding and decoding them efficiently throughout everyone!
hey Griffpatch, Maybe you could have a main menu with the ability to join and leave giving the players the ability to save there work by sending the break and place data as a different player but as the same player in the Space feature. they could be given the choice to save there data to another player for broadcasting or erase there data for world reconstruction. I hope This helps, I wouldn't want more players stuck in mines, Its really annoying. I hope I have the chance of helping the channel through the comments section! Btw love your videos!
Thanks for the ideas!
@@griffpatch thanks so much for replying😮 it makes my day❤
Thank you so much for an MMO tutorial finally! I can finally make my 3D flight simulator online!
You can constantly refresh the data about the blocks players place, use a list, generate the data and delete it then resend the data and delete, if new block is added then add the new data and do the same process
This is very cool! I hope that you can get enough time to work towards your projects as they seem very interesting! Lots of Love from New Zealand!
You could make light stored only on the client, as well as only syncing time and using that
Also, you could have everyone store a ledger of everyone else's changes, and having an "authoritative client" be assigned (maybe the order of joins, if p1 leaves p2 becomes authority) to send changes to new players
Hoorah - we finally got an MMO tutorial! Even though I've left Scratch for a while, I'm really excited for what people do next :)
i rarely use scratch anymore but this is p neat
and for the problem with griefing, maybe you could add a toggle for players to allow either nobody to edit what they've done, allow a select few users, or allow everybody. maybe just a button in a corner that changes a digit in your data packet to 0, 1, or 2, and that number indicates your limitations on other-player editing. as for allowing some people, you could add their encoded usernames after the original number
this is just an idea tho and might not work well in practice. regardless, i hope this project goes well
For the cooperative building problem, you could add a feature like: if you double click someone, it sends a request to share land and ownership of blocks, i have no clue how you could do that, but im just giving you the shovel to dig the hole!
You could use a bot that connects as a scratcher and is online all the time to manage all the world data.
Or an alternative that I didn't try yet: make a bot that changes the variables in the project, so the whole edited map is delivered with the page load.
I have actually thought of using lists for multiplayer in my turbowarp game for a very long time
, but I thought it wasn't possible (besides, there isn't no limit to how many cloud variables I can make in my game because I'm using Turbowarp). Thanks Griffpatch!
Well done I was waiting for this
I will make tons of bad ideas now:
Drag an item from your hotbar to a player to give it to that player
Larger inventory that can be accessed with [I] (I did this in a remix ID:857862285)
Add more than 10 chat categories (blocks, items, questions, buildings, locations, directions, etc.) by having Next Page and Previous Page as options
Tools will break blocks faster (this is probably already planned)
Furnace can smelt items (it said this was already implemented but I wasn't able to do it in the game)
There's an infinite wood generator (trees), but could we get an infinite stone and ores generator? (probably from water and lava)
If you respawn as a pig, a piece of pork appears where you were before
A brand new ore that does wacky things??
And I'm not gonna suggest to add inventory to chests because that sounds like it won't fit in a single cloud variable. (unless it has very few slots)
You're games are always the best!❤🎉
Woah, this is really cool! I'm sure servers for Paper Minecraft can be made with this! I'll try making a Paper Minecraft Hypixel server.
Dude is still making videos and games, amazing! I used to watch griffpatch’s tutorials and play his games when i was in 4th - 6th grade.
Finnaly, griffpatch teaches up a supercloud
hey griffpatch, i really love your content, and i say keep working, and i love how u figured out how to make many ppl play at once, but i think something really cool would be to have like a death run, or a parkour on the game. players could jump over the blocks, and u could addd in poison blocks that if u touch it, u die. i really love your content, though, and as u say, "SCRATCH ON!"
great project griffpatch! For the anti-greifing thing, maybe you could add claiming land, but you use a pinboard to place it and other players can request acess to the land on pinboards? idk
THIS LOOKS SOOO AWSOME I LOVE IT! keep up the good work! *first time join*