We're experimenting with a new way of programming in Scratch and we want to know how you might use it. We need your feedback!
Here is the idea:
What if you could just type in what you wanted your sprite to do, and it found code that does it, written by other people? What if you could describe what your code does in plain English and share your techniques with others?
Here are some examples of code you could search for or share with others. Our current idea is you would annotate a stack of blocks by adding a little note around its hat block. These notes are a little different from comments because they mark which stack(s) you're describing. Also, comments usually tell how something works; with this it's just what it does.
Our questions for you:
What kinds of goals would you search for? What kinds of block stacks could you imaginge annotating?
Can you think of a few different ways people might use different words for the same goal or idea? For example, you might annotate something as "keeping score" but someone else is searching for "counting points". What other examples can you think of?
After we collect helpful ideas we'll let some people try out this experimental version of Scratch.
A final note: this experiment is primariy for research and there are yet no plans to introduce this features in the next release. We will certainly learn from this to think about future additions to Scratch.
Thanks and Scratch on!
Offline
Plz dont do that cause if u do this it will good for begginers but then why dont you make a version of scratch that can think what to do and u just say to it by voice there will be no effort then why will it be a proggramming language if u do this it will become an AI programming Software.
Offline
fanofcena wrote:
Plz dont do that cause if u do this it will good for begginers but then why dont you make a version of scratch that can think what to do and u just say to it by voice there will be no effort then why will it be a proggramming language if u do this it will become an AI programming Software.
I'm certain that Scratch won't become like that.
Offline
well im not sure if this will happen! Is it already made?Is scratch 1.5 coming out in November?
Last edited by dav09 (2009-09-14 15:07:42)
Offline
This would be pretty useful. Along with this (if you are to implement it) I think it would be cool to have tools on the website that help find the scripts you are looking for.
There would be an index of these scripts on the website and the user could either look it up in the index of use a search tool. Also, each script would let users report if the script does or does not not work and each script would show how many people said it worked or didn't work. This would help people find good scripts and avoid bad ones.
Offline
Wow - seems great.
However you might not want to make things to complicated
You could add an item to the right-click context menu of a script saying "Share this script online..." and sharing it on the site - just like Jens made his xml script export a very long while back xD . People could look for scripts on the Scratch site and download the ones the need. (They should be previewed on the site)
I think things would work best when the "uploader" of the scripts adds keywords to it, and the downloader searches for keywords.
Offline
fanofcena wrote:
Plz dont do that cause if u do this it will good for begginers but then why dont you make a version of scratch that can think what to do and u just say to it by voice there will be no effort then why will it be a proggramming language if u do this it will become an AI programming Software.
Umm, No not at all. first of all, there is not really a reason that this non-commercial program would ever try to develop a voice-activation feature. Trust me, if you did this then it would save people lots of trouble.
Something I would want to say is:
you should also have subs and functions like in Jens' BYOB thing... and then be able to Share the BYOB via a library of scripts.
The main problem with sharing scripts is, when you have this big script for a 3-D engine or something, then if you have variables, and two of the scripts use completely different names for their variables! you should have like a definition of the variable or something.
I think that using Subs and functions is the best way to overcome this. After all, subs and functions ARE used a LOT in programming languages. They are tried and tested. And there is no problem with var names, as long as you use a descriptive block name.
Offline
Thanks a lot for the great comments. I guess I should emphasize the questions we have for you:
1. What kinds of things would you search for?
2. What kinds of block stacks could you imaginge annotating?
3. Can you think of a few different examples where people might use different words for the same thing? For example, you might annotate something as "keeping score" but someone else is searching for "counting points".
Thanks!
Offline
The idea of this is interesting, sort of like having a library of scripts at one's fingertips. The list of scripts can be used at reference for programming, and one can analyze different scripts to determine what is the best course of action needed to accomplish a certain goal in a game (I wish I had something like this... you have no idea how many games I downloaded and examined just to determine how to get a sprite to jump while simultaneously managing the sequence of costumes during the jump sequence).
But I am worried of it becoming more of a learning crutch rather than something helpful (for example, if someone wanted to add gravity to a sprite and uses a predisposed script that programs gravity without ever learning about how the script works?). If such an idea were to be implemented, I think maybe it would be better to avoid having users be able to import the script - maybe a collection of visual images of scripts, tagged with keywords would be the way to go. (My statement here is based on the way I understood how the feature is supposed to work based on the first post; do correct me if I'm misunderstanding how the feature is to be implemented).
1. What kinds of things would you search for?
- Gravity
- Speed, Velocity, Acceleration, Friction
- Jumping
- Animation effects
2. What kinds of block stacks could you imagine annotating?
I guess the answer here would be block stacks that describe what was mentioned in the above answer, plus the following:
- health meter
- scrolling sprites
- bouncing off a sprite
- touching/sensing other sprites
- enemy AI
3. Can you think of a few different examples where people might use different words for the same thing? For example, you might annotate something as "keeping score" but someone else is searching for "counting points".
There are a couple I can think of:
- speed/velocity/moving
- animation/costume change/costume switch
- health bar/endurance/life points/life meter/health meter
- gravity/falling down
- scroller/scrolling
- platform/platformer
- enemy AI/CPU/computer vs. player
Offline
This sounds like a great idea, but I don't fully understand it. Could you explain it again?
From what I understand, I would make afew suggestions. 1. Make It a choice to download either the primary version of scratch we have right now, or that one, OR both. Its just inconvieneint if I download it, don't like it, and go through the hassle of downloading again.
Offline
This sounds like a more simple and automated version of libraries in C++
Offline
How do you publish your scripting? Because some false scripts could be sent in, and that would mean trouble.
Offline
1. What kinds of things would you search for?
- scroll background
- contact detection
- bounce after contact
- planet-like (revolution) movement
- acceleration, friction
- jumping
- wall block
- animated score
- artificial intelligence
- 3D movement
- 3D rotation
2. What kinds of block stacks could you imagine annotating?
- bouncing off a sprite
- touching/sensing other sprites
- animated score
- dragging a sprite into a location and then block it in that position
3. Can you think of a few different examples where people might use different words for the same thing?
- 3D movement/3D rotation
- bounce after contact/bouncing off a sprite/bounce off a sprite/bounce off sprite
- planet-like movement/revolution movement/planet movement/planet revolution
- jumping/jump
- wall block/solid movement
- animated score/graphic counter/counter
- artificial intelligence/AI/enemy AI/intelligent behaviour/intelligent movement
Offline
What's a ScratchR?
Offline
Solarbuddy wrote:
What's a ScratchR?
ScratchR is the name for the website software that supports the Scratch programming application.
Offline
Seems like an amazing idea! Perfect for beginners and people who make big projects.
I think you would need the following essential scripts:
- Scrolling X and Y
- Basic movement (changing x and y/ move steps with left and right arrow keys)
- Advanced movement (using velocity to move using arrow keys)
- Costume Change
- Gravity
- Wall sensing
- Score
- I'll add more if I think of them
Also, if this feature is released, I think the website should have a new section which has these script stacks which you could maybe download so that it's optional to use them or not.
Overall, I think it's a great idea and would love to hear more about it!
Offline
My opinion:
Without context the code snippits are not very valuable.
A better approach might be to create a gallery of tutorials.
Oh, wait-- it's already been done: http://scratch.mit.edu/galleries/view/58151
Offline
1. What kinds of things would you search for?
Scrolling
Infinite Scrolling
4-way Scrolling
Gravity
Jumping
Platforms
Solid Walls
Shooting
Multi-shot Shooting
3D
Bouncing
2. What kinds of block stacks could you imaginge annotating?
Arrow Key Control - XY
Arrow Key Control - Steering/Forward/Reverse
Arrow Key Control - Platformer
Arrow Key Control - Space ship with acceleration
Gun - No Gravity
Gun - With Gravity
Gun - Multi-shot
Mouse Control - Follow the mouse
Mouse Control - Rotate and translate
Bounce - Off Edges
Bounce - Off sprites
Bounce - With gravity
Wrap around the screen
Solid Walls - translating sprite
Solid Walls - rotating and translating sprite
Solid Walls - scrolling platformer
3. Can you think of a few different examples where people might use different words for the same thing? For example, you might annotate something as "keeping score" but someone else is searching for "counting points".
Infinite Scrolling / Loop Scrolling / Endless Scrolling
Gun / Shoot / Cannon / Projectile
Walls / Obstructions
Offline
1. What kinds of things would you search for?
AI, scrolling, 3D, Calculator, Engines for stuff, Raytracer Template, functions and stuff for trig stuff, List sorter, Physics simulators
2. What kinds of block stacks could you imagine annotating?
3D engines, mathematical functions and operations, list manipulation, Parts of a data processing engine
3. Can you think of a few different examples where people might use different words for the same thing? For example, you might annotate something as "keeping score" but someone else is searching for "counting points".
I really don't want to spend any more time right now...
Offline
andresmh wrote:
Thanks a lot for the great comments. I guess I should emphasize the questions we have for you:
1. What kinds of things would you search for?
2. What kinds of block stacks could you imaginge annotating?
3. Can you think of a few different examples where people might use different words for the same thing? For example, you might annotate something as "keeping score" but someone else is searching for "counting points".
Thanks!
1. Well, i'd probably be searching for the scrolling scripts It's the only thing that still confuses me. Perhaps they could have a rating on whether they're basic or advanced scripts?
2. Edit: Misread this one..
Movement - Basic
Movement - Velocity
Costume - Change on prompt
Costume - Change automatically
Scrolling - etc:
Health - Enemy
Health - Self
3. Movement/motion, effects/looks/ghost/colour... , Scrolling/sliding.
Last edited by 06dknibbs (2010-10-22 08:49:02)
Offline
What kinds of things would you search for?
Velocity,
Realistic Gravity,
Formulas (e.g. conversion of Celsius to Fahrenheit),
Bouncing,
Scrolling with two sprites,
Smooth X and Y scrolling.
What kinds of block stacks can you imagine annotating?
The repeat block in animating (sorry, I'm not sure how to phrase this properly),
The scripting for digits,
Formulas,
Smooth X and Y sprite motion.
Can you think of a few different examples where people might use different words for the same thing?
fire, shoot,
slash, attack,
obstacles, barriers,
barriers, walls,
home, house.
Last edited by Chrischb (2009-09-16 02:32:27)
Offline
Wow, that's a lot of really good stuff! I'm Ken, one of Andrés's friends at the Media Lab.
@jacool: Yeah, the final version will definitely give credit where it's due. It's really cool to see how other people re-use and change your scripts. My friend Yannick, also in the Media Lab, came up with some cool visualizations we might use.
@archmage: We're putting the search tool right inside Scratch, so you don't even have to leave your program. (It might be cool to have a web interface too.) And we'd love to know how useful each script is. (also @chrischb): Do you think it's enough to just consider a script useful if it's in a project that gets shared, or would you want something more? (@archmage: "last scratch project"? what are you switching to? just curious.)
@cheddargirl: If you find a script that doesn't quite work right for you, you'll probably have to figure out how it works; often trying to figure out how someone else did something opens your mind.
@BoltBait: That tutorial gallery looks great; thanks for the link! We're definitely thinking about how to show some context along with the scripts, and even how to show only scripts that came from projects like yours.
@dav09 and others: This isn't going to be officially released anytime soon. We're imagining and creating the future, but the Scratch team is working hard on improving things today too.
@06dknibbs: Did you see http://scratch.mit.edu/projects/SampleProjectsTeam/583769 or http://scratch.mit.edu/projects/WeirdF/678431 ?
A major shout-out to all those who took the time to make long lists of examples. They've already been very helpful -- keep them coming! Also, we're going to be sending instructions to individual people on how to download an experimental version of Scratch. Depending on the response, we may share it more publicly. Remember this is experimental.
Thanks again everybody, and as Andrés likes to say, Scratch on!
Last edited by kcarnold (2009-09-16 12:39:38)
Offline
kcarnold wrote:
(@archmage: "last scratch project"? what are you switching to? just curious.)
I am just working with a few other users to make a neat game project, I have to finish it when I have time.
As for what I am switching too, I started game programming in Actionscript 2 before I heard of scratch and made a few small flash games. I also used a lot of what I learned coding in actionscript 2 in my scratch projects. I want to try using classes in Actionscript 3 to make some neat games and submit it to game sites.
Offline