Google offers: one game, one code-base, many platforms
Google has announced PlayN, which it describes as an “open-source cross-platform abstraction layer that uses the GWT compiler to take one code base written in Java and compile it into targets that run it as HTML5, Flash, Java, or as a native Android application”. The idea is to simplify and economise games development, which Google helpfully reduces to the snappy soundbite: “One game, one code-base, many platforms”.
Creative Flash developer Iain Lobb told us that the general idea is sound, due to the divergence of different platforms and the need to target them all without rebuilding an application in many different languages. He noted that Adobe AIR, Unity3D and some others are trying to solve the same problem, and PlayN’s choice of Java is an “okay choice of language, which is quite widely known, and easy to learn”.
But Lobb had some concerns: “I notice it wants you to use Git, Eclipse, Maven and Ant, a complicated stack of technologies that may put off casual developers.” Lobb is also troubled that PlayN doesn’t directly target iOS (“That’s losing the biggest mobile market already”) and he maintains that Flash developers should stick to ActionScript, to be able to access all Flash’s existing libraries like TweenMax. “In fact you could make the argument that for any of the platforms it targets, you’re going to lose platform-specific features,” he added.
Native vs the web
As for PlayN’s impact on gaming, Hawkes told us it won’t hurt the industry and that it could be handy for developers who want to target the devices PlayN supports. “But if HTML5 is already good enough for your game, using something like PlayN will overcomplicate matters,” he warned. “What I mean by that is you would be writing code in Java and porting it to HTML5, rather than just writing it in HTML5 the first time. Another way I can see this being detrimental is that it’s giving the impression that it’s okay to pander to closed and native environments instead of targeting and improving open environments like HTML5.”