OASIS-learn-study / minecraft-storeys-maker

Minecraft extension to make your own stories in, with and for Minecraft - it's like being a movie director!
https://www.learn.study
GNU Affero General Public License v3.0
15 stars 10 forks source link

Switch from Scratch 3 to Blockly? (not MakeCode) #264

Open vorburger opened 3 years ago

vorburger commented 3 years ago

https://www.microsoft.com/en-us/makecode could be an alternative to our current Scratch 3 based approach.

I've recently used MakeCode myself while toying with a Maqueen: Slides, video & another.

From what (little) I've learnt about it so far, it looks like it's also based on Blockly, and perhaps more easy to extend than Scratch? As far as I can tell, https://scratch.mit.edu/projects/editor/'s "Choose an Extension" has a few built-in extensions, but we can't add to that, which is we (had to) "fork it" - right? MakeCode also has separate instances, such as https://makecode.microbit.org, but in https://makecode.microbit.org/#editor's "Extensions" there is a Search / Enter Project URL (note that bar on top), and the last "box" is an Import File... for an .mkcd (or .hex) file - might that be some sort of "plugin" format we could write? Or even if we ran our own instance (something like makecode.oasis.study), would it be easier than Scratch?

Of course, that gets us to basically rebuild https://minecraft.makecode.com - except that needs one to locally install some Code Connection companion app from https://minecraft.makecode.com/setup, which is Windows-only (and at least one of the Download links even seems to be broken), and seems like a "entry barrier" - I like how we're doing this here much better... More importantly, it's not clear if that's open source and thus extensible by us, or not; https://github.com/Microsoft/pxt-minecraft 404s, but on https://github.com/orgs/microsoft/repositories?q=minecraft I've found https://github.com/microsoft/pxt... but that appears to be MakeCode itself (which is open source, that's at least a start). I'm unclear if the Minecraft extension/plugin for MakeCode itself, and that Code Connection companion thing is.

@edewit I suspect you don't want to "start over", ditch Scratch, and use MakeCode - unless you're tired enough of rebasing Scratch 3? 😄

edewit commented 3 years ago

Actually it wouldn't be starting over, right now we have a pretty nice javascript api and all we do in scratch is hook that up, so when it's possible to extend this more easily it shouldn't be hard to base this on "make code"

vorburger commented 3 years ago

https://github.com/microsoft/pxt-sample

edewit commented 3 years ago

There is pxt command line utility to create an "editor" based on this, what I really like about this is that it would give us the ability to add tutorials and little roadmaps like this: image

vorburger commented 2 years ago

We re-discussed this today, and realized that especially with the #51 (and #50) based work, we actually are a bit more dependant on the "Scratch VM" already than we initially thought of... it's still possible to switch to MakeCode, or even support both with 2 "bindings" in the future, but then the Scratch background VM part would have to be re-implemented.

We also don't really see any huge benefit from switching to MakeCode from Scratch (except perhaps that we could customize it even more and not have Scratch's default blocks, but they don't really bother us that much) - especially because @edewit now longer "forks and modifies" the Scratch source code, but has a better way with a new file that just "uses and extends" Scratch.

This issue is therefore not a priority for us right now.

vorburger commented 2 years ago

@edewit iff we ever do have a reason to want to switch from Scratch 3.0 to something else, it occured to me that it will be at least worth having a discussion if we shouldn't simply be going all-in directly on Blockly (on which both Scratch and MakeCode are of course based). Just a thought for a future discussion (not urgent, let's Scratch as-is for now). Starting point for such a future discussion: What does Scratch or MakeCode actually add on top of Blockly that we really need one? I'm not entirely sure there's all that much left there.

vorburger commented 2 years ago

We discussed that MakeCode instead of Blockly makes sense. (Because it looks nicer, and has blocks shapes that map e.g. boolean instead of integer/string types.)