The focus on interactive content in the browser offers the opportunity of many different platforms on one side, but presents a host of restrictions on the other which come with each platform. That is why we developed three different client-platforms which cover a very wide field of requirements across a multitude of games:
Our AJAX library is designed for most efficient interaction between server modules and exploit the possibilities of current browsers as far as possible, even into the area of simple 2D animations. The basic approach here is to cause the least amount of page (re-) visits and to work as dynamically as possible within the browser DOM.
Applications that run within the Flash player have the advantage that it is widely spread on user machines, coupled with a noticeable higher performance especially in graphic intensive environments. Unfortunately is it not realistically possible to display complex 3D content. For sophisticated/demanding 2D games Flash is the near ideal environment though.
Apart from proprietary (and with that the security relevant) ActiveX plug-ins, Java currently offers the only realistic solution to bring real 3D content into the web browser. The basis for that is JOGL, the Java OpenGL wrapper. This API offers the full OpenGL functionality including pixel shaders.
The performance of Java applets is usually equal to that of a C++ native client. We developed a lean game engine for the economical deployment of JOGL applications, which covers all areas from 3D rendering to full network communication over a HTTP/S tunnel.
Adobe Shockwave offers an established intermediate step between 2D content to 3D content, and is widely-used among user machines. The lacking performance and the compatibility problems of the shockwave players (it does not use 3D hardware) leaves a lot to wish for though. Those restrictions coupled with the much better performance of JOGL applications, has stopped us from implementing a client module for Shockwave.