With the demise of PyInSky we were left without a good beginner-level language/environment.
So here’s a new one.
- Generates native code, no VM/interpretor
- Based on Monaco (VSCode’s editor)
- Your sourcecode is stored in your browser but can be exported as a zip file
- Aims for full JS language compatibility, not API/library compatibility
- New full-res 8-bit graphics engine with sprite zoom/rotation/recoloring support
- Built-in simulator runs well even on very slow devices
- Games are platform-independent by default
Wiki documenting both the API and language
- Autocomplete with documentation
- Built-in asset conversion. Drag-and-drop an image into the file list and it’s ready
- Uses version 2 of the general palette (palette.pal), based on this paper.
Import zipped project Done
- Project sharing between multiple users/browsers
- More UI polish
- Audio support
- Tilemap support
- Hotspot profiling (partially implemented already)
- Built-in image editor
- More JS language support (see wiki for up-to-date list of what’s missing)
- Export game as a single HTML file for sharing
- Debug builds that tell you where/why a crash happened on hardware without a debugger
Sprite zooming and rotating is great!
This language/env could be also a nice intro for kids to programming and web technologies.
Should we have a game jam when the system is mature enough?
Got 404 when pressed the link…
Argh, typo. Fixed it. Thanks!
Awesome new toy!
Will Monaco allow support also Goto Definition and global search and replace across multiple files?
I’m not sure, I’m still figuring out how things work in Monaco. It does support go-to for definitions in the same file, and it knows about things declared in other files if they’re open, so it’s 90% of the way there.
Just a small update today:
- Fixed bug in browser version of vectorLength function
- Added PI / HALF_PI / TWO_PI
I’ve tried some builds with very minor modifications to the default template, and when I test in the gamebuino emulator and as a pokitto binary (running on hardware) I frequently get crashes when the little color wheel ball bounces (sometimes earlier). It looks like the crashes go away if I take out my print line, which looks like this:
text("Hello world! " + getWidth() + " " + getHeight(), 5, 5);
So… Maybe some bug somewhere in string concatenation? Or somewhere in a number to string cast?
Thanks for the bug report. Fixed it. Turns out strings weren’t triggering the garbage collector.