Ubisoft Pirate ships sail onto the Web thanks to Microsoft JavaScript library

The new Web version of Assassin's Creed Pirates relies on Microsoft's Babylon.js library for smooth performance

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

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.

Catuhe subsequently ported the code to Microsoft's Typescript, a superset of JavaScript designed to ease many of the tasks of large-scale application development.

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.

Overall, Babylon.js provided the experience of "a very straightforward [game] engine," Nasr wrote.

Joab Jackson covers enterprise software and general technology breaking news for The IDG News Service. Follow Joab on Twitter at @Joab_Jackson. Joab's e-mail address is Joab_Jackson@idg.com

Join the newsletter!


Sign up to gain exclusive access to email subscriptions, event invitations, competitions, giveaways, and much more.

Membership is free, and your security and privacy remain protected. View our privacy policy before signing up.

Error: Please check your email address.

Tags Microsoftsoftwareapplication developmentgamesgame softwareUbisoftDevelopment toolsPC-based gamesMobile games

More about AppleIDGMicrosoftSonyUbisoftXbox

Show Comments