Have you seen https://arcade.makecode.com ?
It's a free, open source, web-based editor for making games, and you can download games to a number of hardware boards, or play on your phone or any web browser. The cheapest hardware right now is $25 from Adafruit [0], but more hardware is coming out all the time.
Also this audience might be interested to know that soon there'll be Python support in MakeCode. More details on our language toolchain here [1]
I played with arcade.makecode.com at MS Build this year and made a Taco vs. Burgers side scroller on the MeowBit. My kids love it! My daughters and I are coding up something with a duck right now and it's uber fun! Thanks for making that platform!!
This is awesome! Is MakeCode a subsidiary of Microsoft? It looks like it’s based on some Microsoft tech similar to Google’s Blockly I hadn’t seen before. I’m curious because I’m working on a product in this space.
Yeah, we're a team at MSFT (same org as VS Code). All* our code is open source. We use Google Blockly, and we've made a number of contributions upstream to them.
What's your product?
* Our server code isn't open source, but it's basically just a node app serving a SPA. Everything is client side. Works offline too.
My product is called Devev. I moonlit the product for the past few years while working at Microsoft. I quit about a month ago to get it over the finish line. I'm still pre-launch but here are some images: https://imgur.com/a/zLS1g0t
I worked on video games for the past few years and saw many less technical colleagues empowered by tools like Unreal Engine's Blueprint (https://docs.unrealengine.com/en-us/Engine/Blueprints). I thought that the same paradigm may apply more widely but the visual languages used outside of games weren't really hitting the mark.
Devev is a framework for creating visual programming languages. They are supported through extensions. For launch I'm working on an extension which parses TS types and allows you to use the existing code in nodes. That's what you'll see in my image above. This will allow early users to tap into existing libraries published on NPM.
I don't expect much traction with the launch version and plan to target a specific domain shortly after that. I'm leaning towards a build system where you can capture your dependencies in a visual graph. One of the applications I'd been thinking about was allowing users to build and share games or other applications in a web-editor similar to Scratch.
Devev is also a JS SPA and the client editor uses Electron. The client editor supports more features like multiple windows, editors panes and plugins. Additionally the client can parse new Typescript files but not the SPA. For the SPA to parse TS I'd need to deliver TSC over the web which I won't figure out for V1.
This is really cool! I've often wondered if a Blueprint-like editting experiences could be used more broadly. Looking forward to seeing this grow. I think there is also great potential for a very approachable debugging experience.
Targeting build systems seems like a great fit as well, since as you pointed out the build DAG is naturally a graph.
I love the idea of using typescript types to define visual code atoms. We do a very simple version of that to create our Blockly blocks, e.g. block definition: https://github.com/microsoft/pxt-microbit/blob/master/libs/r...
although I'm sure you could take that much farther.
Thanks for the reply. If you have any ideas for potential use cases or want to see a short demo of what I have running so far let me know if you'd like to get in contact.
Games for Android and iOS are a real possibility, but general Android apps aren't on our radar. Our focus is CS education, and I'm not sure general Android apps would be a good fit for that.
That being said, our platform is fairly extensible so someone could create an Android Apps target. They'd need to create a new backend to target the JVM probably and some work to link with whatever pre-built Android binaries.
Not affiliated, just also interested in new and emerging easy to use game systems, and this is just the latest in a long line of them I've been playing with ..
Same. I tried it a few months ago. Navigating Phaser2 vs Phaser3 alone was so bad that it radicalized me to believe that you should just rename a project after a full rewrite.
Everything I googled would give me results in the Phaser forums and the exercise was on me to figure out which version they were using, which was 100% Phaser 2.
And the API definitely wasn't written for Typescript support. For example, just changing the physics string completely changes the API available which felt like an exercise in obfuscation.
Also found the API so unintuitive that I was trying to repurpose examples to get what I wanted which is always a bad sign to me, like hoping your question appears in an FAQ because the code is too hard to read.
Ended up using https://excaliburjs.com/ which is written in Typescript thus much less guesswork. I really didn't like my experience with Phaser.
We built a few small web games with phaser. It was very easy to start and also easy to finish. You can prototype with it very quickly and there are a lot of resources explaining things to you. Recommend.
I don't know about changes in the last 2 years, haven't used it since then, maybe it's changed for worse but can't imagine
Strange. I've found the opposite to be true. They do a pretty decent job explaining why you need a web server and how to make a basic one. Once it's set up, there are tons of examples and resources to look at.
Also this audience might be interested to know that soon there'll be Python support in MakeCode. More details on our language toolchain here [1]
Disclosure: I work for MakeCode :)
[0] https://www.adafruit.com/product/3939 [1] https://makecode.com/language