Sprite Folders?
-
You get the name, when going to the new sprite menu, you should be able to add a folder so that you can organize sprites better, this would make forkable (shared) games a lot easier to manage.
-
@jd131111 That’s a pretty good idea
-
Do you mean creating a folder in the sprite panel below the stage? So instead of showing individual sprites, we show a folder that contains multiple sprites? Similar to folders of apps on your phone?
It seems this would only be useful when there are many sprites in a project, right?
-
@info-creaticode
Not really, it’s useful for collected rig parts of a sprite, like arms, legs, and many more. There’s a ton of uses for this. I can give more examples if needed (like enemies, items, walls, etc.) -
@catty enemies items and walls should (most of the time and in my experience) be clones of a sprite (one enemy sprite or almost one sprite per enemy type, same with items and walls), I would say yeah for rigging since I typically am somewhat reluctant to make new sprites (I don’t really know why, I just tend to not make new sprites for a lot of stuff)
-
That’s an interesting example. Can you provide an example project with rigged parts of a sprite? And explain how this “folder” feature would help? Thank you.
-
@info-creaticode another example could be if somebody makes a set of sprites that can be put into another project to do various stuff (sprites to help debug or test stuff, example snippets in sprites, sprites with code for common functions or an engine like thing, etc) so its quicker to import and doesn’t get mixed up with the rest of your project
-
@info-creaticode Folders for sprites could have many uses, but I think they are purely for visual organization, and would help a ton in projects where you have a lot of similar sprites that you don’t want to condense.
A common (and bad) Scratch practice, at least one that I had, is to make like 5000 sprites for buttons and/or menus. I was too lazy to use clones and costume detection (although I could) and many other Scratchers also might not know how to do that. I think it would really help new users to realize the potential of what they can do more because they won’t feel super cluttered or disorganized when they see they have ~30 sprites. I mean that number of sprites is not needed at all, but it’s fine as new users are still learning the layout. I’ve been demotivated in the past on working on Scratch projects after taking a break, and coming back later and having a hard time because the sprite layout was so messy. I did use comments, but when you have an engine and two or more sprites complement each other, it gets harder to maintain.
-
@info-creaticode also scratchaddons.com has a feature like this to visualize it:
However there should be a stronger indicator that a sprite is a part of a folder rather than just color (in this case green), because that would confuse colorblind people, so maybe a little nested thing to open and close a sprite folder could work out too? -
Thank you all for the inputs. This is becoming a non-trivial feature update. To summarize what has been discussed so far:
- The ‘folder’ is a group of 1 or more sprites. It helps organize sprites when there are many sprites in a project.
- Users can create/delete/rename a folder
- A folder’s skin will be some preview of sprites in it.
- Users can drag a sprite into a folder
- Users can open a folder, then the sprite pane will only show the sprites in that folder and no other sprites. At this point, the user should be able to move a sprite out of this folder. Also, there needs to be a way to go back to the upper level so all sprites and folders are shown.
- Users can export a folder into a file, which would contain all the sprites in it, and then upload it to another project as a new folder.
Some remaining questions:- There is only one level of folders (i.e. a folder can not contain another folder)? One level will be much simpler.
- Can a user duplicate a folder? probably no need to support this
- Can a folder be put into the backpack? maybe not needed
-
@info-creaticode I agree with all of the remaining questions, but 2 and 3 seem like they could just be added for extra convenience, because exporting folders is allowed, and backpacking something serves the same purpose but instead of putting it on your laptop it puts it in your backpack storage, and duplicating a folder would make sense to add as well because even if it wasn’t supported, one could duplicate a folder by exporting it and importing it into the same project.
-
But what happens when you duplicate a folder? We make a copy of all sprites in the original folder, and rename them as well? When would this operation be useful?
-
@info-creaticode I’m not sure, I would say for extra convenience but you bring up a good point. I think just being able to backpack folders is neccessary then since it allows you to have more control of having the same sprites in multiple projects, and would also be useful for the upcoming code snippet library.
-
If you can export the folder than import it in another project, it is less necessary to make the backpack support it, right? This should be a fairly rare operation after all.
Also, for the snippet library feature, it will only suppose a stack of code blocks, not sprites or folders, right?
-
@info-creaticode Both of those are true, so yeah, to answer the remaining questions, backpack, subfolders, and duplication will not be supported.
-
@info-creaticode IMO snippets would of been sprites with labeling and details on what they do (more than just a title an icon, like a short preview description and a longer description detailing what it does) and the sprite can be one stack or multiple, I just feel limiting it to one stack would limit it to certain functionalities (I’m thinking what if you have something like multiple custom blocks that work together and only work with each other, ex: custom blocks to use something like a key value table where you need blocks to set a value and retrieve a value), though lone code snippets could work depending on the full intent of it
Edit: Example for what I mean
(List/grid of sprite snippets)
/
Player Controller
Simple premade player handlerSimple Enemy
Basic chaser enemyOther Snippet
A random snippet
/\Then when you click on one
/
Player Controller
Simple premade player handler
A simple player controller for quickly setting up wasd and arrow key support
[Add to project]
/\THe name in the example is “Player Controller”, the short description is “Simple premade player handler”, and the full description is “A simple player controller for quickly setting up wasd and arrow key support”
Making it would be when they go to submit a snippet example it would have 3 input boxes for the name short description (short description could be labeled title or something like that) and the full description (The short description is optional, I now realize you can probably convey what’s in the short description in the sprite name, I just got inspiration for it from somewhere)
-
Thanks for the detailed explanation. It does appear a sprite library is more useful than a snippet library, since it can include multiple stacks of code, costumes, sounds, etc.