Games in Python on OSHW
So you've bought one of the many small OSHW gaming devices. The graphics for CamelWars VII are looking great, so you'll just load them into it and start hacking away at the game code, right?
Well getting the graphics onto the thing is hard. For Gameduino 2/3/3X there is a command-line tool to do the conversion, but it's a multi-step process where you convert the images, add the resulting asset files to your project, rebuild, download and run. What everyone really wants is to drop some pictures into a folder mounted over USB, and have hardware that is smart enough to get them onto the screen with no fuss.
That's not going to happen on an Arduino - but one of the new embedded Pythons might do it, and something like an Adafruit CircuitPython M0 might do it quite easily. (Adafruit's CircuitPython is a fork of MicroPython.) With a GD3X doing the graphics heavy lifting and suitable libraries, it could make a really nice Python-based game console. CircuitPython appears as USB storage on your PC, so it's possible to drag-and-drop the game's graphics and sound straight into it.
Here's a first proof-of-concept. The prolific Kenney.nl has made a nice Tappy Plane graphic set. As with many of his 2D assets, the graphics are packed on a sprite sheet - so you get a single .png file. Another file (the "texture atlas") specifies what's where on the sheet.

This small demo feeds the .png directly into the BT815 (the EVE series all handle .png files natively) and reads the atlas file. It then draws a sample scene using a few lines of Python, element-by-element. Here it is:

The code that does the drawing is
a.background .draw0(0, 0)
a.background .draw0(400, 0)
a.rockGrassDown.draw0(220, 0)
a.rockGrass .draw0(300, 120)
a.rockGrassDown.draw0(400, 0)
a.planeRed1 .draw(100, 136)
a.textGetReady .draw(300, 136)
a.groundGrass .draw0(0, 205)
a.groundGrass .draw0(400, 205)

There's no game there yet, but another 30 lines of code would make it into a neat demo. Not bad for a few minutes of coding.
Right now this is running on SPIDriver, but it could run just as easily on the Adafruit M0. That's because it doesn't need any heavyweight modules, only the driver for the BT815 - and that's written in pure Python.
I'm quite excited about driving the EVE from Python. Quite a few people have been talking in the past year about embedded Python, and it's looking quite feasible. My CircuitPython boards are in the mail; I'll report next week on how it's working out.
Thanks for reading.