Discuss Scratch

LFP6
New to Scratch
92 posts

Make Scratch work for serious ambitions

I know what you're all thinking after this title. Yes, there is some amazing stuff done with Scratch. But for me, how
Scratch is set up just doesn't lend itself to doing a scalable project. If any of the this is already done via mods, let
me know. I'd be interested in working on that myself if I get the chance to learn ActionScript and actually have the
time to do it. Also, some of these could be created via scripting, but I have no idea how efficient that would be
(computing resources wise) and as I'll mention script organization would need to actually be updated for that kind of
thing to work well. A lot of this stuff comes from my experience in Unity3D, an absolutely wonderful 3D game creation
tool that is quite transparent to understand. Let me highlight some of the key things that need to be adjusted:

1) Internal asset packaging & management. I want to be able to have folders (and subfolders!) of the stuff I want to
use, and reference that from my script or be able to share those libraries with others. Organization, easy transfer,
quick referencing. I mean, not having folders or even being able to name scripts in my backpack is ridiculous and should
be simple to do. Having a place to share asset libraries (aside from ‘empty’ projects) would be cool too. As a part of
this, all in-game objects should be instanced. This stuff with the asset library being the same thing as an in-game
instance just makes NO sense whatsoever.

2) Release management & source control. I mean, really, I can't save without pushing my partially complete revision as
live and possibly breaking my working game? I get that you can save as a copy, but I want to have my live copy in one
place and push updates to it. With that comes revision management. Especially when collaborating with others (more on
that later) I need to be able to have multiple versions running side by side, see what was changed between versions,
merge those changes together, revert individual changes, or even have multiple parallel release versions.

3) Direct team collaboration. Remixing is great, but if I'm working with others I want to be able to use a source
control system to be working on the same thing. Trying to sync development remixes would just be a huge pain and make
things way more difficult and inefficient than they need to be. As such, projects that have one member at full Scratcher status would have access to cloud data. I can't do work with a team that can't access stuff we need.

4) Object oriented scripting. Having separate scripts attached to each object that are miles long creates a huge mess.
Some of the concepts for this are complicated, but they don't need to be presented as such, and not everything needs to
be included. At the very least, I would like to see scripts created separately from objects (sprites, in Scratch's case,
which should probably be adjusted to be separate), then applied to them. It would make organization SO much easier, and
when combined with asset management I mentioned earlier, would mean that script libraries would be a real usable
possibility. Honestly, it just makes so much more sense. I would throw in parenting for advanced users, but that's not
as critical.

5) World-based project creation. The screen-based stuff is great, but it makes doing RPGs more difficult than it needs
to be. Make auto-scrolling of the screen an option. And on that note, why don't you allow a scalable screen size from
whoever is running the project? You could even allow tools to detect this so that program creators can adjust if they
wish. All completely optional but very helpful for the developer.

6) 3D coding wouldn't really be that hard. I mean, adding another coordinate to location and rotation (and scale, if
that's ever implemented) isn't too complex. Everything else has to do with either graphics (only part of which would
need to be dealt with in Scratch), lighting, and the camera if I'm looking at this correctly.

7) Set layer. Surprised this isn't available already. It would make dealing with overlaps with many objects a lot
easier.

8) Text scripts. GUI scripting is slow, and most ‘real world’ tools are text-based. I would love to see an interface
where you could write in multiple languages or the GUI and be able to flip between them (as everything typed would
correspond with a GUI component and the same thing in another language).

9) GUI distinction. It would make my life a lot easier to be able to have GUI ‘components’ that would be dealt with
separately (that is, you work with your GUI separately from the game world) and have built-in features, ie buttons and
text-boxes. They could have default looks, and be able to be changed with custom skins (perhaps having a library of
default skins).

10) Object instancing. I mean come on, assets being treated as instances? That makes NO sense and it's horrible to work
with. Assets are applied to objects, and objects are either instantiated in the scene at the start (standard drag ‘n
drop) or called by a script to be instantiated into the scene. See my thoughts on asset management and object oriented
scripting.

11) Physics. It would make my life a lot easier if there was a way to just add a physics engine that deals with gravity,
created force, and collisions for me.

12) Mod integration into the main site. If there’s a tool I need, I want to be able to work with it in the online interface (primarily if I'm using it to collaborate with others on a project). And honestly, I would find it ridiculous if you let people develop Scratch but don't look into integrating what they've made, as it greatly expands the amount of development work that can be done.

That's all I can think of right now. I'll make an additional post if I think of anything else or edit this post if I
ever get full Scratcher status (which in order for me to really want to use scratch, I'd want these things taken care of
first ). Please let me know if you have any thoughts, and looking forward to the devs' input. I'll answer any questions and address any possible issues with this.

LFP6
Catholic, Tech Enthusiast, Musician, Audiophile, Media Creator
LFP6
New to Scratch
92 posts

Make Scratch work for serious ambitions

13) Also, I'm assuming that doing a game save for a user is possible with cloud data, but if not that needs to happen. Being able to just do a straight save of preferences, score/gained items, location, etc. for either single player by user or multiplayer by user would be VERY helpful.

LFP6
Catholic, Tech Enthusiast, Musician, Audiophile, Media Creator
LFP6
New to Scratch
92 posts

Make Scratch work for serious ambitions

Lolz, wow, another thing.

14) If there's a way to facilitate the creation of a website more than just creating a project or a forum post (as in, it actually is full-page and whatnot) that would be very helpful to give projects a home.

LFP6
Catholic, Tech Enthusiast, Musician, Audiophile, Media Creator
Letsgopitt
Scratcher
500+ posts

Make Scratch work for serious ambitions

These suggestions are good (I agree with 1 and 5) but a lot of these are fairly complex (also, no 3d Scratch, end of story. The sticky,) However, Scratch is meant to be an easy coding language that anyone can use. (The other sticky. If too many complex features are added, it might make Scratch too complicated and turn people off. As you said, you can make amazing things with Scratch. That being said, I don't think these things are that urgent for ST to add. (Execpt 1 and 5. You've got my support for those ones!)
LFP6
New to Scratch
92 posts

Make Scratch work for serious ambitions

Letsgopitt wrote:

These suggestions are good (I agree with 1 and 5) but a lot of these are fairly complex (also, no 3d Scratch, end of story. The sticky,) However, Scratch is meant to be an easy coding language that anyone can use. (The other sticky. If too many complex features are added, it might make Scratch too complicated and turn people off. As you said, you can make amazing things with Scratch. That being said, I don't think these things are that urgent for ST to add. (Execpt 1 and 5. You've got my support for those ones!)

Yep, totally agree. Everything else is really just for convenience. Object instancing is something I do feel is important though as it makes things really difficult to work with, and is very closely related to 1, 4, and 5.

LFP6
Catholic, Tech Enthusiast, Musician, Audiophile, Media Creator
LFP6
New to Scratch
92 posts

Make Scratch work for serious ambitions

LFP6 wrote:

Letsgopitt wrote:

These suggestions are good (I agree with 1 and 5) but a lot of these are fairly complex (also, no 3d Scratch, end of story. The sticky,) However, Scratch is meant to be an easy coding language that anyone can use. (The other sticky. If too many complex features are added, it might make Scratch too complicated and turn people off. As you said, you can make amazing things with Scratch. That being said, I don't think these things are that urgent for ST to add. (Execpt 1 and 5. You've got my support for those ones!)

Yep, totally agree. Everything else is really just for convenience. Object instancing is something I do feel is important though as it makes things really difficult to work with, and is very closely related to 1, 4, and 5.

I have already read both stickies. And a lot of these things would work fine as extra features that can be hidden away and only used if someone wants them. The other stuff does make Scratch more simplistic and have higher clarity though. Number 6 was really just an observation on my part.

Wow, just now realizing that I can hit edit on a post after just submitting it. Sorry 'bout that.

Last edited by LFP6 (Jan. 27, 2015 01:39:00)


LFP6
Catholic, Tech Enthusiast, Musician, Audiophile, Media Creator
Letsgopitt
Scratcher
500+ posts

Make Scratch work for serious ambitions

It's okay. If I were you, I wouldn't want to make that post longer than it already is.
I still think most of these blocks are unnecessary.
Iditaroid
Scratcher
500+ posts

Make Scratch work for serious ambitions

If you want all of these things why not just use more advanced languages?

LFP6
New to Scratch
92 posts

Make Scratch work for serious ambitions

Iditaroid wrote:

If you want all of these things why not just use more advanced languages?
Two main reasons I'm doing this:
1) If I use Scratch, I have the Scratch community and project sharing platform (I don't have to host my own stuff, there are people to work with, and everything's moderated).
2) For 1-5 and 10, these are major faults of Scratch that should be corrected anyhow. Scratch isn't a bad tool, it just was set up in what I personally see as being very confusing to do anything aside from the very basics easily.

LFP6
Catholic, Tech Enthusiast, Musician, Audiophile, Media Creator
charlesdog
Scratcher
1000+ posts

Make Scratch work for serious ambitions

LFP6 wrote:

I know what you're all thinking after this title. Yes, there is some amazing stuff done with Scratch. But for me, how
Scratch is set up just doesn't lend itself to doing a scalable project. If any of the this is already done via mods, let
me know. I'd be interested in working on that myself if I get the chance to learn ActionScript and actually have the
time to do it. Also, some of these could be created via scripting, but I have no idea how efficient that would be
(computing resources wise) and as I'll mention script organization would need to actually be updated for that kind of
thing to work well. A lot of this stuff comes from my experience in Unity3D, an absolutely wonderful 3D game creation
tool that is quite transparent to understand. Let me highlight some of the key things that need to be adjusted:

1) Internal asset packaging & management. I want to be able to have folders (and subfolders!) of the stuff I want to
use, and reference that from my script or be able to share those libraries with others. Organization, easy transfer,
quick referencing. I mean, not having folders or even being able to name scripts in my backpack is ridiculous and should
be simple to do. Having a place to share asset libraries (aside from ‘empty’ projects) would be cool too. As a part of
this, all in-game objects should be instanced. This stuff with the asset library being the same thing as an in-game
instance just makes NO sense whatsoever.

2) Release management & source control. I mean, really, I can't save without pushing my partially complete revision as
live and possibly breaking my working game? I get that you can save as a copy, but I want to have my live copy in one
place and push updates to it. With that comes revision management. Especially when collaborating with others (more on
that later) I need to be able to have multiple versions running side by side, see what was changed between versions,
merge those changes together, revert individual changes, or even have multiple parallel release versions.

3) Direct team collaboration. Remixing is great, but if I'm working with others I want to be able to use a source
control system to be working on the same thing. Trying to sync development remixes would just be a huge pain and make
things way more difficult and inefficient than they need to be. As such, projects that have one member at full Scratcher status would have access to cloud data. I can't do work with a team that can't access stuff we need.

4) Object oriented scripting. Having separate scripts attached to each object that are miles long creates a huge mess.
Some of the concepts for this are complicated, but they don't need to be presented as such, and not everything needs to
be included. At the very least, I would like to see scripts created separately from objects (sprites, in Scratch's case,
which should probably be adjusted to be separate), then applied to them. It would make organization SO much easier, and
when combined with asset management I mentioned earlier, would mean that script libraries would be a real usable
possibility. Honestly, it just makes so much more sense. I would throw in parenting for advanced users, but that's not
as critical.

5) World-based project creation. The screen-based stuff is great, but it makes doing RPGs more difficult than it needs
to be. Make auto-scrolling of the screen an option. And on that note, why don't you allow a scalable screen size from
whoever is running the project? You could even allow tools to detect this so that program creators can adjust if they
wish. All completely optional but very helpful for the developer.

6) 3D coding wouldn't really be that hard. I mean, adding another coordinate to location and rotation (and scale, if
that's ever implemented) isn't too complex. Everything else has to do with either graphics (only part of which would
need to be dealt with in Scratch), lighting, and the camera if I'm looking at this correctly.

7) Set layer. Surprised this isn't available already. It would make dealing with overlaps with many objects a lot
easier.

8) Text scripts. GUI scripting is slow, and most ‘real world’ tools are text-based. I would love to see an interface
where you could write in multiple languages or the GUI and be able to flip between them (as everything typed would
correspond with a GUI component and the same thing in another language).

9) GUI distinction. It would make my life a lot easier to be able to have GUI ‘components’ that would be dealt with
separately (that is, you work with your GUI separately from the game world) and have built-in features, ie buttons and
text-boxes. They could have default looks, and be able to be changed with custom skins (perhaps having a library of
default skins).

10) Object instancing. I mean come on, assets being treated as instances? That makes NO sense and it's horrible to work
with. Assets are applied to objects, and objects are either instantiated in the scene at the start (standard drag ‘n
drop) or called by a script to be instantiated into the scene. See my thoughts on asset management and object oriented
scripting.

11) Physics. It would make my life a lot easier if there was a way to just add a physics engine that deals with gravity,
created force, and collisions for me.

12) Mod integration into the main site. If there’s a tool I need, I want to be able to work with it in the online interface (primarily if I'm using it to collaborate with others on a project). And honestly, I would find it ridiculous if you let people develop Scratch but don't look into integrating what they've made, as it greatly expands the amount of development work that can be done.

That's all I can think of right now. I'll make an additional post if I think of anything else or edit this post if I
ever get full Scratcher status (which in order for me to really want to use scratch, I'd want these things taken care of
first ). Please let me know if you have any thoughts, and looking forward to the devs' input. I'll answer any questions and address any possible issues with this.
LONGEST POST EVER

Last edited by charlesdog (Jan. 27, 2015 02:13:38)


i really dont know what to put here
Letsgopitt
Scratcher
500+ posts

Make Scratch work for serious ambitions

charlesdog wrote:

LONGEST POST EVER

Don't spam. Also, it is is the
LONGEST POST EVER
then why did you feel the need to quote it?
LFP6
New to Scratch
92 posts

Make Scratch work for serious ambitions

Sorry for some… Strongly worded accusations I made in the first post. I overstepped my bounds at points. :s

LFP6
Catholic, Tech Enthusiast, Musician, Audiophile, Media Creator
Letsgopitt
Scratcher
500+ posts

Make Scratch work for serious ambitions

Don't worry– these are good suggestions, just it isn't something Scratch will probably add.

On an unrelated note, that is my 99th post! 100+, here I come!
Zro716
Scratcher
1000+ posts

Make Scratch work for serious ambitions

a list tag would come in handy
  1. sprites are pretty much a folder for scripts, costumes and sounds, but I would so love to have the sprites themselves organized in folders. I think a collapsible folder hierarchy with sprites would be a huge help.
  2. hmm, it seems like you're describing some way to control the autosave feature. would definitely like to have a setting somewhere in the editor that customizes the autosave feature, like to save every 30 seconds, minute, or disabled.
  3. I'm not sure how the servers would handle live collaboration like that.
  4. so what you're saying is public functions? total support
  5. screen scrolling? it's partially implemented already, but not 100% practical for most projects
  6. there is so much to 3D you can't just simply go “lights, camera, action” like textures, data pointers, relative vs. absolute coordinates, intersection… it's just too much for the simplistic design of Scratch
  7. suggested elsewhere, but I still support.
  8. I would love to see the costume fonts be used for a built-in text engine.
  9. I'd just like to say that Scratch is meant to be multi-paradigm so GUI elements would basically be sprites
  10. um???
  11. remember, need to keep it simple. I don't recall any programming language having built-in physics, so it wouldn't make sense to turn Scratch into the exception. besides, it will all boil down to using variables and timing just as we do now.
  12. I don't know if it's in Scratch's legal terms to allow modded programs like that. anyways, you can copy and paste an extension's source code into your browser's console, but on exit the blocks will turn undefined as there is no such functions in vanilla Scratch.
  13. locally saved variables (cookies?) would come in handy, but there needs to be some kind of prevention against overzealous caching
  14. that's called your profile

Last edited by Zro716 (Jan. 27, 2015 05:29:58)


As a long time Scratcher, I have found new meaning to the name “Scratch”: for me, it means to “scratch that itch”, to come back again and again to realize new ideas in this toy language, even when I'm capable of creating my projects in real programming languages years later. It's a friend that helped me to pursue programming and get me to enjoy its fruit. I'm certain many others who have walked this path as well have grown fond of its importance in their life.
Iditaroid
Scratcher
500+ posts

Make Scratch work for serious ambitions

LFP6 wrote:

Scratch isn't a bad tool, it just was set up in what I personally see as being very confusing to do anything aside from the very basics easily.
Scratch is only meant for the basics

If you really feel strongly about these features you could just mod some of them in yourself and then upload sb2s made in your modded program. I mean, major features like physics and 3D would never be supported on the Scratch website but I imagine you could do asset management, object oriented scripting, text coding and even team collaboration since these either don't affect how the project itself functions or could probably be converted so they do (text converted to blocks and scripts applied to sprites in sb2)

LFP6
New to Scratch
92 posts

Make Scratch work for serious ambitions

Zro716 wrote:

a list tag would come in handy
  1. sprites are pretty much a folder for scripts, costumes and sounds, but I would so love to have the sprites themselves organized in folders. I think a collapsible folder hierarchy with sprites would be a huge help.
  2. hmm, it seems like you're describing some way to control the autosave feature. would definitely like to have a setting somewhere in the editor that customizes the autosave feature, like to save every 30 seconds, minute, or disabled.
  3. I'm not sure how the servers would handle live collaboration like that.
  4. so what you're saying is public functions? total support
  5. screen scrolling? it's partially implemented already, but not 100% practical for most projects
  6. there is so much to 3D you can't just simply go “lights, camera, action” like textures, data pointers, relative vs. absolute coordinates, intersection… it's just too much for the simplistic design of Scratch
  7. suggested elsewhere, but I still support.
  8. I would love to see the costume fonts be used for a built-in text engine.
  9. I'd just like to say that Scratch is meant to be multi-paradigm so GUI elements would basically be sprites
  10. um???
  11. remember, need to keep it simple. I don't recall any programming language having built-in physics, so it wouldn't make sense to turn Scratch into the exception. besides, it will all boil down to using variables and timing just as we do now.
  12. I don't know if it's in Scratch's legal terms to allow modded programs like that. anyways, you can copy and paste an extension's source code into your browser's console, but on exit the blocks will turn undefined as there is no such functions in vanilla Scratch.
  13. locally saved variables (cookies?) would come in handy, but there needs to be some kind of prevention against overzealous caching
  14. that's called your profile
Sorry about that… I forgot that was an option. :S

  1. I would personally prefer scripts, images (costumes here), and sounds to be separate from objects (sprites here). I like working from libraries of stuff to reduce redundancy.
  2. Not just that though. I don't want a save to mean the same thing as releasing the working product. I want to be able to work on developing without pushing those changes to the project where people can play it. At the very least, I would like to be able to create a remix, work on it, and push those changes to my ‘live’ project. That's where revision control would come in handy, and that would solve the whole issue with collaboration for me (however multiple people would still need the ability to push changes to other versions, including their copy, the live copy, different development remixes, etc.).
  3. Not necessarily live. They could be controlled remixes as I just mentioned, but multiple people would need the ability to push to other versions.
  4. Basically. Similar to what I mentioned for 1, I want scripts separate from objects (sprites), especially to reduce redundancy and make maintenance of objects/scripts easier.
  5. I'm not sure how to implement that… Is there a resource I could look at? I just thought it would make life easier to have the interface do that by default if you check a box or something.
  6. I Actually do some work with it myself, and it doesn't seem too bad IMO… Maybe that's just me. Just an observation though.
  7. -
  8. -
  9. Right.. Would be cool to be able to have layers of interaction I can flip between (one layer would be default as it is currently), as well as templates for certain object ‘types’ (something scripters could do easier if script libraries were actually supported!).
  10. Yeah, I was a bit overzealous there. :S But as I've stated, it's a lot easier (at least for me) to work from libraries.
  11. That isn't really a language thing as much as it is a game development environment thing. Most have them (think gameMaker or Unity3D). Again, easily scriptable if libraries were supported.
  12. Not quite what I meant, sorry if it wasn't clear. I meant that Scratch staff should take good improvements from mods and integrate them into vanilla Scratch. Perhaps have a panel to be able to choose from extra/advanced features?
  13. Yep. Would be good to save it to a user's account though (especially for multiplayer!).
  14. I was referencing a home for a group. The forums are currently used for that, and a project could be used to have more organized information, but I would like to be able to have a site-like semi-professional interface through Scratch. I very well may be alone here though.

    Thanks for your thoughts! Hope I've been able to clarify some things.

LFP6
Catholic, Tech Enthusiast, Musician, Audiophile, Media Creator
LFP6
New to Scratch
92 posts

Make Scratch work for serious ambitions

Iditaroid wrote:

LFP6 wrote:

Scratch isn't a bad tool, it just was set up in what I personally see as being very confusing to do anything aside from the very basics easily.
Scratch is only meant for the basics

If you really feel strongly about these features you could just mod some of them in yourself and then upload sb2s made in your modded program. I mean, major features like physics and 3D would never be supported on the Scratch website but I imagine you could do asset management, object oriented scripting, text coding and even team collaboration since these either don't affect how the project itself functions or could probably be converted so they do (text converted to blocks and scripts applied to sprites in sb2)

First off, based on the stickied topics it should have a “high ceiling”. Having the biggest thing that you can do easily being two things moving around a screen is quite a low ceiling. Having decent asset organization and collab/release controls is pretty important for any project of substance.

That is a valid point… I suppose the assets would just need to be translated into vanilla assets upon an export for the web, or something? Honestly the main thing holding me back is getting to learn ActionScript and finding the time to implement.

LFP6
Catholic, Tech Enthusiast, Musician, Audiophile, Media Creator
LFP6
New to Scratch
92 posts

Make Scratch work for serious ambitions

Would it be possible for someone on ST to be able to comment on my thoughts? I'm curious to see if any/which of these things would be possible (I already know some of which won't happen, but still interesting for the others, especially the asset organization series of stuff).

LFP6
Catholic, Tech Enthusiast, Musician, Audiophile, Media Creator
Iditaroid
Scratcher
500+ posts

Make Scratch work for serious ambitions

LFP6 wrote:

Would it be possible for someone on ST to be able to comment on my thoughts? I'm curious to see if any/which of these things would be possible (I already know some of which won't happen, but still interesting for the others, especially the asset organization series of stuff).
It's not very likely, unfortunately. Scratch Team seems to respond pretty randomly to any suggestions that they aren't just closing!

ealgase
Scratcher
100+ posts

Make Scratch work for serious ambitions

Support!

ST should get the top ten users from Advanced Topics to code Scratch 3 instead of the project they created.

Powered by DjangoBB