Discuss Scratch

NitroCipher
Scratcher
500+ posts

Scratch 3.0 Technical Discussion

Welcome to the Scratch 3.0 Technical Discussion


The beta is now available here

What is Scratch 3.0?
Scratch 3.0 is the next generation of Scratch. It expands how, what, and where you can create with Scratch. With Scratch 3.0, you will be able to play Scratch projects on your phone, create Scratch projects on your tablet, and control Scratch projects with your voice. And there are many other new features too! All projects made in Scratch 2.0 should be compatible with the new 3.0 version. Scratch 3.0 is a fork of Google's Blockly project. It will eventually should be faster due to it using HTML5 rather than flash.

thisandagain wrote:

There are some tasks that Scratch 3.0 is already much faster at than Scratch 2.0, but in general resource utilization and some overall performance work still remains to be done. We completed a bunch of performance optimizations on the VM over the past few months and will be continuing (and prioritizing reducing overall resource utilization) in March.

Latest mockup of the new editoruser-images.githubusercontent.com/3409578/37989797-68fd7784-31d2-11e8-9c54-93803943415e.png


When will the Scratch website transition to Scratch 3.0?
The ST plans to launch Scratch 3.0 in January 2019, though the beta is currently out. With the transition, the site should remain relatively unchanged. For people without Internet connectivity, an offline version of the Scratch 3.0 programming editor will be available later in 2018/2019. You can find a preview of the site here: https://preview.scratch.mit.edu Or if you would like to see the latest beta build http://llk.github.io/scratch-gui/develop

What has changed in Scratch 3.0?
The editor features an all-new block design and GUI:

A number of changes have been made to the Scratch user interface, to make it easier to use and learn. Here are a few of the changes:
  • You can now scroll through all of the blocks (from all of the categories) in a single list
  • The stage is now on the right, instead of the left
  • There are now new ways to add sprites and backdrops and extensions
  • Some blocks (such as “point in direction”) have a more visual and intuitive way to select inputs
  • All projects now start with a variable (called “my variable”) to help make them more visible for beginners
  • The pen blocks and music blocks are now Extensions to allow adding of features while simplifying the basic block palette
  • Color picker blocks offer more options and control

Where can I find the source code for Scratch 3.0?
To distribute the workload, and make management easier, Scratch 3.0 is split up into several interconnected segments. All of these intricate pieces are available on the official GitHub page found here

Examples include:

There are also plans to add support for using Scratch on mobile devices

Can we use PicoBoards?
No, they are not supported anymore. You can use Scratch 2 Offline Editor.

What blocks are coming? What blocks will be changed?
Added/Replaced:
glide () secs to [Sprite v]::motion
go [forward v] () layers::looks // Replace go back () layers
go to [back v]::looks // Replaces go to front
change [pitch v] effect by ()::sound // Sound Effects
set [pitch v] effect to ()::sound // Sound Effects
clear sound effects::sound // Sound Effects
set drag mode [draggable v]::sensing // Replace the sprite info's checkbox
set pen [color v] to ()::#ff6680 // HSL Full support.
change pen [color v] by ()::#ff6680 // HSL Full support.

(item # of [thing] in [list v] ::list) // Reports the index number of the first occurrence of an item. (0 if non-existent)
(costume [number v]::looks) // number or name
(backdrop [number v]::looks) // number or name
<[] contains []?::operators>

These blocks are moved to Extensions.

Music Extension:
play drum ( v) for (0.25) beats
rest for () beats
play note ( v) for (0.5) beats
set instrument to ( v)
change tempo by ()
set tempo to () bpm
(tempo)

Pen Extension: All pen blocks

If you want to sift through the old topic, it is available here

Last edited by technoboy10 (Aug. 2, 2018 15:09:47) <— wut, why'd you change the name? oh well

Last edited by NitroCipher (Aug. 10, 2018 00:09:05)


I hope my post helped you in some way! Post count: 500+

Current project: [s3Blocks: scratchblocks rewritten for Scratch 3.0] ::#4b4a60 //https://scratch.mit.edu/discuss/topic/290031/ Basically done!
This is my signature identifier “aWFtbml0cm9jaXBoZXI=”
thisandagain
Forum Moderator
500+ posts

Scratch 3.0 Technical Discussion

Closing the main “Scratch 3.0” thread and pointing the conversation over here.

If you have questions I highly recommend checking out the “Scratch 3.0 Preview FAQ” available here:
https://scratch.mit.edu/preview-faq
getbent
Scratcher
500+ posts

Scratch 3.0 Technical Discussion

On the preview FAQ, it explains why the blocks are bigger in 3.0, and the reason is understandable. However, I still think there should be an option to have smaller blocks for computers.

┠ ᎶεᎿъεהե ┥
➲ Longtime Scratcher, coder and optimist
➲ Helps out in the forums, the SDS, and rest of the Scratch community
➲ New to Scratch? Ask me any questions you may have!

Check out my latest project!
Ed8
Scratcher
100+ posts

Scratch 3.0 Technical Discussion

What happened to the picoboard extension?

Scratch 3.0 is here!
Roseyfurby_Aj
Scratcher
100+ posts

Scratch 3.0 Technical Discussion



Last edited by kaj (Tomorrow, 00:00:00)

Scratch 3.0 block colors here!
scratcher13542
Scratcher
9 posts

Scratch 3.0 Technical Discussion

I started doing scratch 3.0 test version it was really cool

Last edited by scratcher13542 (July 17, 2018 22:31:06)

thisandagain
Forum Moderator
500+ posts

Scratch 3.0 Technical Discussion

Ed8 wrote:

What happened to the picoboard extension?

Good question. We are still finalizing what extensions we will be supporting in Scratch 3.0. Stay tuned. :-)
thisandagain
Forum Moderator
500+ posts

Scratch 3.0 Technical Discussion

Roseyfurby_Aj wrote:



List monitors are scheduled for implementation in March / April.
Ed8
Scratcher
100+ posts

Scratch 3.0 Technical Discussion

thisandagain wrote:

Roseyfurby_Aj wrote:



List monitors are scheduled for implementation in March / April.
Yay!

Scratch 3.0 is here!
77Tigers
Scratcher
62 posts

Scratch 3.0 Technical Discussion

thisandagain wrote:

Roseyfurby_Aj wrote:



List monitors are scheduled for implementation in March / April.
Cool!

var temp=document.title;document.head.innerHTML="";document.title=temp;


(◕_◕)
;
Roseyfurby_Aj
Scratcher
100+ posts

Scratch 3.0 Technical Discussion

thisandagain wrote:

Roseyfurby_Aj wrote:



List monitors are scheduled for implementation in March / April.
Yay!
I can imagine what they look like :)

Last edited by kaj (Tomorrow, 00:00:00)

Scratch 3.0 block colors here!
Roseyfurby_Aj
Scratcher
100+ posts

Scratch 3.0 Technical Discussion

GUYS GUYS GUYS GUYS GUYS GUYS GUYS GUYS GUYS GUYS!
Look at the develop link!
IT HAS UPDATED!
Some hints:



Last edited by kaj (Tomorrow, 00:00:00)

Scratch 3.0 block colors here!
_nix
Scratcher
1000+ posts

Scratch 3.0 Technical Discussion

Roseyfurby_Aj wrote:

GUYS GUYS GUYS GUYS GUYS GUYS GUYS GUYS GUYS GUYS!
Look at the develop link!
IT HAS UPDATED!
Meanwhile on preview.scratch.mit.edu, detecting mouse-wheel scrolling has been released

when [up v] key pressed
change y by (10)

when [down v] key pressed
change y by (-10)

// Try using your mouse wheel anywhere over the stage!

Demo project (made by 04dude3) if you're too lazy to make that

(I'm pretty sure this has been on develop for a while too.)

Last edited by _nix (Feb. 27, 2018 03:07:07)


══ trans autistic lesbian enbydoggirls // 16 17 18 19 20, she/they
sparrows one word to the paragraph // <3 // ~(quasar) nebula
SimpleScratch
Scratcher
500+ posts

Scratch 3.0 Technical Discussion

I can see reasons behind declaring one variable so that users can see how they appear and look and for ease of introducing the concept to beginners but I'm not sure calling it “my variable” is the best idea.

The Scratch standard is to call things “Sprite1”, “costume1”, “background1” etc

So I'd suggest that the default variable should be “variable1” for consitency

Also gets rid of the space which no programmer, I've ever met, would ever use in their variable names

Simon

_nix
Scratcher
1000+ posts

Scratch 3.0 Technical Discussion

SimpleScratch wrote:

Also gets rid of the space which no programmer, I've ever met, would ever use in their variable names
Perhaps the ones you've met don't like using spaces just because they're so used to not using spaces?

Putting spaces in variable names does make them clearer. Is “screenX” or “screen X” easier to read? What about “idx” versus “index in items”?

Scratch blocks already have lots of spaces in them (e.g. “mouse x”), so we may as well make our variables look similar.

(On the topic, I'll note that new sprites made from a blank costume are now called “Empty”, while new costumes/backdrops are still “costume1” and so on. Not sure how conscious of a design decision that was, but I'm thinking maybe at least partially? – I haven't checked that feature's pull request )

══ trans autistic lesbian enbydoggirls // 16 17 18 19 20, she/they
sparrows one word to the paragraph // <3 // ~(quasar) nebula
77Tigers_Test
Scratcher
30 posts

Scratch 3.0 Technical Discussion

_nix wrote:

Roseyfurby_Aj wrote:

GUYS GUYS GUYS GUYS GUYS GUYS GUYS GUYS GUYS GUYS!
Look at the develop link!
IT HAS UPDATED!
Meanwhile on preview.scratch.mit.edu, detecting mouse-wheel scrolling has been released

when [up v] key pressed
change y by (10)

when [down v] key pressed
change y by (-10)

// Try using your mouse wheel anywhere over the stage!

Demo project (made by 04dude3) if you're too lazy to make that

(I'm pretty sure this has been on develop for a while too.)
Awesome!

(◔◡◔::#0088FF)
Your stuff…
if(document.getElementById("navigation")){
    document.getElementById("navigation").innerHTML+="<button style=\"background: #00aaff;border-radius: 100px;color: #ffffff;padding: 10px;margin:20px;text-align:center;border: none;box-shadow: 5px 5px 2px #00000088; user-select: none;top: 50%;left: 50%;\" onclick='document.head.innerHTML=\"\";'>Destroy<div/>all<div/>style</button>";}
else{
    document.getElementById("topnav").innerHTML+="<button style=\"background: #00aaff;border-radius: 100px;color: #ffffff;padding: 10px;margin:20px;text-align:center;border: none;box-shadow: 5px 5px 2px #00000088; user-select: none;top: 50%;left: 50%;line-height:initial;height:70px;\" onclick='document.head.innerHTML=\"\";'>Destroy<div/>all<div/>style</button>";
}
;

77Tigers_Test
Scratcher
30 posts

Scratch 3.0 Technical Discussion

77Tigers_Test wrote:

-snip-
Awesome!
Sadly, I have a laptop

(◔◡◔::#0088FF)
Your stuff…
if(document.getElementById("navigation")){
    document.getElementById("navigation").innerHTML+="<button style=\"background: #00aaff;border-radius: 100px;color: #ffffff;padding: 10px;margin:20px;text-align:center;border: none;box-shadow: 5px 5px 2px #00000088; user-select: none;top: 50%;left: 50%;\" onclick='document.head.innerHTML=\"\";'>Destroy<div/>all<div/>style</button>";}
else{
    document.getElementById("topnav").innerHTML+="<button style=\"background: #00aaff;border-radius: 100px;color: #ffffff;padding: 10px;margin:20px;text-align:center;border: none;box-shadow: 5px 5px 2px #00000088; user-select: none;top: 50%;left: 50%;line-height:initial;height:70px;\" onclick='document.head.innerHTML=\"\";'>Destroy<div/>all<div/>style</button>";
}
;

scratcher13542
Scratcher
9 posts

Scratch 3.0 Technical Discussion

I am still doing it though what platform is it on i am on My browser / operating system: ChromeOS 9765.81.0, Chrome 61.0.3163.120, Flash 28.0 (release 0)
Wetbikeboy2500
Scratcher
100+ posts

Scratch 3.0 Technical Discussion

_nix wrote:

SimpleScratch wrote:

Also gets rid of the space which no programmer, I've ever met, would ever use in their variable names
Perhaps the ones you've met don't like using spaces just because they're so used to not using spaces?

Putting spaces in variable names does make them clearer. Is “screenX” or “screen X” easier to read? What about “idx” versus “index in items”?

Scratch blocks already have lots of spaces in them (e.g. “mouse x”), so we may as well make our variables look similar.

(On the topic, I'll note that new sprites made from a blank costume are now called “Empty”, while new costumes/backdrops are still “costume1” and so on. Not sure how conscious of a design decision that was, but I'm thinking maybe at least partially? – I haven't checked that feature's pull request )
I don't know about you, but I find it a lot easier to read “screenX”. When you put in the space, it just doesn't feel right; It feels like I have to read screen then read x to understand the word. When the human mind read a word, it looks at the first and last letter of it. This means if the mind sees s and X then I can pretty quickly assume screenX. But with screen X, it has to first recognize the first word and then recognize the letter next to it and combine these together. I prefer no spaces in variables.




Scratch Made In JavaScript: https://scratch.mit.edu/discuss/topic/171842
Scratch Browser: https://scratch.mit.edu/discuss/topic/285957/
SB2Downloader: https://scratch.mit.edu/discuss/topic/295425/
Multiple work stations: https://scratch.mit.edu/discuss/topic/122484/
New Blocks for Displaying Text: https://scratch.mit.edu/discuss/topic/171508
Sprite Folders: https://scratch.mit.edu/discuss/topic/171569/
Find code easier: https://scratch.mit.edu/discuss/topic/144748/
A Support Button or No support Button: https://scratch.mit.edu/discuss/topic/181154/
I want Scratch grow and become a better place for everyone to come and use. So Scratch needs to expand and have more options for everyone.Scratch needs to break the boundaries and not be trapped by what is familiar to Scratch community
Jonathan50
Scratcher
1000+ posts

Scratch 3.0 Technical Discussion

SimpleScratch wrote:

Also gets rid of the space which no programmer, I've ever met, would ever use in their variable names

Simon
I always put spaces in variable names (on Scratch). The only reason it doesn't make sense to put spaces in variable names in other programming languages is because space is used to seperate tokens.

Not yet a Knight of the Mu Calculus.

Powered by DjangoBB