Discuss Scratch
- Discussion Forums
- » Suggestions
- » Better Custom Blocks
- walkcycle
- Scratcher
500+ posts
Better Custom Blocks
It's an operator. It runs without screen refresh. You know, the “Run without screen refresh” option is pretty useful. You're adopting AAA game developer mentality; trying to remove a perfectly fine feature to “justify” adding another.
- stickfiregames
- Scratcher
1000+ posts
Better Custom Blocks
Not inherently. It's possible someone might want to make a reporter that takes time to run. Maybe an (fps) reporter would need no-refresh, although I'm not completely sure.It's an operator. It runs without screen refresh. You know, the “Run without screen refresh” option is pretty useful. You're adopting AAA game developer mentality; trying to remove a perfectly fine feature to “justify” adding another.
- Jonathan50
- Scratcher
1000+ posts
Better Custom Blocks
That would really make custom reporters less useful, there are reasons to make blocking reporters, like
Having stage custom blocks global is definitely what should happen though.
define ask (question) & report answeror if you have an algorithm that runs slowly but you don't want to make the whole project freeze.
ask (question) and wait
report (answer) :: control cap
Having stage custom blocks global is definitely what should happen though.
Last edited by Jonathan50 (May 27, 2017 21:44:46)
Not yet a Knight of the Mu Calculus.
- zaib_tanvir2008
- Scratcher
38 posts
Better Custom Blocks
You know, the “Run without screen refresh” option is pretty useful. You're adopting AAA game developer mentality; trying to remove a perfectly fine feature to “justify” adding another.
Plz stop sending the same picture
- walkcycle
- Scratcher
500+ posts
Better Custom Blocks
In Scratch, though. Not inherently. It's possible someone might want to make a reporter that takes time to run. Maybe an (fps) reporter would need no-refresh, although I'm not completely sure.
Scratch reporters run without screen refresh.
New stack blocks would still have screen refresh, for slower operation. That would really make custom reporters less useful, there are reasons to make blocking reporters, (…) or if you have an algorithm that runs slowly but you don't want to make the whole project freeze.
Agree. Having stage custom blocks global is definitely what should happen though.
- stickfiregames
- Scratcher
1000+ posts
Better Custom Blocks
As I said, this is not an inherent feature that reporters must have, it's just that all the built-in ones have it, in the same way that most of the built-in stack blocks do. Jonathan50's example of reporters waiting for input is a good example of where it could be used, I could understand if you wanted to make no-refresh the default but there's no reason to force it.In Scratch, though. Not inherently. It's possible someone might want to make a reporter that takes time to run. Maybe an (fps) reporter would need no-refresh, although I'm not completely sure.
Scratch reporters run without screen refresh.
Last edited by stickfiregames (May 29, 2017 15:53:48)
- walkcycle
- Scratcher
500+ posts
Better Custom Blocks
must have, it's just that all the built-in ones have it, in the same way that most of the built-in stack blocks do. Jonathan50's example of reporters waiting for input is a good example of where it could be used, I could understand if you wanted to make no-refresh the default but there's no reason to force it.As I said, this is not an inherent feature that reporters
Since reporters in Scratch run one way, having a feature to have them run another way is counterintuitive. And not necessary: stack blocks fill the void for waiting and slower tasks.
- TheMonsterOfTheDeep
- Scratcher
1000+ posts
Better Custom Blocks
I believe that the exact opposite is true. I think that, a beginner, when playing around with custom blocks, might attempt something like this:must have, it's just that all the built-in ones have it, in the same way that most of the built-in stack blocks do. Jonathan50's example of reporters waiting for input is a good example of where it could be used, I could understand if you wanted to make no-refresh the default but there's no reason to force it.As I said, this is not an inherent feature that reporters
Since reporters in Scratch run one way, having a feature to have them run another way is counterintuitive. And not necessary: stack blocks fill the void for waiting and slower tasks.
define (block :: custom)And then be thoroughly confused that Scratch would choose to disallow this for some arbitrary reason.
wait (1) secs
report [hello] :: custom
when gf clicked
say (block :: custom)
my latest extension: 2d vector math
- walkcycle
- Scratcher
500+ posts
Better Custom Blocks
But it wouldn't. You can put the wait block in and slow it down if want. I believe that the exact opposite is true. I think that, a beginner, when playing around with custom blocks, might attempt something like this:define (block :: custom)And then be thoroughly confused that Scratch would choose to disallow this for some arbitrary reason.
wait (1) secs
report [hello] :: custom
when gf clicked
say (block :: custom)
when green flag clicked
wait (1) secs
say [hello]
Better to just go with stack blocks for that I would think.
Still, a Scratch programmer should not have to anticipate a 'say [ ] block' is going to wait unless it is a 'say [ ] for ( ) secs' block. So there would be a reason to exclude ‘wait’ blocks from the define script of a reporter or operator block.
Last edited by walkcycle (May 30, 2017 04:40:52)
- HoofEMP
- Scratcher
100+ posts
Better Custom Blocks
The say [ ] for ( ) secs block doesn't update. It's basically this:But it wouldn't. You can put the wait block in and slow it down if want. snipwhen green flag clicked
wait (1) secs
say [hello]
Better to just go with stack blocks for that I would think.
Still, a Scratch programmer should not have to anticipate a 'say [ ] block' is going to wait unless it is a 'say [ ] for ( ) secs' block. So there would be a reason to exclude ‘wait’ blocks from the define script of a reporter or operator block.
define say [x] for (y) secs
say (x)
wait (y) secs
say []
(also, don't forget TheMonsterOfTheDeep was referring to beginners to custom blocks; people who presumably had no prior experience or knowledge. Making things accessible and simple, so that a beginner could understand such concepts, is of high importance to the Scratch Team.)
Last edited by HoofEMP (May 30, 2017 06:46:13)
- walkcycle
- Scratcher
500+ posts
Better Custom Blocks
Yes, that's why having a 'say [ ]' block not wait because it has a reporter in its slot makes sense; reporters in Scratch don't do that.
- stickfiregames
- Scratcher
1000+ posts
Better Custom Blocks
Having a feature to make them run without refresh is not counterintuitive. They would run whichever way the creator tells them to run by ticking or not ticking the “run without screen refresh” block, which is about as intuitive as you can get.must have, it's just that all the built-in ones have it, in the same way that most of the built-in stack blocks do. Jonathan50's example of reporters waiting for input is a good example of where it could be used, I could understand if you wanted to make no-refresh the default but there's no reason to force it.As I said, this is not an inherent feature that reporters
Since reporters in Scratch run one way, having a feature to have them run another way is counterintuitive. And not necessary: stack blocks fill the void for waiting and slower tasks.
Also, your argument of “reporters shouldn't wait because reporters don't wait” is circular and is getting you nowhere.
- walkcycle
- Scratcher
500+ posts
Better Custom Blocks
This is based on the way reporters run in Scratch. A feature to have them run another way is counter to the way Scratch does it.
The matter of waiting also originates with how Scratch does things.
The general gist is to add things in such a way that a Scratch programmer's knowledge of how Scratch works remains applicable to the new thing.
The matter of waiting also originates with how Scratch does things.
The general gist is to add things in such a way that a Scratch programmer's knowledge of how Scratch works remains applicable to the new thing.
Last edited by walkcycle (May 30, 2017 15:40:00)
- stickfiregames
- Scratcher
1000+ posts
Better Custom Blocks
You keep saying “it's how Scratch does things” but the same argument could be used to reject changing anything.
All built-in blocks either wait or they don't, and the reason the built-in reporters don't wait is not because they are reporters but because the ST has designed each of them not to wait.
Custom blocks have an option to wait or not wait depending on whether the creator wants them to. Extending that idea to custom reporters would be perfectly intuitive, and a would mean a Scratch programmer's knowledge of how custom blocks work remains applicable to the new thing.
All built-in blocks either wait or they don't, and the reason the built-in reporters don't wait is not because they are reporters but because the ST has designed each of them not to wait.
Custom blocks have an option to wait or not wait depending on whether the creator wants them to. Extending that idea to custom reporters would be perfectly intuitive, and a would mean a Scratch programmer's knowledge of how custom blocks work remains applicable to the new thing.
Last edited by stickfiregames (May 31, 2017 00:16:19)
- gdpr533f604550b2f20900645890
- Scratcher
1000+ posts
Better Custom Blocks
I beg to differ. Allowing custom reporters to wait just like custom stack blocks is perfectly intuitive because a custom reporter and a custom stack block are both functions; a custom stack block merely has a return type of void. Waiting is merely an observable side effect of the function. Other imperative programming languages allow all their functions to pause; for example, JavaScript's prompt function is similar to Jonathan50's example. This is based on the way reporters run in Scratch. A feature to have them run another way is counter to the way Scratch does it.
The matter of waiting also originates with how Scratch does things.
The general gist is to add things in such a way that a Scratch programmer's knowledge of how Scratch works remains applicable to the new thing.
- Jonathan50
- Scratcher
1000+ posts
Better Custom Blocks
Can you think of an example custom reporter that could be useful? Well reporters in Scratch can't do that, so custom reporters shouldn't be able to do that either.
Not yet a Knight of the Mu Calculus.
- walkcycle
- Scratcher
500+ posts
Better Custom Blocks
You keep saying “it's how Scratch does things” but the same argument could be used to reject changing anything.
Then use the argument to reject fundamentally changing the way Scratch does things; to not change Scratch into a JavaScript, for example.
All built-in blocks either wait or they don't, and the reason the built-in reporters don't wait is not because they are reporters but because the ST has designed each of them not to wait.
And, thus, that is a fundamental part of the nature of reporters in Scratch: Scratch Team's design choice for how reporters are. It is the reliable behavior of the building blocks that Scratch programmers depend on. “It's how Scratch does things.”
Custom blocks have an option to wait or not wait depending on whether the creator wants them to. Extending that idea to custom reporters would be perfectly intuitive, and a would mean a Scratch programmer's knowledge of how custom blocks work remains applicable to the new thing.
True. With two intuitions as to the nature of Scratch, which is more important? Should reporters be given stack-block like features to keep the custom block interface identical? Or should custom reporter blocks in Scratch be like reporter blocks in Scratch?
A reporter block is a block that contains a value. These blocks can contain anything, from numbers to strings. Boolean Blocks are a special form of reporter blocks that report either “true” or “false”. To quickly view the value of a reporter, simply click it in the editor and a bubble will display the value.
Outside of this thread, are there any suggestions for a new reporter in Scratch that would need the checkbox?
- stickfiregames
- Scratcher
1000+ posts
Better Custom Blocks
No it's not. The fact that they are reporters has nothing to do with whether they refresh or not.All built-in blocks either wait or they don't, and the reason the built-in reporters don't wait is not because they are reporters but because the ST has designed each of them not to wait.And, thus, that is a fundamental part of the nature of reporters in Scratch: Scratch Team's design choice for how reporters are. It is the reliable behavior of the building blocks that Scratch programmers depend on. “It's how Scratch does things.”
Since the whole point of custom blocks is to be customisable, they should be given the options that other types of custom blocks have. They will still be like reporter blocks, because the defining feature of a reporter block is that it returns a value.Custom blocks have an option to wait or not wait depending on whether the creator wants them to. Extending that idea to custom reporters would be perfectly intuitive, and a would mean a Scratch programmer's knowledge of how custom blocks work remains applicable to the new thing.True. With two intuitions as to the nature of Scratch, which is more important? Should reporters be given stack-block like features to keep the custom block interface identical? Or should custom reporter blocks in Scratch be like reporter blocks in Scratch?
Outside of this thread, are there any suggestions for a new reporter in Scratch that would need the checkbox?Not that I know of, but the ones suggested within this thread are perfectly valid uses.