ForPlay is a cross-platform game abstraction library for writing games that compile to:That is, you write your game in Java and then can cross-compile it to Desktop Java, a webapp (via Google’s GWT), Android, or Flash. Quite impressive, even though some platform-specific code is always necessary. Creator Ray Cromwell gives a few more details:
[...] ForPlay is free and open source, and we hope you will make kick ass games with it!
- Desktop Java
- HTML5 Browsers
The game is built on an abstraction (ForPlay) that allows it to use the optimal path for each browser. If WebGL is present, it uses that in order to achieve the highest framerates. If not, it falls back to 2d canvas, which is accelerated by the GPU on browsers these days, but not always guaranteed to be *fully* accelerated.Two of the ForPlay creators held a talk on the technology at Google I/O. Summary:
It is written in Java, developed and debugged as a Java desktop app, and then cross-compiled at the end step via GWT. Many things in the native version have been converted to more web friendly data formats, for example, data that was in XML or LUA format was converted to JSON.
Kick-ass Game Programming with Google Web ToolkitA video  is online.
GWT does more than make awesome Enterprise Apps, it's a great tool for games too. Learn to write 2D and 3D games using HTML5 and GWT, leverage and port existing game libraries and physics engines, share game code between GWT and Android, publish to the Chrome Web Store, and of course, see demos of really neat GWT games in action.
Super Browser 2 Turbo HD Remix: Introduction to HTML5 Game DevelopmentVideo  and slides  are online.
HTML5 provides the foundation for rich and interactive experiences. Which is great, but we really want to build and play games! Learn the basics of building an HTML5 game and explore the related technologies. We'll write a simple game and give you the tools and techniques to create your own worlds and fun.