My son is finally make his space shooter the way he envisioned because of the new clone sprite action. Exciting times ahead, here is a pic of him getting down last night:
I had to implement some unsatisfying hacks to make my Scratch shooter work as well! If I remember correctly I was manually duplicating the master projectile and I had to register each projectile against each enemy.
Using Alice 2.2 (which also doesn't allow cloning/instantiation) my students had a similar issue, and solved it by using what they called "Megaman logic".
Megaman could apparently only shoot N bullets at once (3 or 5, I forget). Thus, they only ever had 5 bullet objects, iterated through a list to see if the bullet was shot or not, and only let you fire if there was a spare bullet.
I thought it was very clever. Sounds like you did much of the same thing.
Im not sure if clone works as expected though. He has a laser beam and it listens for a 'shoot' broadcast. When it hears it, a clone of 'myself' is made, it is placed behind the ship, and a loop moves it to the left. However, if 'shoot' is broadcasted multiple times, new clones are not made and the same laser beam is placed behind the ship. Maybe we'll put the clone logic on the broadcast portion and not on the laser itself. Programming is fun, I can't wait to nudge him to try that approach
It is an intel (I don't know the exact specs because he is using it right now). It is mainly a browser/netflix/homework/science project machine, he does, however, game on it. And I mean WINE game. Simpsons Hit and Run, Starwars Battlefront 1 & 2, he is really into Spore now a days. He does play Simcity 4000 or whatever the old one is from time to time. I was considering an upgrade or giving him my 13 macbook pro when I get something new. We've had it for 3 years and I can't ask of more from something that I got for 200$ on craigslist. Its funny because while he has a very capable computer on his desk in his room, he would much rather do every task on the iPad.
I honestly wasn't expecting you to see this and respond, so thanks a lot! I'm working on some machine lifetime prediction stuff for work, so it helps to hear about real-world cases.
It's a 2ghz core2duo with 2gb ram. Another impressive feature is the wireless speed. He streams HD video from the basement with no problem, while my newer computer struggles from time to time. This has been a great computer for him.
One important thing that's new in Scratch 2.0 under the hood is the transition from the .SB file format (a rather complex SmallTalk object store) to a ZIP based bundle containing all required media along with JSON encoded scripts. The upshot of this is that consuming Scratch files in other apps should be a lot easier.
That said, one downside of Scratch 2.0 (at least in my view) is the migration to a Flash based editor/playback engine. And I don't entirely blame MIT for this, because Scratch 2.0 has been under development for quite a long time. Five years ago, Flash maybe seemed more appropriate than it is now.
2.0 may have been a long time in the making, but I just bought the Scratch Adventure book for my kids last week, which uses 1.4, unaware of the pending update. When I went to the site to download Scratch, it was down while preparing for the 2.0 release. I thought it was a pretty ironic introduction to programming, always new shiny objects.
And all the games should still work in the new 2.0 interface too; it's an overhaul of the development environment, with backwards compatibility. (I'm updating the book now for 2.0, I edited it.)
I'm really glad to hear that! My 9 yr old daughter and I just finished going through this book on 1.4 and had a lot of fun. Do you happen to know if any of the projects will be different? I'd certainly buy a new copy again for additional projects.
We'll have some entirely new Scratch books with "harder" projects in the Fall, I hope. Physics simulations, geometry, math and science-oriented projects, not just games.
Some great new authors working on those, and not just Scratch too, but some "real languages".
But sadly, the 2nd edition of Super Scratch will probably just be an update to stay relevant, not an overhaul.
I hope that Edmond, the author of that first edition, will write a second book, but that depends on his time. You can check out some of his other Scratch projects here: http://scratch.mit.edu/users/LEAD/
I'd love it if anyone could give a good head to head on Scratch 2.0 vs. Snap! 4.0[1] (the new name for BYOB, Berkley's Scratch spin-off). I realize that Snap is aimed more teaching high school/college CS, but they're seeming to converge a bit.
I don't have a CS class this year, so I haven't set aside enough time to dig into the latest versions of Snap or Scratch. If anyone has any insight to share, it'd be greatly appreciated.
From a purely technical perspective, the biggest difference is that the Berkeley team (Snap) re-implemented in JavaScript, and MIT (Scratch 2.0) in Flash. The former also uses XML as a format, the latter JSON (in 2.0).
Like you say, Snap's main difference is it makes some more advanced CS concepts more overt, primarily for use as a teaching tool for older students. To this end, it doesn't have the deep social integration that Scratch does: remixing and sharing are a big part of Scratch.
But that isn't to say that Scratch isn't suitable for high school or college level courses - Harvard's been using Scratch in the first week of it's intro CS class for several years now, with great success. The advantage of Snap is that transitioning from it to pure coding can be less of a leap, due to support for things like recursion, procedures, and continuations.
The Lifelong Kindergarten's remit at MIT means that they tend to place emphasis on a certain age range. In addition to Snap there's also an offshoot of Scratch targeted at very young children (Scratch Jr, which I think is developed by Tufts).
I don't know how they do it. I have seen some pretty freaky games on their webpage, and I have seen a lot of games uploaded from game-programming events that I have hosted.
Does anyone have any recommendations on at what minimum age should this be introduced to kids? The website recommends 8-16 years, but then I was doing real programming at the age of ten, so eight may not be the best answer. My son is five right now.
Introducing too early seems to have a downside that if my son does not like it (or cannot grasp it), he develops a negative feeling towards it like boredom or else, and then subconsciously does not want to return to it even at the right age.
During Coding Goûter sessions, kids as young as 5 have played and created things with Scratch 1.4 and loved the experience. They are begging to come back, and it becomes a very usual thing to do, which is exactly our goal.
(Note that we mix kids, with ages ranging from 5 to 14, and always a 50/50 ratio of girls/boys, not via quota but because of the way the events are planned.
So we also have older kids. It's good for the younger ones.)
At this age, they (usually) don't read, so they generally are working with an adult and another kid, or in some instance with an older kid (my just 6 years old daughter for example worked one of the firs times with an older girl that knew Scratch.)
A very important thing to do is to let the creative direction to the kids. Don't force the programming of a shooter on them. They have lot of ideas, and they will be more motivated if the idea come from them.
Also they will be proud to see it happen.
They'll want to move things, animate, etc. They'll want to copy things they have seen.
Letting them draw on paper, for example a character, then taking a picture and incorporating it in Scratch is a nice way to alternate between two different activities (solving the "will they focus for long?" question)
8 is the right age. We teach dozens of 8 year olds. The basic principle is: if they can sit still for an hour or so, and concentrate, they can learn Scratch. If they're all over the place, forget bothering until they calm down.
You can show him that it's a paint program, then blow his mind one day when you can make his little characters say something and move around. Maybe have him make a ball one day and save it - when he's not around, go in there and add some gravity, momentum, friction, and elasticity. Later ask him to check out his ball sprite it should be pretty big surprise when you click the flag and the ball falls and bounces. My daughter loved just playing around with the painter.
My son and daughter at 4th and 5h grade were able to really take care of things by themselves almost entirely, my youngest son at 2nd grade needed a lot of help while mine craft is no trouble at all for him. Hope that helps.
My son will be 7 this month. We started Scratch probably 1.5 years ago. He loves it. Of course, I used to come up with projects and we did them together. But recently he started doing them himself.
https://pbs.twimg.com/media/BJ3OudQCQAALZCc.jpg:large