Google’s Native Client is described by the company as a sandbox for running compiled C and C++ code in the browser efficiently and securely, independent of the user’s operating system. This, Google says, brings the performance and low-level control of native code to modern web browsers, without sacrificing the security and portability of the web.
For its part, Google is supporting developers by building and maintaining GCC and LLVM-based tool chains for developers, and is actively working on improving the open-source projects. It’s also adding features to the browser around graphics, audio and device inputs.
Cross-platform tool provider Marmalade has now added its own support for Native Client, working closely with the teams at Google and Intel to deliver such support for x86-powered devices.
Marmalade software engineer Ivan Beliy says that despite the popularity of mobile devices, other browser-enabled stationary devices such as laptops and desktop computers are still the most popular ways to access to content. It should also be noted that browsers offer a unified platform that will work regardless of a machine’s architecture or its operating system, including on mobile.
“The Google Chrome browser is available on a huge range of devices including PC, Mac, Linux and Chrome OS-based affordable laptops: Chromebooks,” he states.
“In addition, web technologies are becoming more important especially as we strive for high performance applications through the web experience. There is a constant demand to target browsers, there is an application market and millions of potential customers, so it felt like a natural addition to the comprehensive list of platforms that Marmalade supports.”
Though Marmalade already has Chrome browser support, by adding NaCL support into Marmalade, Beliy says existing apps can reach a much broader market on multi-form factor devices with little modification. Google’s Native Client also offers one of the most mature ways for developers to compile C++ into web-oriented code.
“Specific runtime environments introduce overhead – they all do – but Marmalade’s is really small compared to other solutions,” says Beliy. “Code is compiled into CPU instructions and users can count on close to native levels of performance. This has always been important, no matter how fast modern CPUs are. On the other hand we deal with web tech which means apps will be available wherever you can get Chrome installed.”
Using the Marmalade SDK technology, developers can of course target multiple platforms, and transfer their games from mobile to NaCl and vice-versa. Users just need to recompile their code for Native Client and their game will be near ready for release.
Beliy notes that, though there will always be platform adaptations to be made, business logic and graphics code will work with no changes required, thanks to its single codebase.
“With Marmalade, mobile and Chrome development are not mutually exclusive, they are complementary,” he explains. “And if your game performs well using browser technology it will open up new markets for you from mobile and desktop to Digital TVs.
“It’s just like any other device. The Marmalade SDK reduces the difference and required overhead to target Chrome browsers as well as mobile. There is no need to write NaCl specific code to operate with media resources, controls or file system.”