GSOC2011-Integrate ember into the web browser

From WorldForgeWiki
Jump to: navigation, search


I'm Peter Szücs and I will work on integrating ember into the browser. This will allow to get faster into the game and it will help getting more audience.

Integration into the browser

Ember is written in C++ which needs to be compiled for given platforms, where the user wants to run it. That makes integrating ember into the browser, a much harder task. There are multiple solutions for solving this:

  • Stream the frame buffer to java. Problem: Needs to write input handling in java and stream input back.
  • Create a native plug-in for browsers from scratch. The problem is that most browsers support NPAPI (Netscape plug-in api), but internet explorer uses ActiveX. And there are many platform specific differences with NPAPI.
  • Create native plug-in for browser with firebreath. Firebreath is BSD licensed Browser Plug-in framework, which helps abstracting platform specific differences and allows integrating a window as a child window in the browser.

I choose the 3rd solution, because that’s the cleanest solution.

Integration with autotools

On Linux and Mac OS X, it shouldn't be a problem.
On Windows, mingw can't compile the plug-in, because it uses ATL.
So the only possibility is to create a DLL in MSVC, which talks to the mingw DLL.

Changes in ember needed

The platform specific window handling code needs modification. SDL and Ogre provides possibility to use existing windows, which in this case is a child window in the browser. To change the window SDL_WINDOWID() and Ogre::Root::createRenderWindow() functions will help me.


For the users who want to try the game, installation needs to be simple and fast.
There will be 2 options:

  • Offline installer: This will provide download links to the installers.
  • Online installer: This will be a java program, which detects the OS, tries to download and install everything. On platforms, which don't have prebuilt binaries, it will download and run Hammer.

64 bit support

For supporting 64 bit browsers, the plug-in needs to be compiled in 64 bit too.


Self Signed certification will allow that viruses or trojans can't change the binaries.
Certification is only needed on Internet Explorer.