9
\$\begingroup\$

I've come across games that are 3D that are playable in a browser. They require a plugin to be installed to work. I guess the plugin creates a D3D window inside the browser.

How would I go about implementing something similar?

\$\endgroup\$
1
  • \$\begingroup\$ interesting question \$\endgroup\$
    – Notabene
    Jan 19, 2011 at 10:50

3 Answers 3

8
\$\begingroup\$

Unity web player (for windows) can use both DirectX and OpenGL in a window (however it abstracts your access to these APIs).

Another approach would be to implement a DirectX plugin using ActiveX (for Internet Explorer), or NPAPI (for other browsers).

If you use NPAPI, when your plugin starts up you'll receive a window handle where you can draw whatever you want (including a D3D window). If you go this route you're essentially running native code on the clients machines.

\$\endgroup\$
1
  • \$\begingroup\$ Note that the NPAPI is on its way to deprecation, so it's recommended that new web games use other technologies like WebGL (which is getting increasingly well-supported and does not require additional plugins) \$\endgroup\$
    – DMGregory
    Jun 24, 2015 at 12:50
5
\$\begingroup\$

The game you are playing might use WebGL http://en.wikipedia.org/wiki/WebGL, or something more exotic like a firefox plugin, but I don't think you can embed machine code in a firefox plugin (I'm not sure, that would be a little security flaw).

Unity implements a web plugin version of their engine, and it seems they do so with ActiveX. I don't know if it implements on Mac..., I wonder though.

The best way to find out how this game you are playing use a 3D API or any other kind of plugin stuff, is to look at the HTML source of the page, and look for object or activex or else.

\$\endgroup\$
5
  • \$\begingroup\$ Why the down vote? \$\endgroup\$ Jan 19, 2011 at 15:04
  • 4
    \$\begingroup\$ For the ludicrous suggestion you can't "embed machine code in a firefox plugin." The entire point of plugins is to supplement web content with some set of "native" code. \$\endgroup\$
    – user744
    Jan 19, 2011 at 15:28
  • \$\begingroup\$ well we can still discuss the dictionnary entries for addon, extension, plugin, mod, etc... It's still better to be precise about what does what... \$\endgroup\$
    – jokoon
    Jan 19, 2011 at 16:05
  • 4
    \$\begingroup\$ And "plugin" is exactly what has, since Netscape Navigator 2, referred to executing unsandboxed (native or otherwise) code on the client machine. \$\endgroup\$
    – user744
    Jan 19, 2011 at 16:14
  • 3
    \$\begingroup\$ netscape navigator 2, are you talking about a car, some kind of SUV ? I don't see any connection with the question ... \$\endgroup\$
    – jokoon
    Jan 19, 2011 at 16:20
2
\$\begingroup\$

Check out Firebreath for Cross-broswer support.

http://code.google.com/p/firebreath/

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .