There should be a setting or a block in the palette to enable a feature called "High-Performance Mode." This mode would make things like graphical effects faster by rendering the stage at a lower resolution at the cost of lower graphics quality.
I'm thinking, this would be a cool idea, but what makes Snap! run so slow in the first place? Maybe the compiler should be replaced with something like Turbowarp (scratch)'s? But i don't know the implications of this; i really don't know how Snap! is built in the backend. Nonetheless i would love to know why Snap! tends to be slower (at least without optimization) compared to Scratch.
I think this would work because when you scale the stage down in the editor in a game that doesn't have high fps, the fps goes up.
True, it's a
EXTREMELY notable performance difference for window size. Maybe a feature to render at one window size and upscale it to the actual window size, instead? So it isn't just one setting, more a variable to adjust to balance between performance and graphics.
Extra idea: a block to possible control the render resolution? It sounds redundant at first but you could possibly have the menus render at a higher resolution because it doesn't need much performance, but you could also render the game at a lower resolution (upscaled to fit, of course), it would run better
Yeah, this is what I was thinking.
Yeah, it seems like a good feature request. I can't really say anything though because i don't know much about the inner workings of Snap!.
Need a better name. There are lots of kinds of performance. I would call it "Low resolution graphics."
Dunno if Jens will like the idea. I'm guessing he'll think it's a distraction from more important stuff, and also that Snap! will look bad if people start publishing low resolution projects. (In a different context, I wanted to be able to turn off Retina support as a user default, and he pointed out that a non-retina project on a retina display looks worse than the same project on a non-retina display.)
Maybe this could also make variable displays update in real time instead of being slow?
If so I really like this idea, although they probably update slow for another reason.
The variable watcher updates are deliberately "slow" in order to speed everything else up
drawing stuff with stamp and pen and such is slow compared to scratch because snap is using canvas2d, while scratch is using webgl.
many other things are slow in snap because snap is very complicated, and many parts of the code just have issues.
as far as i can tell jens doesn't have the time to fix this or even receive fixes for it from the community