scratchfoundation / scratch-gui

Graphical User Interface for creating and running Scratch 3.0 projects.
https://scratchfoundation.github.io/scratch-gui/develop/
BSD 3-Clause "New" or "Revised" License
4.42k stars 3.51k forks source link

Project snapshots #777

Open kazagkazag opened 6 years ago

kazagkazag commented 6 years ago

Expected Behavior

Scratch should expose action to create snapshots of projects. Snapshots would be available in some kind of timeline/history panel, where author could select snapshot and "checkout" specific version of the project from the past. It could work like git history, but be more linear (one timeline, no branches) or Photoshop history panel.

Actual Behavior

There is no such option...

Why ?

  1. It would be much easier for authors to create application with history of changes. We can go back and fix some code (which will delete next snapshots) and start from that point. It will be easier than reverting all changes manually.
  2. Snapshots would be great for Code Clubs community. There is a lot of instructions for Scratch with screenshots of the created application. But when we want to translate instruction into some other language than English, we have to recreate entire application step by step, because sometimes set of variables or scripts are changing in next steps and we can't make screenshot from final version. With snapshots we could simply checkout specific snapshot and take screenshot :)
kyleplo commented 6 years ago

Yeah, this sounds like a good idea. You could use canvasObj.toDataUrl()

towerofnix commented 6 years ago

@kyleplo That's for taking screenshot images (you know, PNGs) of a canvas - this issue discusses something more like a timeline-based history of code, sprites, etc where you could go back and forth to view old versions of the project.

kazagkazag commented 6 years ago

Yes! For now in Code Clubs we have to rewrite all instructions in case of some braking changes in Scratch, because we have a lot of screenshots. Moreover sometimes when you wan't to translate project's instruction into another language, you have to recreate entire application, because there is no simple way to take screenshot of the application in some specific point from the past - things has changed, features added and code does not look the same now. With timeline we could simple go back to that point, take photo and translate faster!:)

kazagkazag commented 6 years ago

I could start contributing from that issue, but I don't see any contribution guide here? What should I do to develop such feature? From whom should I talk about possible solutions?

kazagkazag commented 6 years ago

Any clue ? :)

thisandagain commented 6 years ago

@kazagkazag This requires discussion before we will consider implementation or mark as "help wanted". Thanks.

mraerino commented 5 years ago

The WebGL Renderer has an option to get a PNG of the stage: https://github.com/LLK/scratch-render/blob/c9f86ef53bd6633fbb21ae7917b6223d809bebf2/src/RenderWebGL.js#L1798