Sponsored By

Feature: Muzzy Lane Moves Hardcore To The Web

Today's Gamasutra feature looks at <a href="http://www.gamasutra.com/view/feature/4234/moving_hardcore_gaming_to_the_web_.php?page=1">how Muzzy Lane built its fully 3D in-browser game engine</a> and the specific challenges it tackled, from rendering to ba

Leigh Alexander, Contributor

January 5, 2010

2 Min Read

With browsers capable of supporting higher quality 3D objects -- and higher-quality games -- many developers are looking at ways to flex their muscle within the web window. For Making History II: The War of the World, Muzzy Lane Software is using Sandstone, its 3D game engine for fully web-based games that supports multiplayer and social networking features, too. Today's Gamasutra feature looks at how Muzzy Lane handled its specific engineering challenges -- rendering 3D games in-browser, approaching backend services and handling content distribution. When it comes to rendering, Muzzy Lane's Matt Seegmiller explains: As it turned out, it was not all that difficult to render hardware accelerated 3D graphics in a browser window. To do so, the basic challenge (in Windows) that needs to be overcome is getting a handle to a window. (This is similar in Mac OS X or in Linux.) Most 3D-in-the-browser solutions currently solve this issue by writing a browser plug-in. However, there are two drawbacks to this. First, many people distrust custom browser plug-ins (Flash and Java plug-ins being the exception.) Second, each browser plug-in is very browser specific. Even the Mozilla plug-in architecture, that many browsers support, still often needs to be slightly tweaked for each individual browser. This eventually becomes a maintenance nightmare. Instead, the team created a Java extension -- even though Java applets generally run in a secure sandbox that makes it challenging to run the native code necessary for hardware acceleration: The way around this is to create a Java extension which is installed on the client machine. The classes in the Java extension are assumed to be trusted because the end user installed them. These classes can then load and run native code without issue. Once the Sandstone Player is installed, including the Java extension, an applet class from this extension is placed on a page. This applet can download whatever content it needs and save it to disk. Once this content is downloaded, a call is made to C++ from Java which loads C++ code that was just downloaded, essentially loading the game engine. The engine is told which downloaded package to run, whether to connect to a server, etc. Most importantly, it is given a handle to the parent window which was created by the applet in Java and accessed from C++. This gives the engine a place to render, which is actually on the web page in the browser. The full feature goes further in-depth on Muzzy Lane's bold, fascinating solution, from rendering to distribution.

About the Author(s)

Leigh Alexander

Contributor

Leigh Alexander is Editor At Large for Gamasutra and the site's former News Director. Her work has appeared in the Los Angeles Times, Variety, Slate, Paste, Kill Screen, GamePro and numerous other publications. She also blogs regularly about gaming and internet culture at her Sexy Videogameland site. [NOTE: Edited 10/02/2014, this feature-linked bio was outdated.]

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like