Maes
I like big butts!

Posts: 8664
Registered: 07-06 |
Ladna said:
Nothing about those [status bar widgets] are object-oriented.
Weird, because they were practically structured in a struct status + functions working on particular instances combo. That, in my book, screams "ENCAPSULATE ME!!!" from 100 miles away. In fact, the STBAR widgets are a residue of an initial writing in Objective-C, I recall, before a change in direction was taken. Still, it shows very much, and were among the most natural things to transition to an OO form. Stuff like sectors, player object, mobjs also have functions designed to work on particular instances of them without requiring anything else. This may not have been deliberate, but sure it did map nicely. If you are still not convinced, take a look at ZDoom which actually is much more OO than Mocha Doom in some aspect.
Ladna said:
To say that this adds no novelty is pretty blind, this is an extremely novel thing.
Strange, I didn't see anyone calling this novel and "cool as shit". Maybe because it's not based on currently hip buzzwords?
Ladna said:
I can count the number of FPS games implemented in JS on my dick.
Then you must have no dick :-p (J/K, I'm sure there are a lot of Maze War like "FPS" written in pure Javascript + Canvas). Technically, this is not implemented in JS anymore than a GWT application is implemented in JS. The actual maintenance and development (and thus language semantics etc. take part in a whole other language's space and rules). I'd be more impressed with a hand-written port, personally, not with a dumb virtualization, which I consider abysmal in terms of performance and maintainability.
Ladna said:
I thought Mocha Doom was based on linuxdoom, even though you're removing limits and adding some Boom stuff? Correct me if I'm wrong, I probably am!
Yes, I started from the Linuxdoom codebase thinking that I should start from the ground up and that it would be better for learning the basics, but I now wonder if that was a wise decision and I should have started from Boom instead.
However what I meant by "not piggybacking" is that I'm not cross-compiling anything, and I actually had to re-map and study a lot of things in depth, as I can't rely on cross-compilation masking those issues for me. I could just have compiled linuxdoom into an external DLL, link to it via JNI and claim that I finally brought "Doom to Java", but really, that's just hiding a language with another.
And yeah, I'm adding more and more Boom stuff, sometimes copying them/adapting them directly, and sometimes using my own original approach to solving a problem or adding a new functionality.
Ladna said:
Is this guy gonna implement DECORATE or portals? Shit no. Then again, all we have to do is run ZDoom or EE through his thingamajigger and *poof*. This is MUCH easier than re-implementing either of those ports in Java. It's also much easier than bringing Mocha Doom (while already an impressive achievement) up to feature parity with either of those ports.
Why so negative? If enough contributors join in (just see what _D_ did with Mocha in just a few months, and I've still to merge all changes) Mocha Doom will eventually reach Boom level in features or even depart in a wholly different direction. It doesn't have to be clone-lackey of anything. The only bad thing is that a lot of time was lost and none undertook such a project seriously. TBQH, I realized that this would've been much harder and/or impossible with Java as it was e.g. 10 years ago, which might explain why earlier projects like Start or Doomcott were eventually abandoned. Surely I wouldn't want to tackle this without Java 5's programming conveniences.
Its main advantage vs something cross-compiled to Javascript is performance. Even if one day we'll have enough computrons to run e.g. a cross-compiled ZDoom in a browser at 200 fps, something based off Mocha will easily do 20000 instead (actually, in timedemos it currently achieves 60-70% of the performance of prboom+ at resolution parity and -nosound). The overhead of mimicking C's runtime environment just kills off any performance, compared to something hand-optimized for a particular platform.
Yeah, OK, it's not as buzzword-compliant as in "Whooo! It runs in a browser with Javascript *cums*", but programming-wise it's light-years ahead. Well...until someone runs Mocha through GWT and ruins everything, that is ;-)
Last edited by Maes on 06-03-11 at 14:36
|