Feature: Muzzy Lane Moves Hardcore To The Web

Today's Gamasutra feature looks at how Muzzy Lane built its fully 3D in-browser game engine and the specific challenges it tackled, from rendering to ba
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.

Latest Jobs


Hybrid, Cambridge, MA or Chicago, IL
Quality Assurance Lead

Bladework games

Remote (United States)
Senior Gameplay Engineer

High Fidelity, Inc.

Game Interaction Designer

Fred Rogers Productions

Hybrid (424 South 27th Street, Pittsburgh, PA, USA
Producer - Games & Websites
More Jobs   


Explore the
Advertise with
Follow us

Game Developer Job Board

Game Developer


Explore the

Game Developer Job Board

Browse open positions across the game industry or recruit new talent for your studio

Advertise with

Game Developer

Engage game professionals and drive sales using an array of Game Developer media solutions to meet your objectives.

Learn More
Follow us


Follow us @gamedevdotcom to stay up-to-date with the latest news & insider information about events & more