I tried to make Tetris in Scratch

Поділитися
Вставка
  • Опубліковано 31 тра 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
  • Ігри

КОМЕНТАРІ • 222

  • @aaron.s1531
    @aaron.s1531 Місяць тому +104

    In my computer class, im making an inscryption style card game. Scratch is a funny little thing.

    • @funkymoss
      @funkymoss Місяць тому +7

      i love inscryption!! can you give me an update when you release it?

    • @aaron.s1531
      @aaron.s1531 Місяць тому +6

      @@funkymoss sure man!

    • @aaron.s1531
      @aaron.s1531 Місяць тому

      @@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.

    • @parali30
      @parali30 5 днів тому

      ​@@funkymossi hope he didnt forgor

  • @idzwakey8737
    @idzwakey8737 Місяць тому +75

    4:26 could of used the set rotation style block and changed it to dont rotate

    • @Upside-out
      @Upside-out Місяць тому +3

      I was about to say that

    • @gamezboi_
      @gamezboi_ Місяць тому +7

      "could of"

    • @Siuozl
      @Siuozl 24 дні тому

      EXACTLY

    • @YourLocalGrammarPolice
      @YourLocalGrammarPolice 3 дні тому

      Could ‘of’ used change x by and change y by

    • @Siuozl
      @Siuozl 2 дні тому

      @@YourLocalGrammarPolice nah u can’t cuz that’s not what he’s doin

  • @DSMusicParodies
    @DSMusicParodies Місяць тому +31

    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.

    • @XenonNeko
      @XenonNeko  Місяць тому +3

      Oh wow! That's neat!

    • @flameofthephoenix8395
      @flameofthephoenix8395 21 день тому

      @@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.

    • @ego-lay_atman-bay
      @ego-lay_atman-bay 10 днів тому +3

      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).

  • @lpinf
    @lpinf 24 дні тому +15

    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.

    • @ego-lay_atman-bay
      @ego-lay_atman-bay 10 днів тому +1

      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).

    • @lpinf
      @lpinf 10 днів тому

      @@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.

    • @breakdanc3
      @breakdanc3 7 годин тому +1

      I’ve always found that scratch runs on 32fps, but 23 on Firefox. Maybe it’s 24 because my fps project isn’t that good lol

  • @Lu9_ST
    @Lu9_ST Місяць тому +10

    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)

  • @Leognml
    @Leognml Місяць тому +25

    dude this is like your second time using scratch ever and your way better then me

    • @Eeeeeeeee75282
      @Eeeeeeeee75282 Місяць тому +7

      that’s because he has coding experience in other coding softwares, Scratch is like an easier version of any other coding software

  • @flameofthephoenix8395
    @flameofthephoenix8395 21 день тому +5

    3:30 That is indeed one of the most useful blocks.

  • @alexside5153
    @alexside5153 Місяць тому +5

    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.

    • @XenonNeko
      @XenonNeko  Місяць тому +1

      Thank you!

    • @ego-lay_atman-bay
      @ego-lay_atman-bay 10 днів тому +3

      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.

  • @goofynaas204
    @goofynaas204 26 днів тому +5

    This is a pretty good project! I was so happy when you switched to the delta time method.

  • @flameofthephoenix8395
    @flameofthephoenix8395 21 день тому +3

    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.

  • @flameofthephoenix8395
    @flameofthephoenix8395 21 день тому +2

    3:00 You can recolor with the color effect block, however getting the colors you actually want is tricky.

  • @PersonOverHeaven
    @PersonOverHeaven Місяць тому +91

    2 words USE CLONE

    • @XenonNeko
      @XenonNeko  Місяць тому +23

      I personally feel that stamping is more efficient for tiles on a grid

    • @PersonOverHeaven
      @PersonOverHeaven Місяць тому +19

      @@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

    • @XenonNeko
      @XenonNeko  Місяць тому +15

      ​@@PersonOverHeaven True. I'm definitely not used to the way things are done in Scratch 😂

    • @flameofthephoenix8395
      @flameofthephoenix8395 21 день тому +9

      @@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.

    • @snezitko
      @snezitko 20 днів тому +3

      ​@@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.

  • @EktoAnim
    @EktoAnim Місяць тому +8

    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

  • @flameofthephoenix8395
    @flameofthephoenix8395 21 день тому +2

    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.

  • @muodyadept4447
    @muodyadept4447 5 днів тому +1

    I dont understand programming, and i have no idea why this vid popped up in my recommended. But this was fun to watch xD

  • @gaimnbro9337
    @gaimnbro9337 14 днів тому +2

    Good job! I've been using scratch for years...and I can't even fathom how to make Tetris

  • @oklyok
    @oklyok Місяць тому +7

    there's a block where you can turn the sprite technically but not visually

  • @bloxking7407
    @bloxking7407 Місяць тому +7

    AWESOME!

  • @OmarEssawyGD
    @OmarEssawyGD 13 днів тому +2

    for your first time making an actual project on scratch, you did good

  • @fabiandoll1385
    @fabiandoll1385 Місяць тому +3

    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

  • @thestormcrafter
    @thestormcrafter 8 днів тому +2

    Ä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.

  • @Wooolllyyy
    @Wooolllyyy 20 днів тому +3

    You are now Griffpatch

  • @jeffdadaggoYT
    @jeffdadaggoYT 14 днів тому +1

    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

  • @flameofthephoenix8395
    @flameofthephoenix8395 21 день тому +1

    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.

  • @playd43
    @playd43 Місяць тому +3

    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.

    • @XenonNeko
      @XenonNeko  Місяць тому

      Definitely! Although I'd want the game to control a lot better before I felt right attaching scores to it.

    • @XenonNeko
      @XenonNeko  Місяць тому

      Since I was already there, I went ahead and added score and levels and speed increase (No leaderboard yet, though).

    • @playd43
      @playd43 Місяць тому +1

      @@XenonNeko nice :) this project is pretty cool btw

  • @just_mr_mikl
    @just_mr_mikl 12 днів тому +1

    7:54 what a coincidence, scratch already runs at 30 frames per second.

  • @WolfGubbelmans
    @WolfGubbelmans Місяць тому +7

    4:40 YOU HAVE A BLOCK THAT CANCELS VISSABLE ROTATION

    • @XenonNeko
      @XenonNeko  Місяць тому

      I found out too late

  • @-Deni-vu2ky
    @-Deni-vu2ky Місяць тому +1

    [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!

  • @Redfishvr124
    @Redfishvr124 Місяць тому

    You are so underrated! It looks very good :)

  • @ego-lay_atman-bay
    @ego-lay_atman-bay 10 днів тому +2

    7:51 oh, by the way, scratch runs at 30 fps (unless you use turbowarp).

  • @flameofthephoenix8395
    @flameofthephoenix8395 21 день тому +1

    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.

  • @PiGuy06
    @PiGuy06 25 днів тому +1

    I'm making Tetris in Scratch right now. I'm "play testing" it more than I'm working on it 😅

  • @username-ur6dq
    @username-ur6dq Місяць тому +2

    17:15 Here, he obviously means desmos

  • @merkymerc
    @merkymerc 6 днів тому +1

    latin nerd here, tetris is a 3rd-declension noun meaning the plural would be tetrēs!

  • @mohammedzeyton
    @mohammedzeyton 21 годину тому

    im recreating mario 64 in scratch lol, but it was nice watching this haha. good job

  • @flameofthephoenix8395
    @flameofthephoenix8395 21 день тому

    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.

  • @guigui0246
    @guigui0246 Місяць тому +1

    I really don't understand why they made the pen an extension in scratch 3 and not just a feature like in scratch 2

  • @strawsquash
    @strawsquash 2 дні тому +1

    This video is 10000x better cos of the crave gaming music

    • @strawsquash
      @strawsquash 2 дні тому +1

      Not to say it’s bad otherwise. It was a great video

  • @bucket-hb3td
    @bucket-hb3td Місяць тому +1

    i made a whole ping pong game in scratch when i was a 4th grader

  • @Z_E_B_O
    @Z_E_B_O 17 годин тому

    never heard the square piece being called o-piece lol.
    Anyway, really interesting, my idea for the shading would be to have the board, then the tetris fall down on the board and then have an additional third layer with only the shading, so when a tetris enters the board, the shading will always be on top.
    But I have never used scratch and you couldnt do cool animations so,...

  • @jackcomas
    @jackcomas Місяць тому +7

    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.

    • @haoyuzhang4626
      @haoyuzhang4626 Місяць тому

      Yes, he’s not that good

    • @XenonNeko
      @XenonNeko  Місяць тому

      Lol joke's on you I rehearted it (also thanks!)

  • @anthonycannet1305
    @anthonycannet1305 4 дні тому

    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.

  • @MSPaintOfficial
    @MSPaintOfficial Місяць тому +2

    it’s already hard enough to arrange a shape out of the blocks

  • @DogSkipsStone
    @DogSkipsStone 13 днів тому +1

    high contrast is the best mode (in my opinion)

  • @myithspa25
    @myithspa25 Місяць тому +2

    4:40 may I introduce you to rotation styles?

  • @ryanwoon3534
    @ryanwoon3534 Місяць тому +4

    Awww yeaahhh!!! New video!!!

  • @DDAWG24657
    @DDAWG24657 19 днів тому +1

    Him: *Sub Boards*
    Scratch: *Don't Rotate*

    • @mohammedzeyton
      @mohammedzeyton 21 годину тому

      nah, he used lists, while using a game loop and a simple stamp render. so this isnt as simple as you expect lmao

  • @slushyboy1212
    @slushyboy1212 13 днів тому +1

    1. scratch is 30fps 2. u dont need the wait in the forever. it will make it half speed

  • @user-ru4bb2cg2c
    @user-ru4bb2cg2c Місяць тому +1

    ya know you are actually better than me at scratch... nice job

  • @mateohunterwatts2271
    @mateohunterwatts2271 Місяць тому

    5:32 my brain had an idea with that heard, ''i piss''

  • @Hawinzi
    @Hawinzi 3 дні тому +1

    Quick question. Why did you not just make each piece its own sprite? I feel like that would end up being all around easier.

    • @XenonNeko
      @XenonNeko  3 дні тому +1

      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.

  • @alimicro812
    @alimicro812 Місяць тому

    3:13 the music transition here is crazy

  • @Warpedd_forestnew
    @Warpedd_forestnew 26 днів тому +1

    you forgot about the linux kernel in scratch

  • @-SnowyBS-
    @-SnowyBS- Місяць тому +2

    Here before this is your top vid 🎉

  • @debankanthegreat6096
    @debankanthegreat6096 Місяць тому +1

    Amazing!

  • @XTLmaker
    @XTLmaker 13 днів тому +1

    Scratch Tetris game crash when

  • @HardcoreAxol
    @HardcoreAxol Місяць тому +2

    6:02 you made diagonal Tetris

  • @hi_beemo1808
    @hi_beemo1808 Місяць тому

    you should consider implementing matrix in scratch when working with tiles on a set grid in makes things simpler

  • @Starock10
    @Starock10 Місяць тому +2

    I love Scratch!

  • @NescauCadeirante
    @NescauCadeirante Місяць тому +2

    Thank you for subtitles,i'am brazillian

  • @Joni.Sandy-DE
    @Joni.Sandy-DE Місяць тому +3

    Geometry dash players be like

  • @dudepudge2517
    @dudepudge2517 Місяць тому +1

    What about coding all of the piece spins? How would that work?

  • @Swagpion
    @Swagpion Місяць тому +1

    13:03 its not a fix, its a change. Because that is standard bag system behavior.

    • @XenonNeko
      @XenonNeko  Місяць тому

      Right. Should have clarified, It was just my personal preference

    • @XenonNeko
      @XenonNeko  Місяць тому

      I added a toggle for that behavior while implementing feedback from other people.

  • @Hypernova386
    @Hypernova386 Місяць тому +1

    As a man who has done this last year,
    I can confirm this man's pain

  • @RobloxFilmsAndAnimations
    @RobloxFilmsAndAnimations 13 днів тому

    idea: turn the blocks into scrath cat but its limbs being the little parts and the main bit/center being the face

  • @a6shot199
    @a6shot199 Місяць тому +1

    2:55 it does, in fact work like that 😭

    • @XenonNeko
      @XenonNeko  Місяць тому

      I must be missing something! All I could get the white sprite to look like was really pale versions of all the colors.

  • @ifeireiniogunduyile7316
    @ifeireiniogunduyile7316 25 днів тому +1

    YAAAAAAAAAAAY FINALLY SOMEONE WHO DOES SOMETHING I DO!

  • @RadioactiveBluePlatypus
    @RadioactiveBluePlatypus Місяць тому +1

    You know you can set the sprite to not visually rotate and only rotate in code right?

  • @happycolours8551
    @happycolours8551 Місяць тому +1

    Uh oh, Tetris will murder you now

    • @XenonNeko
      @XenonNeko  Місяць тому

      They're petty if they go after a Scratch project 🤣
      I suppose we'll have to wait and see

  • @235x
    @235x Місяць тому

    4:50 scratch has a setting that stops a sprite from Visually rotating.

  • @user-xh1qo5bn7s
    @user-xh1qo5bn7s Місяць тому +1

    damn you are crazy good at making tetris and playing tetris did you use any tutorials in this video?

    • @XenonNeko
      @XenonNeko  Місяць тому

      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.

    • @user-xh1qo5bn7s
      @user-xh1qo5bn7s Місяць тому

      damn you are really good@@XenonNeko

  • @NoteCubes
    @NoteCubes Місяць тому +1

    🤯 My mind is broken right now

  • @concernedcommenter8258
    @concernedcommenter8258 5 днів тому

    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.

  • @case.n
    @case.n Місяць тому +1

    Me over here still trying to use velocity in scratch:

  • @snezitko
    @snezitko 20 днів тому +2

    now that I think about it you didnt need to make a rotation system... you could have just made a list for example the L piece and then just going trough it so like the list would be like: (lets say that the grid is 3x3 )
    (rotation right) 1: 000111001
    (rotation down) 2: 010010110
    (rotation left) 3: 100111000
    (rotation up) 4: 011010010
    1 = there is a block
    0 = there is no block
    then you would just make it so that when you pressed left the place in the list would shift by -1, and if right the place in the list would shift by +1
    which would completly delete the issue of coding the rotation.🧇

  • @mistalod
    @mistalod 12 днів тому

    actually lemme try making tetris in scratch it seems fun

  • @LolNoUsernameL
    @LolNoUsernameL Місяць тому +1

    Why did you search days since 2000 block it’s pretty straightforward 😂

    • @XenonNeko
      @XenonNeko  Місяць тому +1

      I've never used Scratch before and I was paranoid wondering how it handled things like leap years 😂.
      Turns out the thing I wanted was the "timer" block, which I found shortly after that clip

  • @zhiandionisio503
    @zhiandionisio503 Місяць тому +1

    I thought it was griffpatch video lol😂

  • @ThatOneUnityGamedev
    @ThatOneUnityGamedev 27 днів тому

    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..."

  • @smarty265
    @smarty265 16 днів тому +1

    banger video

  • @user-mg9rw2de9z
    @user-mg9rw2de9z Місяць тому +1

    Dude you can change the rotation mode of the sprites !!!

  • @FungchiuDuong
    @FungchiuDuong Місяць тому +1

    Clean

  • @romanmcgolrick117
    @romanmcgolrick117 Місяць тому +1

    12:43 *vine boom*

  • @Holmen3055A
    @Holmen3055A Місяць тому +1

    Im making a massive game there

  • @kaiovalentino8716
    @kaiovalentino8716 Місяць тому +1

    Complicated way to make Tetris

  • @gamezboi_
    @gamezboi_ Місяць тому

    ive never heard someone describe tetromino with letters

  • @OrtyhueyGD24
    @OrtyhueyGD24 5 днів тому +1

    is anyone going to talk about 12:44

  • @epikbaconb9780
    @epikbaconb9780 Місяць тому +1

    WHAT the o piece doesn't rotate 😭

  • @Truthakin
    @Truthakin Місяць тому

    Blud learned faster than my dad left me💀💀

  • @MGPlayz-Official
    @MGPlayz-Official 29 днів тому +1

    Why tf does the time stamp say -17:42/17:42????

  • @magma_mania2416
    @magma_mania2416 Місяць тому +6

    The one piece

  • @PinStudiosOfficial
    @PinStudiosOfficial 10 днів тому

    dkm why but u sound like Ray William Jhonson if he was a south park character

  • @VDberri
    @VDberri 15 днів тому +1

    I made geometry dash in scratch as well

  • @PenguinPlayz_
    @PenguinPlayz_ 9 днів тому +1

    Its Perfect...

  • @flameofthephoenix8395
    @flameofthephoenix8395 21 день тому

    4:02 Ah, I can see why you might have thought that...

  • @palmossi
    @palmossi Місяць тому +1

    0:55 spu7nix:

  • @elwan_
    @elwan_ Місяць тому +1

    Why did you make everything so complicated??

  • @EnderArlo
    @EnderArlo Місяць тому +1

    I also tried to make Tetris I scratch

  • @niffty_5712
    @niffty_5712 7 днів тому

    2:11 Tetri
    Cactus = Cacti
    Tetris = Tetri

  • @XWITHANAK47
    @XWITHANAK47 7 днів тому

    He made a game with one sprite