Ubisoft's Assassin's Creed Pirates, as seen, for the first time, within a browser.

A Microsoft JavaScript library for rendering three-dimensional environments played an instrumental role in helping game developer Ubisoft build a version of its Assassin's Creed Pirates that can be run in the Web browser.

For Microsoft, Ubisoft's use of the Babylon.js framework shows how much more depth developers and designers can add into their Web games and applications with the use of rapidly advancing open technologies such as HTML5, JavaScript and WebGL.

The game "really pushes the limits of what is possible on the Web across browsers and devices," said Justin Garrett, Microsoft senior product manager for Internet Explorer.

Until now, Ubisoft only offered Assassin's Creed Pirates for smart phones and tablets; this is the first appearance of the game for the Web.

Work on this game could pave the way for Ubisoft to more closely bridge the Web and mobile versions of its games, wrote Ubisoft studio manager François Bodson in an email interview.

The Web edition of Assassin's Creed Pirates, released Monday, allows the user to captain a pirate ship through the Caribbean seas, while avoiding mines. It doesn't offer the ability to shoot other pirate ships, though it does come with controls to adjust the ship's direction, speed and weather patterns in the game.

While there is no shortage of Web games, Assassin's Creed Pirates has a number of advances, Garret said. It is one of the first games on the Web with a responsive design, he said, referring to how game scenery flows into the browser no matter the size of the window.

Nor is this game a simple side-scroller; players guide their ships forward, over a 3D ocean. The game can be easily played with touch-sensitive devices, though it also has keyboard and mouse controls for non-touch computers. It works on all browsers (though it does not run on Apple iPhones or iPads).

David Catuhe, a Microsoft senior program manager for HTML5 and open Web standards, created the Babylon.js library to help developers build games and immersive Web applications using HTML5 and WebGL (Web Graphics Library), a JavaScript library of functions for rendering three dimensional imagery.

Though Babylon.js operates as a game engine, it could be used for other forms of immersive three-dimensional Web applications as well, Garrett noted.

Ubisoft had created versions of the popular Assassin's Creed series of adventure games for a wide variety of platforms, including the Sony PlayStation, Microsoft Xbox 360, Microsoft Windows and the Apple Macintosh. Creating a browser-based version of the game would be a challenge, in that, at least traditionally, browsers haven't offered the responsiveness of a desktop application.

To produce an acceptable Web version of the game, Ubisoft needed the browser to produce a steady 60 frames per second. The development team used a two-year old GPU as a benchmark, to approximate the average game user's computer.

That the Babylon.js was well optimized, through TypeScript, helped keep memory and processor usage in an acceptable range, wrote Christian Nasr, a Ubisoft programmer on the project, in an email. Because the library was open source Ubisoft was able to add features into its game that weren't offered by Babylon.js itself.

WebGL helped as well in that it allowed the game to access GPU hardware acceleration, allowing the team to make some "awesome shaders," Nasr wrote. Shaders provide the depth and texture of colors being rendered on-screen.

The chief challenge, however, was keeping the size of the game file as compact as possible, so it can be downloaded within a tolerable period of time. "You have to minimize file size while keeping the best quality. That was a real challenge," Nasr wrote.

Community Comments

Whether you use an American company or an Australian company is irrelevant. The Patriot act guarantees access to your data if the hosting company has even a single point of presence on US soil -- and that is regardless of whether or not your company's ...

Copyright 2015 IDG Communications. ABN 14 001 592 650. All rights reserved.
Reproduction in whole or in part in any form or medium without express written permission of IDG Communications is prohibited.