I tried to make Tetris in Scratch
Vložit
- čas přidán 28. 05. 2024
- It's here if you want to try it:
scratch.mit.edu/projects/9946...
Music used:
"Inevitable" by Diamond Ortiz
"Marty Gots a Plan" by Kevin MacLeod
"Monkeys Spinning Monkeys" by Kevin MacLeod
"File Select" from Super Mario 64
"The Builder" by Kevin MacLeod
"Sneaky Adventure" by Kevin MacLeod - Hry
In my computer class, im making an inscryption style card game. Scratch is a funny little thing.
i love inscryption!! can you give me an update when you release it?
@@funkymoss sure man!
@@funkymossIts done enough for what I need now lol, my account name is this_is_a_name_yes
Its called Performance task (inscryption style card game)
Note: its INSPIRED by inscryption, i did NOT do a good job modeling after it lmao.
Other note: Don’t speak with the book, it might get ideas…
It will likely receive updates, as there are only 10 cards, half yours, half not.
@@funkymossi hope he didnt forgor
4:26 could of used the set rotation style block and changed it to dont rotate
I was about to say that
"could of"
EXACTLY
Could ‘of’ used change x by and change y by
btw, if u add multiple when flag clicked blocks, both run when flag clicks, allowing some scripts to be seperate from "wait" blocks in the forever loop of the other chain of blocks. this helps with things like snappy-ness.
Oh wow! That's neat!
@@XenonNeko Additionally you can use DaysSince2000 to create your own wait blocks which is a better alternative, and if you're worried that the wait blocks have more precise timing, they don't. Though, you'll have to multiply DaysSince2000 by 86,400 to get the value in seconds.
Except you can run into sync issues. That's why many lot of scratch games use only 1 green flag clicked block (even griffpatch uses 1).
Just wanted to let you know, the forever loop isn't ONLY a forever loop, but it also yields for other "threads" once the end of the loop is reached (if you put multiple flag clicked blocks for example, those scripts would then get processing time), and automatically waits for the next frame. This means loops are capped to 30 fps by scratch itself, so you don't have to do any timing work ! The only way to prevent this is to create a function (define block) with the "run without screen refresh" option on.
Well, scratch does cap it to 30 fps, but that doesn't mean lag can't happen. Using delta time is much better. Plus, this also caps the fps on turbowarp, which can run scratch projects at higher fps, as high as 256 (but usually just 60).
@@ego-lay_atman-bay Delta time is obviously superior, and for that, the `days since 2000` block actually is pretty cool if you want multiple timers (to avoid using the `timer` value which can be used for stop detection).
It can get really precise, being a floating point number ! For small projects though? you aren't gonna lag scratch much, so it's fine.
I love this video, and how it explains how scratch works. Most youtubers just try to make fun of it and say "How limited it is" but you described it very well in a way that makes it seem more like a game engine, which is what it is. Even if it is for kids, it does it's job very well, and i have been using scratch for years with no issues.
Thank you!
I have been using scratch for many years, and love it so much, but I still don't say it's a game engine. It's way more inline with regular programming than a game engine. A game engine usually takes care of physics and more, but scratch just gives you the basic tools. Scratch does have moving in a direction, but that's already a common programming concept, turtle graphics.
the funny thing is, one of the sample projects that would COME with scratch (the very old 1.x versions for windows) was in fact a Tetris clone. It had levels and speed-up I think, but otherwise it looked far more boring visually, so I'll still say yours is better, lol
(but also old Scratch had less to work with i.e. you couldn't create and define your own blocks/functions)
dude this is like your second time using scratch ever and your way better then me
that’s because he has coding experience in other coding softwares, Scratch is like an easier version of any other coding software
3:30 That is indeed one of the most useful blocks.
3:00 You can recolor with the color effect block, however getting the colors you actually want is tricky.
2 words USE CLONE
I personally feel that stamping is more efficient for tiles on a grid
@@XenonNekobut with clones are way less complicated and can use the if touching blocks in sensing and rotate using movement blocks instead of all that math stuff and code
@@PersonOverHeaven True. I'm definitely not used to the way things are done in Scratch 😂
@@XenonNeko Clones are easier, but not really the best for rendering, stamping is generally optimal, however clones do have their use case. Generally, clones are best used as extra data storage because if you make a list that is "For this sprite only" then clones will have their own separate version of the list that has different values, this is useful if you are storing a lot of data that can't fit on a regular list that only has 200,000 maximum items, though there is also a maximum of 300 clones so there is that to consider too.
@@XenonNeko most things on grid that need collision detection are generally better with lists than using clones because the touching block is a lot slower than the check a thing in the list blocks.
This is a pretty good project! I was so happy when you switched to the delta time method.
1:13 In my opinion, it's best not to use triangles, 3d rendering doesn't need triangles, any illusion will do, and bill-boarding is an illusion. But, there's more you can do, like if you want to render a 3d line you can project the two points onto the screen then put your 2d image in-between the two points, scale it to fit between the two points, and rotate it to match the slope of the line.
You are now Griffpatch
3:15 With that nice black background it should make recoloring your sprites easy, to change the color of the sprite you set the color effect to double the value you want it to be, to get the saturation you set brightness effect to one hundred minus the value you want your saturation to be, and to get the brightness effect you set the ghost effect to one hundred minus the value you want for brightness. I may have gotten some of the mathematics wrong since I haven't needed to use this in a while, but that is the overall gist. Unfortunately using ghost effect for brightness makes it hard to then have actual ghost effect.
AWESOME!
4:43 there's a block in the motion tab that lets you set the visual rotation style to only left and right. It might also have a setting to stop visual rotation completely but i'm not sure
I wish I would have known about this sooner!
yes that is true
whats the song at this part
@@ThePianoTutorialGuy "File Select" from Super Mario 64
Thanks man
Good job! I've been using scratch for years...and I can't even fathom how to make Tetris
for your first time making an actual project on scratch, you did good
there's a block where you can turn the sprite technically but not visually
I dont understand programming, and i have no idea why this vid popped up in my recommended. But this was fun to watch xD
Him: *Sub Boards*
Scratch: *Don't Rotate*
Bro you are making amazing content.
Thats the First Video i have Seen of you, and i would have guessed that you Channel would be much bigger
You are so underrated! It looks very good :)
4:40 YOU HAVE A BLOCK THAT CANCELS VISSABLE ROTATION
I found out too late
Adding a score is easy, just add a score variable and increase it every time you clear a line, and also add a top score cloud variable or a leaderboard.
Definitely! Although I'd want the game to control a lot better before I felt right attaching scores to it.
Since I was already there, I went ahead and added score and levels and speed increase (No leaderboard yet, though).
@@XenonNeko nice :) this project is pretty cool btw
17:15 Here, he obviously means desmos
Alright, next I expect you'll be trying machine code, the best of all worlds, there will be no strange decisions from Unity, no weird block-based limitations, and a lot of time and effort spent.
i made a whole ping pong game in scratch when i was a 4th grader
latin nerd here, tetris is a 3rd-declension noun meaning the plural would be tetrēs!
I love Scratch!
7:54 what a coincidence, scratch already runs at 30 frames per second.
No rotating idea: just switch the sprite's rotation style to don't rotate it can still move as usual, but you don't have to worry about the game getting messed up because of a rotated block
Äh, you know that forever runs at 30 tps?
Every loop in Scratch does that unless it takes too long to go through the loop.
[Funfact]: in scratch the [ Change [ Color ] by ( Number ) ] block doesn't work with Black/White sprites exactly why some people make the base sprite Red (mainly) or other colors!
Do not rotate mode: exist
This dude:
I don’t care about losing that heart so I’m here to say that this comment have no intention of hating him, his work is pretty incredible to do in Scratch from scratch.
Yes, he’s not that good
Lol joke's on you I rehearted it (also thanks!)
I'm making Tetris in Scratch right now. I'm "play testing" it more than I'm working on it 😅
it’s already hard enough to arrange a shape out of the blocks
ya know you are actually better than me at scratch... nice job
Thank you for subtitles,i'am brazillian
high contrast is the best mode (in my opinion)
Uh oh, Tetris will murder you now
They're petty if they go after a Scratch project 🤣
I suppose we'll have to wait and see
5:32 my brain had an idea with that heard, ''i piss''
6:02 you made diagonal Tetris
6:04 Oh wow, that looks interesting. If I remember correctly, I just stored a sheet that included every rotation and piece, but that might have been on Excel now that I think about it.
Scratch Tetris game crash when
3:13 the music transition here is crazy
YAAAAAAAAAAAY FINALLY SOMEONE WHO DOES SOMETHING I DO!
As a man who has done this last year,
I can confirm this man's pain
Here before this is your top vid 🎉
7:51 oh, by the way, scratch runs at 30 fps (unless you use turbowarp).
Awww yeaahhh!!! New video!!!
7:57 Oh wow, that's a funny thing, you're clearly used to programming languages where it will simply crash if you don't have delay at the end of any loop that runs forever, however in Scratch it automatically is capped at 30 fps. Indeed, I believe that you unintentionally made a 15fps game with that wait block.
12:43 *vine boom*
Amazing!
2:55 it does, in fact work like that 😭
I must be missing something! All I could get the white sprite to look like was really pale versions of all the colors.
🤯 My mind is broken right now
Complicated way to make Tetris
13:04 I know that you can do whatever set of rules you want for your implementation of tetris but “fixing” that thing where you can get the same piece twice in a row because of how the bag system is set up is actually not something that needed to be fixed and you just made more work for yourself for something that didn’t feel right to you… getting 2 of the same piece in a row can let you chain 3 tetrises by holding an I piece and then randomly getting two I pieces in a row from the bag, which is relevant in the verses tetris games like tetris 99 or Puyo Puyo tetris 1&2.
The one piece
ITS REEEEALLLL
THE ONE PIECE
I really don't understand why they made the pen an extension in scratch 3 and not just a feature like in scratch 2
you should consider implementing matrix in scratch when working with tiles on a set grid in makes things simpler
you forgot about the linux kernel in scratch
Its Perfect...
1. scratch is 30fps 2. u dont need the wait in the forever. it will make it half speed
0:55 spu7nix:
Me over here still trying to use velocity in scratch:
4:40 may I introduce you to rotation styles?
actually lemme try making tetris in scratch it seems fun
Geometry dash players be like
13:03 its not a fix, its a change. Because that is standard bag system behavior.
Right. Should have clarified, It was just my personal preference
I added a toggle for that behavior while implementing feedback from other people.
Clean
Im making a massive game there
idea: turn the blocks into scrath cat but its limbs being the little parts and the main bit/center being the face
banger video
2:11 Tetri
Cactus = Cacti
Tetris = Tetri
Blud learned faster than my dad left me💀💀
I thought it was griffpatch video lol😂
cyborg never see me
damn you are crazy good at making tetris and playing tetris did you use any tutorials in this video?
Not for this project in particular, no. But I have watched Griffpatch tutorials in the past, if that counts! And I watched those before I ever got into Scratch - for some reason.
damn you are really good@@XenonNeko
I also tried to make Tetris I scratch
He made a game with one sprite
ive never heard someone describe tetromino with letters
Oh no- he used ALL of his code inside one sprite. Wow.
Personally, I wouldve made each type of block its own sprite, and made the UI its own sprite, and make the collision its own sprite, and the white flash its own sprite. Yeah, lots of scratch is centered around making lots of simple pieces that you pull in when you need instead of coding them, and that’s really it.
4:50 scratch has a setting that stops a sprite from Visually rotating.
WHAT the o piece doesn't rotate 😭
I made geometry dash in scratch as well
Quick question. Why did you not just make each piece its own sprite? I feel like that would end up being all around easier.
I'm not sure how that would be easier (but that might just be me. I'm not familiar with how things are usually done in Scratch). If you mean splitting the logic into different sprites, I would argue there's a lot of redundancy because the pieces have a lot of common functionality. If you mean making the pieces themselves different sprites, I'm not sure what to do in the case of line clears where pieces can get broken up. And as the board fills up, that sounds like a lot to keep track of. Either way, I find communicating information between sprites to be annoying (again that's just personal preference). If you're referring to something else entirely, please explain.
4:02 Ah, I can see why you might have thought that...
cool
What about coding all of the piece spins? How would that work?
Not sure
Dude you can change the rotation mode of the sprites !!!
You know you can set the sprite to not visually rotate and only rotate in code right?
I did not! Oops
Change y is a thing that exists
4:33 you could've clicked "don't rotate" in he direction area. It keeps the movement the same but doesn't turn the sprite visually
edit: when you said "I decided on a 30 fps system" I just said out loud "sorry to tell you, scratch has 30 30fps limit/cap..."
*s c r a t c h*
6:02 45° t
Tetree
IS THAT A ONE PIECE REFERENCE THE O P(ONE PIEEEECCCEEE)
noice.
it was so hard because you were coding everything in 1 sprite 💀💀