Maes
I like big butts!

Posts: 8664
Registered: 07-06 |
DaniJ said:
Whilst I hear the sarcasm and understand your point Maes, we are rapidly approaching a time where the virtualizing of another platform can be achieved with enough of a performance clearance to make it the most time and cost effective solution (vs porting to a native implementation). This is already the case where performance is sufficient or not a primary concern in fact.
Agreed, but I take that you are talking about the sort of virtualization achievable with VMWare or similar VM packages. Those are designed and optimized to run entire OSes and deliver close to 70-80% of actual performance, if you are using them on similar hardware.
Stuff like GWT or Emscripten are in an entirely different league, and work by simulating stuff inside a totally virtual machine, not emulating a concrete architecture (with possible hardware assistance), and porting the source code itself in that environment. So it's a VM (the simulated "C" operating environment) running inside another VM. If your purpose is porting code "as is" and ASAP, with all bugs and quirks, then yeah, it's TOTALLY much more convenient and quick. However it won't magically rewrite stuff for you, that's something that must be done by hand (e.g. imagine a proper Javascript Doom based on Mocha Doom, that would be MUCH easier for browsers to optimize, since there would be one less abstraction layer).
DaniJ said:
Also there is the end user convenience to consider; why wouldn't users want to be able to play all their games in a web browser, on any system they happen to have access to at the time? Ignoring all the practical issues which might prevent this, it is an understandable ideal.
Also, I agree perfectly. What I don't agree with is claiming that this latter approach is superior in every way to a native port, or even to a port to a particularly highly optimized VM such a Java (which had almost 15 years to mature into something that can look C/C++ "in the eye" or even beat it, performance-wise) or .NET, and of course their derivations (Silverlight/JavaFX).
DaniJ said:
As a Java programmer you already accept (at some level at least) that we no longer need a direct interface to the underlying hardware in order to write effective software. Is this not just another level of abstraction? Follow this chain of thought and the web browser (and the associated standards) could now be considered The One platform.
Yes, Browsers are Turing complete, but lag a decade behind environments such as Java/.NET in native performance/optimizations and even OS integration.
BTW, something that everybody seems missing here is that I don't give a rats ass about Mocha Doom being able to run in a browser: too restrictive in terms of file I/O, which would require a major redesign in how data is fetched. I intended Mocha Doom primarily as a desktop app, kinda like a "linuxdoom for the future", upon which other perhaps more future-proof stuff can be built, being it closer to modern OO languages.
DaniJ said:
Now, I'm not suggesting we all abandon our choice languages and start writing FPS games with client implementations using JSON and HTML5 canvas but you have to admit that it represents a very possible future.
It is simply something that will find its application niche with time and as it matures. There will always be proof of concept projects like "Javascript Doom", but practically it will make the development of more marketable games and apps easier (think the stuff that is played on facebook, or something like Google Docs).
BTW, the idea of running existing C/C++ code "natively" in a browser, pimped up with very similar argumentation about "development convenience", "reusing existing codebase directly" etc. was already presented years ago in that "Internet C++ VM" I linked to some pages ago. Yet that didn't quite fly (interestingly enough, there was a port of Doom to it, but I can't find any live links to it, assuming that the VM itself is actually functional).
OFC, Internet C++ came and went without making much of a splash, and now the new Rooster in the Henhouse is JS + HTML5. If THAT ever reaches the level of beating the performance levels of Java or .NET applications, if the idea of a stand-alone, desktop computer with local storage becomes a relic of the past and raw computational power becomes a total non-issue, then yeah, development is going to probably change forever. But at that point there won't be a place for something like Doom except in VERY retro emulated environments anyway, as the very concept of a stand-alone source port (or stand-alone, single player video game) will probably also be dead.
P.S.: actually the premise of that Internet C++ thing makes it sound "cool like shit" in Ladna's words, despite the fact that it didn't exactly leave its mark (well, you could say that modern JS engines + HTML5 are its grandchildren or something...)
Last edited by Maes on 06-05-11 at 17:10
|