the biggest issues aren't from individual items in the list, but the combinations. you can tell the original sprite to hide, but it still exists, and like i said, still responds to all the same hat blocks.
let's create a generic space shooter. enemies come in from the top and you shoot them. many of the same enemy can be on screen. i figure this is simple enough?
there are a few options:
- make multiple enemy sprites that behave the same. you need to always manage this duplicated code
- use the parent sprite and clones. now you have to have a system where you can delete clones if there's too many, but still reuse the parent sprite. all the code needs to work with both. also has the same issue as using just clones
- use just clones. the parent sprite still responds to broadcasts and now gives you points when you destroy everything on screen with a bomb. you can check that it's a clone under the hat block, but did you remember to do it the first time and are you going to figure out the cause when all you know is that you get some mystery points?
if you add more enemy types they also need to behave mostly the same with some tweaks.
- if they're different sprites, you need to edit all of them to keep them in sync. no, custom blocks don't help, they're annoying to edit and you still need to place all the hat blocks
- if you use just clones now your mystery bugs are even harder to figure out since you have multiple parent sprites that can interact.
remember that scratch doesn't let you share behaviour between sprites at all. if you want 3 sprites to do anything in common, you need to have that code 3 times, or shove it all into one sprite.
snap only lets you share behaviour between sprites with custom blocks or ask/tell. if you want to add a bunch of broadcasts, you need to add a lot of broadcasts and hope you didn't make a mistake anywhere.
do beginners actually understand custom blocks or ask/tell? i remember at some point in grade school seeing someone struggling with scratch, they kept making a custom block named "draw pentagon" and couldn't figure out why it didn't work, even after i explained multiple times that you have to put blocks to choose what it does. the snap block ui is much more complicated and designed terribly.
imagine it's your first time making a block. it's probably the first thing you're doing in the snap editor, because that's the whole tagline for snap.
click to expand
the default is motion. yes, you probably know that's because i clicked the button in the motion category, but if you go to snap to create blocks like the tagline says, it makes sense to click the first visible button for it. that button is also very hard to spot, it doesn't look all that different from the blocks.
so what's actually the choice here? this looks like i have to choose how my block will behave. say i'm trying to make a block to make a sprite explode. i need an explosion sound, but also it needs to look like an explosion, and an explosion is movement. i don't think most people that use scratch or snap fully know what an operator is, they just think of it as the math and text section, because that's exactly what is. if it were really operators, it would include ITEM OF LIST. you can't create custom categories here either, even though this is the exact moment you would want one. most people probably just pick a category based on color.
not sure you would even see the text box. it has no label and just looks like a separating line. if you do see it, you can't know what it does because it doesn't show the block getting named anywhere.
command/reporter/predicate don't really look like buttons, and the words make no sense. as a bonus, all the unselected ones look greyed out (as if they can't be chosen) and if you pick the other category, the selected one looks greyed out too. someone has probably tried to right click rename it like a variable, someone else has probably gotten confused when the name they typed into the text box didn't appear. someone probably thought the block was called command and ended up asking a teacher how to change it at this step.
"for all sprites" could sound like when the block runs, it affects all sprites.
i'm clicking ok and it's not doing anything. i genuinely forgot to use the text box to give it a name.
method editor? is the word "method" even used anywhere else? generally methods mean functions that operate on a specific class. why isn't this just called a block editor?
the default size for this window is way too small and if you don't know that 3 diagonal lines means a drag handle you'll probably miss it. you can't drag the sides to resize it.
the extra fat hat block with the block inside it doesn't even really look like a hat block. it also isn't the actual script editing pane that sprites use, and it's the same background as the category selector from before, so you might not even realize that you're supposed to bring blocks in. it looks way too small to be a block editor.
why are you forced to create a name beforehand when you have to edit it after anyways to add slots? (no, %slot doesn't count. nobody knows that and even if you do know it you can't choose the slot type with it.)
"input name" looks like you can only choose the name of an input. the right arrow doesn't look like a dropdown. why is it even a dropdown? this window could just show all the slots, and have title text as one of the options. "input name" also sounds like the label next to an input, and not the upvar you get from the block definition.
i can barely see the upvar ring. hovering the input doesn't do anything, it doesn't look possible to change. it doesn't look possible to change the category.
after the menu is closed, it doesn't look possible to edit the block or delete it. i'm not sure it's possible at all on a tablet where you can't right click.
what were we talking about again?
you say sprites are simple, but they cause issues for even very simple projects. what actually is the problem with puppets? if you think creating a puppet is too difficult for beginners, you missed the part about global variable puppets. you can still have the same sprite editing pane and permanent sprites of scratch, the difference is that when you want to do something with a permanent puppet, you drag it into the code editor and you now have it as a reporter block to put wherever. no, this isn't hidden behavior, the block is visible in the sprite pane. if puppets are overly difficult, they just need to be designed harder. :~)
or designed easier. that would probably be a lot better.