Tried to compile V8 for some ARMv5 (ARMv5TEJ/ARM926EJ-S [less obscure: for the GP2X Wiz homebrew handheld]) a while ago. After countless hours I finally succeeded, but the compiled binary failed at basic math. E.g. Math.log(5) worked correctly, but Math.log(5)+Math.log(5) didn’t. Everything else did work though. I gave up at that point. Since I didn’t know what the f- I was supposed to do about that.
Well, ARM support (or more precisely: support for older uncool ARM CPUs) was a bit lacking back then. It probably works fine now.
The plan was to create something simple which supports just enough of Events, Image, Audio, and Canvas to create a game. This would have allowed me to run my regular code on this device as well.
After making the V8 shell run on that device the next step would have been a prototype of this “game runner” with Java, Rhino, LWJGL, and Slick. This would have served as some kind of proof of concept. It would have also shown which pieces are absolutely necessary and how everything fits together.
The next step would have been to recreate this with C++ (GLES 1.1, libpng, libjpeg, and all that crap). Possibly with the help of other Wiz community members.
Maybe I should give it another try. The only similar thing on that device is Pygame (CPython based), but it’s unfortunately too slow for anything (and I also kinda dislike Python). As we all know, V8 is quite a bit faster than CPython. Even back then V8 would have been fast enough for most classic genres like platformers or puzzle games (CPython wasn’t and still isn’t fast enough).
A friend of mine did succeed with something similar though:
http://www.phoboslab.org/log/2010/10/impact-for-ios
Generally I do think that it would be nice to have some “game VM” for ARM based devices, Windows, Mac, Linux, and whatever else there might be. But I’d always try to mirror the browser environment as closely as possible. For one it means you can also use that code online (well… duh), but most importantly it also means that you can develop with browsers which is pretty convenient.