I'm a long time advocate of Scratch and love the fact it makes programming so accessible to children. In the early days of computing you would turn on your computer and be able to program in BASIC straight away. There were no extra packages needed, no hoops to jump through - it was just there. After the popularity of PCs took off I feel this went by the wayside. To program you would have to boot into windows and (purchase and) install an IDE. It just made programming harder to get into. With the advent of Scratch you can simply fire it up in a browser and jump straight in.
As a programmer by profession and a Code Club teacher by choice, I wanted to test out the boundaries of Scratch. So many children (and teachers) think it's a very basic programming environment with very limited application. I have found this to be far from the case and have created dozens of advanced projects to demonstrate as much. From replicas of arcade games (Galaga, Scramble, Mr Do and many more) through to ports of PC projects (Beneath a Steel Sky, The Manhole, Zork and more) through to a complete BBC Micro emulator that plays most original disk images. There's some delicious irony to having created an emulator of the computer I learned to program with in a modern language that children now learn to program in.
I'm not suggesting that Scratch should be taught to this level but I think it's interesting and useful to know just how flexible and powerful it can be.
I discussed the exit strategy from Scratch with Scratch Team members at the Scratch Conference back in 2019. One suggestion they put forward was Unity due to the fact it's not dropping children directly into a text-only scenario which is the case with most programming languages. I found this to make a lot of sense but also recognised that putting a child in front of an empty Unity screen can be a little daunting. Because of this I started creating a tool to bridge the gap - to give children something other than the blank canvas to start from and to ease their journey into Unity.
The tool simply adds a "Scratch" option to the main Unity menu. Using this it allows you to enter a Scratch project ID and then imports the project directly from the Scratch website and into Unity. The idea behind this is that intermediate to advanced Scratch users can pull their own favourite project that they have made directly into Unity. The assets (graphics and sound effects) are imported and the actual code is converted to C#. Within minutes anyone can play their own Scratch project from within Unity. They can see the C# code equivalent of their Scratch project. They can see the Unity components in action, the Unity scene, who the IDE works. They can even breakpoint their code and single step through it. If they wish they have the ability to export their Scratch projects as apps for Windows, iPhones, Android devices or even XBox or other consoles.
Right now the tool is in pre-beta but I'm hoping to make it available for testing within a matter of months. An early demonstration of the tool in action can be seen at https://www.youtube.com/watch?v=nuUF9BcJT8g and I'm happy to get feedback and/or discuss the idea.
I mentioned this already in an earlier post but I've been working towards addressing this by building a tool that bridges the gap between Scratch and Unity. Talking with Scratch Team members in the past, Unity has been cited as a good exit strategy. Unlike many other languages you aren't being dropped into a text-only environment. I think the main downside is the initial presentation of Unity can be a little daunting.
The tool I'm working on adds a new entry to the main Unity menu bar - "Scratch". Clicking on this allows you to enter the project ID of a Scratch project. Once done, the tool pulls the assets (graphics, sounds, etc) directly from the Scratch website as well as pulling the code and converting it to native C#. The idea behind this is that a student who is intermediate to high level at Scratch can import their favourite Scratch project over to Unity. They can look at the C# code to see the comparison, inspect and modify any of the assets, see the Unity components added to each Unity Game Object, etc. Basically it puts them in a position where they have a project that they have written in Scratch that they can no play in Unity. They can breakpoint the code and single step through it. Essentially it is designed to take away much of the initial impact of having to start from an empty canvas in Unity.
This is currently a WIP but I'm aiming to have a beta version ready within months. I made an early pre-beta video a while back to demonstrate it in action. You can view the video at https://youtu.be/nuUF9BcJT8g
As for reaching the limits of Scratch, that depends on what you think the limits are. It's amazingly versatile and surprisingly powerful. I teach at Code Clubs and am constantly encountering children (and even teachers) that believe Scratch is good for making a cat walk across the screen but not so much above and beyond this. To counter this I made my own projects to demonstrate what can be achieved (though not necessarily what "should" be achieved). These vary from accurate reproductions of arcade games (Mr Do, Scramble, Galaga, etc) through to ports of classics (z-code adventures including Zork, Hitchhiker's Guide, etc through to Beneath the Steel Sky) and even a fully working BBC Micro emulator that plays most original Disk Images. You can view these projects at https://www.rokcoder.co.uk - you really can create very impressive projects using native Scratch
I've been working towards addressing this by building a tool that bridges the gap between Scratch and Unity. Talking with Scratch Team members in the past, Unity has been cited as a good exit strategy. Unlike many other languages you aren't being dropped into a text-only environment. I think the main downside is the initial presentation of Unity can be a little daunting.
The tool I'm working on adds a new entry to the main Unity menu bar - "Scratch". Clicking on this allows you to enter the project ID of a Scratch project. Once done, the tool pulls the assets (graphics, sounds, etc) directly from the Scratch website as well as pulling the code and converting it to native C#. The idea behind this is that a student who is intermediate to high level at Scratch can import their favourite Scratch project over to Unity. They can look at the C# code to see the comparison, inspect and modify any of the assets, see the Unity components added to each Unity Game Object, etc. Basically it puts them in a position where they have a project that they have written in Scratch that they can no play in Unity. They can breakpoint the code and single step through it. Essentially it is designed to take away much of the initial impact of having to start from an empty canvas in Unity.
This is currently a WIP but I'm aiming to have a beta version ready within months. I made an early pre-beta video a while back to demonstrate it in action. You can view the video at https://youtu.be/nuUF9BcJT8g
Someone suggested that this qualified for Hacker News so I thought I'd send it this way.
Initially wanting to show kids the old BBC Micro game called Thrust in their language of choice (Scratch) I went on a rather insane journey that resulted in putting together a full BBC Micro emulator (that even emulates the disk drive and sound chip at a hardware level) entirely programmed in the children's block-based computer language, Scratch! There's even a debugger with breakpoints, watches, data bps, etc, tucked away in there.
Hopefully it'll have educational value, allowing children to program in BBC BASIC or 6502 assembly from within Scratch. There's certainly a high level of irony in emulating the computer I learned programming on in a language designed to teach children to learn programming!
What's really pleasing is that I'm starting to see programs written by Scratchers appearing in the Scratch forum I set up for the project!
As a programmer by profession and a Code Club teacher by choice, I wanted to test out the boundaries of Scratch. So many children (and teachers) think it's a very basic programming environment with very limited application. I have found this to be far from the case and have created dozens of advanced projects to demonstrate as much. From replicas of arcade games (Galaga, Scramble, Mr Do and many more) through to ports of PC projects (Beneath a Steel Sky, The Manhole, Zork and more) through to a complete BBC Micro emulator that plays most original disk images. There's some delicious irony to having created an emulator of the computer I learned to program with in a modern language that children now learn to program in.
For anyone interested, you can view and play all of these project at https://www.rokcoder.com
I'm not suggesting that Scratch should be taught to this level but I think it's interesting and useful to know just how flexible and powerful it can be.
I discussed the exit strategy from Scratch with Scratch Team members at the Scratch Conference back in 2019. One suggestion they put forward was Unity due to the fact it's not dropping children directly into a text-only scenario which is the case with most programming languages. I found this to make a lot of sense but also recognised that putting a child in front of an empty Unity screen can be a little daunting. Because of this I started creating a tool to bridge the gap - to give children something other than the blank canvas to start from and to ease their journey into Unity.
The tool simply adds a "Scratch" option to the main Unity menu. Using this it allows you to enter a Scratch project ID and then imports the project directly from the Scratch website and into Unity. The idea behind this is that intermediate to advanced Scratch users can pull their own favourite project that they have made directly into Unity. The assets (graphics and sound effects) are imported and the actual code is converted to C#. Within minutes anyone can play their own Scratch project from within Unity. They can see the C# code equivalent of their Scratch project. They can see the Unity components in action, the Unity scene, who the IDE works. They can even breakpoint their code and single step through it. If they wish they have the ability to export their Scratch projects as apps for Windows, iPhones, Android devices or even XBox or other consoles.
Right now the tool is in pre-beta but I'm hoping to make it available for testing within a matter of months. An early demonstration of the tool in action can be seen at https://www.youtube.com/watch?v=nuUF9BcJT8g and I'm happy to get feedback and/or discuss the idea.