The Second Coming of Moondoggie | EVE Online

The Second Coming of Moondoggie

2009-08-14 - By CCP Pleognost

The Second Coming of Moondoggie

Surfing is very much like making love. It always feels good, no matter how many times you've done it. - Paul Strauch

Here at Team Slartibartfast, we want you to feel good. We want you to feel good and do it a lot. Surfing, that is. Of websites, though, not waves. But how can you? It's difficult when your board browser struggles to render something as simple as a search engine.

We've long desired to provide a full-flavored Web Experience in tandem with EVE. When we first added a browser to the game, we unearthed a vast seascape of possibilities. Many of you already enjoy the services of in-game browser-driven sites, like eve-igbtools.com, the Jump Planner, or the numerous alliance-management IGB sites.

Now imagine what you could cook up if you had the same ability to enmesh EVE with the Web, but inside a browser that can do everything else a standalone web browser can do - Javascript, DHTML, stylesheets. Say hello to the new IGB, code-named "Moondoggie"!

Yeah, dude, and why not throw in a tenfold performance boost while you're at it?

It's a hefty wave to catch, but our browser has already been Atlas for five years - the IGB is perched atop a custom-written HTML parsing and rendering system. While a noble technical endeavor, this leaves to us the tasks of upgrading and extending the IGB to match the ever-shifting currents of the HTML standard. Hardly the best way for us to serve you, the player!

But, like Atlas, we now have two Pillars upon which to rest these burdens.

The first, and undoubtedly greatest, is the Heraclidean support provided by Awesomium and its Prince of Code. This library harnesses the raw strength of the Chromium browser toolkit - the muscles, knit from Webkit, that writhe cobra-like beneath the skin of Google's Chrome - and hand-delivers rendered HTML pages to us as nice 3D surfaces, which we can then readily display in our own Trinity engine.

The second, more ephemeral, pillar is the stack of utilities we're building in-house to support the browser effort. To introduce an example, one of these tools allows websites to interact with the EVE client, securely. By combining our existing "Trusted Site" concept with Awesomium's Javascript-driven interaction framework, we can allow Trusted Sites to make certain requests to your client - for example, a link on a website might allow you to import a ship fitting directly into your saved fittings.

Of course, this sort of interaction needs to be tightly locked down. Security is our number one priority. We're doing absolutely everything in our power to ensure that Moondoggie won't wipe-out. We're scrubbing squeaky-clean any input taken from the browser, and we're also snagging a trick from Chrome's playbook.

Moondoggie uses a multi-process design to render and interact with the Web. This has several implications, with two major benefits for you.

First, as all the parsing and rendering of web pages takes place external to the EVE process, any browsing-related crashes will not bring down the EVE client. The browser window may go blank, but that's easily solved with a quick click of the Refresh button - Moondoggie gets right back up and heads back out to the breakers.

Second, if you have a multi-core processor, we can farm out the gnarliest tasks to your spare cores. It also means that Moondoggie rides light on top of EVE, so your fleet-fight experience stays smooth. Even without the latest hardware, Chromium's toolkit is much speedier than the older custom-written HTML renderer.

As with any change, we do risk breaking existing IGB sites. To combat this, we're trying to get an operational version of Moondoggie out to SiSi as soon as we can. We also want to hear from the authors of IGB-driven sites - what can we do to make your lives easier?

Hang loose and happy surfing!