The new Web version of Assassin's Creed Pirates relies on Microsoft's Babylon.js library for smooth performance
By Joab Jackson | Published: 20:58, 20 May 2014
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).
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.
Overall, Babylon.js provided the experience of "a very straightforward [game] engine," Nasr wrote.