When I was a kid, I was heavily into video games and had a burning desire to create my own. However, the options for doing so were not great. One of my middle school teachers tried to introduce us to programming via creating Space Invaders in perl, which went as well as you might imagine. There were a few GUI game making applications that were all terrible and extremely limited. I eventually managed to make a game using Flash, but all the overhead of arcane Actionscript APIs was overwhelming and discouraging. I stopped programming and for several years thought I was going to go into media, creating films and animation. I eventually picked up programming again in college, but there were many years of programming experience I could have had if I had stuck with game dev.
I'm convinced that if PICO-8 existed when I was originally interested in making games, I never would have stopped programming. PICO-8 is the perfect balance of easy-to-learn and powerful. Lua is a good first language because it's so small, and encourages you to build your own solutions rather than rely on magical libraries. For example, I never knew how a list-shuffling algorithm (Fisher-Yates) worked until I needed to write my own because Lua and PICO-8 don't provide one.
The limited sprite and sound options encourage you to spend time not on the assets but on the gameplay (the code). It's quick to get things on screen and working because the PICO-8 API is simple, logical, and not arcane (cough Actionscript cough).
Basically, it introduces programming in an instant-gratification way that's able to grab and hold a child's attention, while still being powerful enough to produce games that aren't hamstrung by toy programming languages.
My first Basic experience was on a VIC-20, and I later got my own C64 in 85.
Great computer to learn on but I don't think I would have got far without the Programmers Reference Guide.
So I think Pico8 or Scratch are cool in the sense that they give you an environment to start programming. But OTOH, if what you look after is AAA games, then you'll soon be confronted to a brand new wall, ie : DirectX, GPU, C++ whatever. Now I rememeber of Processing which is cool too.
Also of note: it was made by the creator of Voxatron (the only game I know of that really explored voxels), and is available as a $5 add-on to that.
Wikipedia page told me of a pocket computer preloaded with PICO-8: Pocket CHIP[1]. It seems to be exactly what the OP was asking for.
Alas, the Kickstarted company went belly up, failing to deliver all the preorders.
[1]https://en.wikipedia.org/wiki/CHIP_(computer)#Pocket_CHIP_an...
Really too bad that the company went under.
I'm going to snatch one on eBay before this thread really picks up.
Key weaknesses of Pico-8 for kids learning to program:
1. The editor runs at the same resolution that the games do. Maybe this is because they didn't want to make their VM flexible enough to deal with multiple resolutions, or they just wanted to make the illusion that the Pico-8 is its own machine very consistent, but the end result is still a painful code editing experience. When I make example programs for my kids, I need to compromise between descriptive variable names and indenting code blocks.
2. Deviations from the standard lua API/libraries mean that normal learning resources like PIL have to be interpreted with an asterisk.
3. This is a minor thing, but the fixed palette is annoying. In graphical terms, Pico-8 lies roughly between the Atari 2600, 7800, and NES, but all of those systems handled colors more flexibly.
4. Splore allows children to find games that are not appropriate for their age. It's just not designed for kids and parents. My son found a game featuring smoking and thought it looked SO COOL (this was easy to disabuse him of). He also found a game that puts you in the role of a cyberbully, and the subtle psychological effects of that sort of "edgy" game aren't as easily undone with a single conversation. It is possible to mitigate this by putting whitelisted carts into the bbs carts folder and then making that folder read-only.
TIC-80 improves on the first three points. The editor is still running at the same resolution as the games, but uses a higher resolution (and the editor can optionally use a thinner font). The lua implementation is much more standard. And the palette can be changed (even per-scanline, I think). The music editor lets you draw your own waveforms, but in other respects is less intuitive than Pico-8's. (I haven't looked at TIC-80's cart browser so I can't comment on it.)
Multiple resolutions would absolutely break the "Fantasy console" feel of Pico-8, even though I understand why programmers universally hate that. To be fair a lot of people do code editing outside of the Pico-8 editor.
#4 is an interesting point. The trick here is that different parents have different ideas of what is and isn't appropriate, and of course different kids will have different responses. It seems like the answer is to maybe have a version of Pico-8 that removes splore and expands the demo carts with some universally safe, popular titles.
TIC-80 is cool btw and might be a better learning environment for kids. I don't like it (or any of the other fantasy console\pico-8 clones) quite as much as Pico-8 because they remove constraints, making them feel more like generic game editors and less like imaginary retro computers.
Indeed, which is why they won't change, which is why (for me) an alternative like TIC-80 is preferable to waiting around for Pico-8 to become what I wish it were.
The virtual console space is tantalizing, but the culture around it has different tastes from mine. For example,
>I don't like it (or any of the other fantasy console\pico-8 clones) quite as much as Pico-8 because they remove constraints
This is a pretty common sentiment on the Pico-8 boards; I understand there are people looking for a certain aesthetic thrill that comes from working within the constraints to make something unexpectedly cool. And yes, when I have time, I would like to make e.g. a metroidvania that uses individual tiles to encode 4x4 chunks of tiles to allow for a big-ass map. It just so happens that those constraints aren't necessary for, and sometimes are in tension with, the goals of a good first-coding-experience learning environment.
I also totally understand why virtual consoles almost all use BASIC or lua, but (for me, not for my kids) I wish there were an option with static types. The combination of not being able to see much code on the screen at once plus no static type checking is pretty uncomfortable for me.
At some point the question becomes why not just use Unity, BFXR, Bosca Ceoil and ASE Sprite if you want no constraints and better tools with a similar Pico-8-ish aesthetic? That question is outside of the scope of the original post, but as I piece together your ideal fantasy console, it seems like not really a fantasy console but a simple general purpose game IDE with a statically typed language.
Edit: Btw, if what you want is a simple general purpose game IDE with a statically typed language that is somewhere in-between Unity and Pico-8 I suggest you make it or at least spec out your needs more formally! I'm definitely a fan of more people making game creation tools (and software development tools in general) that fit their needs\use cases.
I actually do like reasonably low resolutions in-game rather than in the code editor. When I play with my kids I want it to feel like good graphics aren't too far out of reach, and low-res makes it easier to get to something in the range of acceptable. My own kids appreciate their own pixel art more than anything they do in Scratch, for example.
I also think I might be slightly younger than most fantasy console fans, maybe? When I was very young I had an Apple IIc, which was good for booting straight to BASIC, but most of my childhood programming occurred in the era that spanned from CGA cards to VGA, and then I left programming for a while when 3d acceleration became a thing. One quirk of this era was that tradeoffs between color depth and resolution were just a normal thing. So for me, it would be a natural thing for a retro game dev environment that simulated a fixed framebuffer size to support, say, a 256x192 256 color mode and a 512x384 4 color mode. An editor in that higher-resolution, low-color mode would be way more comfortable than in low-res. (Pico-8 does have an alternate resolution, but it's 64x64 and still 16 color- somewhat evocative of the old 40x40 mode that Apples had).
TIC-80 does almost, um, tic all my boxes. I mostly just want a higher-resolution code editing mode (for both me and my kids) and a static language (for me; my kids don't really have a notion of types (yet)). So obviously the solution is to fork TIC-80 and see what I can make it do...
My ideal machine would be a C64 and Spectrum combined, 4 commodore sound chips, screen resolution increased only about 50%, 256kB ram, possibility of running 6502 and z80 in parallel, at quadruple speed.
Could be just nostalgia, but the continuing demo scene for these computers is incredible[a] and beautiful new games also get made to the old frugal specifications.
Games can be compiled to HTML5, ando/or distributed as PNG files with all source code and assets included. There's also a builtin community game browser with ratings, etc. Some bigger name games were prototyped in Pico-8 (i.e., Celeste), and it has a lot of love in the indie community.
a) The code editing story was a bit nicer (better resolution / builtin support for external editing and reloading etc)
b) If there was some kid-specific introductory game programming content for it (even "type all this in and play around with it after" worked for me as a kid)
If are into games, check out Celeste. Just the music is reason to play this game (I played it on PS4 but all versions are equal).
* Pico-8: https://www.lexaloffle.com/pico-8.php
* Liko-12: https://liko-12.github.io/
* Tic-80: https://tic.computer/
* Pixel Vision 8: https://www.pixelvision8.com/
I have no idea how they compare to each other.
A couple on the list run BASIC! E.g. [2].
I just learned there's this thing "Windows 10 IoT", [3] a Win10 version for low power devices like the raspberri pi.
Would be interesting to try to run B8 in there!
1: https://github.com/paladin-t/fantasy
2: https://store.steampowered.com/app/767240/BASIC8/
3: https://developer.microsoft.com/en-us/windows/iot/Downloads
1: https://www.gigabyte.com/Mini-PcBarebone/GB-BXBT-2807-rev-10...
Pixel Vision 8 is more flexible and complex than the other alternatives. One KEY difference between it and the others is that you can define your own editor tools... but the way this is done means that you must save your work every time you switch from tool A to tool B, or your work in tool A will be lost! It also is built with a focus on interoperability with external tools; it isn't as focused as the others on being a cozy self-contained environment.
https://www.theverge.com/circuitbreaker/2016/7/19/12227806/p...
Unfortunately, the company has shut down, and these aren't made anymore. But it looks like they can still be found on eBay:
https://www.ebay.com/itm/Pocket-C-H-I-P-sealed-portable-hand...
I've used this Sublime Text Package which works well:
You can explain it in an afternoon. Try that with C++ or JavaScript.
Sadly they went out of business.
It would be easy to build something similar with a Raspberry Pi though.
It's a simple, 2D, open-source game engine that runs on all platforms — I'd recommend this and other sandbox-style environments to anyone getting into programming.
The pico-8 version exists as a game within the game and is great fun as well!
Website: http://www.celestegame.com/
GDC talk about development of Celeste: https://youtu.be/4RlpMhBKNr0