The goal of the Emscription project is a software that will essentially allow a developer to take any project written in native C/C++ code and convert it to a highly optimized java-based format that will not only allow it to be run in the browser, but run with a very low speed penalty compared to the unconverted version.
A possible application for this would be to create a browser-based version of the Blenderplayer, allowing people to play BGE games on the web without requiring a massive undertaking by the developers.
I’m not really sure at the moment how this will handle dependencies, but the very idea at least of making it easy for every game engine dev. team in existence to add browser support is unprecedented in the world of web development.
In light of this, could this possibly be the beginning of the end of actually having to install most software outside of a web browser?
Sorry for the long post
Further all that code needs to be downloaded, compiled and executed on the end user’s machine within a browser. The code size is enormous and the download times long, though they are working on that too. For the compilation the whole source code needs to be loaded and translated into machine code within a browser. This requires a huge amount of RAM. The worst thing about it is that this depends on the actual browser. At the moment Chrome uses more memory for the compilation than Firefox, but all browser vendors are working on improvements.
All that is just to execute code. The visuals are handled with WebGL which is kind of okay to work with, but is definitely not state of the art anymore. That’s why WebGL 2 is on the way. However, it still takes time until it is available in all browsers.
Contrary to what you wrote, I believe it would require a massive undertaking from the developers and it would very likely require lots of maintenance work over time due to the enormous development speed of the involved external packages (emscripten, asm.js, WebGL, browsers).
In order for this to be optimised and useful, I don’t think it’s possible within a browser. A better try is maybe what octane were thinking, by doing on the computation server side and streaming to the client, but bandwidth would seem to be an issue.
This way it doesn’t matter about the host machine, web browsers, or ram, essentially it works like a dumb terminal.