Closed zealton closed 4 years ago
Maybe as an extension?
Scenes are relatively common in game engines and allow developers to organise projects. For example, Godot Engine and GDevelop both have scenes as a fundamental organizing concept.
When the developer creates multiple scenes, they could transition between scenes with a "transition to scene {scene_name}" block.
Thanks for the feature suggestion! This would be a fundamental change to how Scratch works, but it is worth thinking about. I'm going to close it as an issue because we don't plan to implement it, but we will keep it in mind, and of course feel free to collect support for exploring it, and feel free to add on to this issue with more detail about how it could work with the Scratch editor interface!
OK, thanks. Having scenes is a natural metaphor for these interactive media experiences, akin to stages or scenes in movies, theatre, and other games.
Currently, when Scratch projects grow to have more characters, dialogue, interactions, mini-games, or other scene-like aspects, coders have to clutter up the single canvas with all of the elements and wire signals and visibility toggles through their code. This developer experience and would be simplified by allowing different scenes with scene transitions.
FWIW, Scratch Jr. has a similar kind of scene-based structure to what you're talking about.
For Scratch, we made tradeoffs that make some things easier and more natural, and others harder and more unexpected. Backgrounds, scenes, and sprite state resetting is something where we chose to make fewer assumptions about the kind of project kids are making, and tried to provide building blocks that let you build scene-based stories, but also other types of projects, without being constrained by a scene metaphor.
One approach is not better than the other, and we welcome other takes on these design questions. We'd love to see a scene-based approach implemented using the scratch-gui repo's code!
@kyleplo My sense is that a scene-based approach would involve changes to the underlying structure of the Scratch vm, and would thus be hard to implement as an extension. Any ideas for how this could be done?
@benjiwheeler can you point to an example Scratch project containing multiple scenes or mini games? I am curious to learn how to structure larger game concepts with Scratch.
Expected Behavior
As we want to build complicated projects, like multiple levels or scenes
we want to manage sprites/actor easily, not all in one place
Think in a normal Mario game, if we want to design a game with 2 levels, we need to put all things in one place
Different screen(stage) includes its own backdrops and sprites
It may also include some new blocks like
switch to stage 123
,when stage change to 123