I read somewhere that it is not advised to use it to write a “next gen” FPS lol. Long life to JOGL ;D
maybe not a cutting edge ‘next gen’ FPS, but its certainly viable (or will be soon) for web based games, probably even browsers fps games, considering all the browsers now have nice javascript JIT compilers (which are getting faster).
no-one would ever write something like that about Java, eh?
Javascript + WebGL will easily be able to catch up with Quake3 tech and beyond in the next 5 years.
The problem is the delivery model.
Would you spend 20 man years developing 3D content for a throwaway free browser game?
No.
Cas
5 years seems pretty long to me. Javascript is only 10x slower than native code, and it seems to catch up pretty quickly.
The solution is to simply run a critical part of the game on a server. Nothing new.
I don’t understand what that has to do with the number of man years spent developing content for a throwaway free browser game.
It might well be a very relevant detail to how non-throwaway systems are implemented…
Obviously, Cas referred to the fact that you have to provide the raw sourcecode to the browser, hence the game would be considered ‘throwaway free browser game’. Once you move functionality to the server, you can create a ‘longterm paid browser game’.
Indeed. But I think that the actual application of WebGL is probably slightly more limited than people may be making out. It’s not like suddenly everyone’s going to become a 3D guru overnight. It’s quite a specialist sort of field, hard even for ordinary computer scientists, and ordinary computer scientists are already an order of magnitude more cleverer than the web luvvies who currently crank out Flash.
I foresee general use being fairly rare; we might see WebGL in 3D spatial visualisations of terrain (Google Earth, Infoterra Skape (currently Java and MonkeyEngine, haha, I worked on it for 6 weeks before they threw me off the project)), shopping cart 3D product visualisations on very well-to-do sites that can actually afford to make and maintain 3D models of their wares (unlikely); and then possibly there will be some serious attempts at writing pay-for-persistence multiplayer.
Most other applications of OpenGL just simply don’t need the hassle of having to use JavaScript and getting it working in multiple browsers at a tenth of the performance: medical imaging, CAD/CAM, high-end gaming (both 2D and 3D for that matter), etc. So there will, I predict, be a flurry of excitement and cool tech demos which break on most computers, followed by a shortish period of consolidation, and then the only real uses people are likely to find for it all are those I just outlined. Plus the one I didn’t think of that makes some other guy a multimillionaire, but there you go, if I’d thought of it I wouldn’t be telling you
Cas
Actually I didn’t mean the source code at all - who cares about that rubbish - it’s the fact that people turn up at a web page, poke around for 5 minutes if you’re really lucky, then just simply forget about it and move on once the novelty’s worn off. Made much more irriating by the probably huge download of JS and jpegs required. The less investment a user has to put in to see your stuff, the less they seem to value it. An endemic problem on the web.
Cas
Well, as I mentioned already, you can still cook your sourcecode a bit. If someone wants to steal your unobfoscated Java, it’s not really that much harder than it is to steal your JS.
As Cas says, it’s the potential man-years of developing high quality content that people won’t end up investing in; where the code runs is orthogonal to that (although of course you are absolutely right that they’ll be hard pushed to snoop at any code running on the server unless something disastrous happens).
I think your analysis is wrong.
It is not a problem of who is capable to become a 3D guru.
Take a look a the work of Robert Hodgin (aka Flight 404).
How would you define him? Scientist? Graphic Designer? Programmer slash Computer Graphics?
Well, he’s all of this at the same time. No need for arbitrary boundaries.
One sure thing is that he started as a Graphic Designer. And then came Flash…
So in a sense, Flash did more for the democratization of programming among creative people than any other platform before.
Then came Processing, which introduced some of these “hybrids” to Computer Graphics in general (and by the same occasion to Java and OpenGL)
In comparison: the average “designer + potentially great programmer” is usually not ready/willing to jump the C/C++ or Java barrier.
Too complicated and not sexy enough…
In that perspective, WebGL have a huge potential, in term of the democratization of Computer Graphics Programming (and we’re not talking about games only…)
(Providing you believe that people are smart by nature, but that’s a philosophical debate )
Also note WebGL isn’t just good for 3D games, you can also do really fast 2D stuff with it, it’s already capable of speeds faster then flash.
Agreed, but a game like Minecraft seems to show that 3D webgames have a chance at making money too. Although I’d doubt it would pay for a ‘20 man year’ project, but then AFAIK Markus isn’t advertising (yet). Surely, in a few years, we can see games like Minecraft (possibly ripoffs) in WebGL.
And by that time, we probably have a 1-to-1 Java->JS converter without needing frameworks like GWT.
Why? It is not technically impossible.
Indeed, but Java used to be genuinely slow, too. You’ll blink and discover that Javascript is suddenly not so laughable, either. Of course there will still be people who have their prejudices against it, just as there are now with Java. No offense, but the kind of attitude you display is entirely consistent IMHO with the one that has prevented Java from being adopted by the game industry… and let’s face it, there are no Java FPSs to compete generation-before-last AAA titles - technically feasible or not.
@arielm
Music to my ears. I’d put myself in a similar category, although unfortunately as yet far less prolific… I’m sure Hodgin wouldn’t be one to be defensive and fanboi-ish about his tools; he’s concerned with results.
Have no doubt, in 5 years JS will be as fast as Java is now. It’s just a pretty horrible language to work with in some ways. Great in others though. Hm.
Main problem is still, as ever, missing video drivers and lack of deployment. WebGL enabled browsers will be thin on the ground for a lot longer. Then WebGL enabled browsers with super fast JS engines will be a few more years after that. In the meantime all this stuff works right now today out of the box with Java 6u10 and LWJGL and JOGL and Java 6u10 is out there in fairly great numbers and it’s only getting more ubiquitous.
Cas
Agreed. I expect that along with with the performance improvements and ever increasing complexity of systems built on it, we’ll also see some great steps forwards in IDEs etc. Just think, not so long ago JS debuggers were (I gather) unheard of; now web browsers typically have integrated debuggers that are not too shoddy (notwithstanding Firebug which I’ve had trouble with basics like it not stopping at breakpoints)…
I guess vagueries (sp?) of dynamic typing and such might be possible to communicate via warnings etc while the programmer is typing. And at least it has closures
The missing video drivers will be resolved too over time. Windows Vista and newer uses 3D acceleration in Aero, so there must be 3D drivers available (and stable), OpenGL ES for web browser can be implemented using D3D. Mac OS X has good support for OpenGL. Linux can have problems, but that’s normal on this platform.
omg I forgot how ugly javascript is :o
If you haven’t done so already, I recommend to download the firefox nightly and just give a few WebGL demos a test run:
http://blog.vlad1.com/2009/09/18/webgl-in-firefox-nightly-builds/
http://learningwebgl.com/lessons/lesson10.5/
Then you’ll really know what we are up against.
For JOGL to reach this level of integration with the browser, I need several things to happen:
- magic certificate
- no applet warning
- plugin2 deployed on macs
- dare I mention startup performance…
- multi-tab fix for firefox - ie the one where the same applet is drawn over every tab content.
Sun haven’t managed to solve these issues during the lifetime of JOGL (4 years?), and now it looks even less likely to be solved (at the Java level at least)
So what does WebGL give me:
- all the above issues go away.
- My dependency moves away from a platform specific plug-in (Java), and into a browser dependency. (does IE have WebGL, i doubt it…)
- A browser dependency actually opens up all the none desktop devices, eg: Android, iPhone, Tablet, mids, netbooks, other smart phones etc
- The major browser players are really pushing this tech. WebGL is already in nightly build for firefox so will probably hit a Q2 release?
- An absolute nightmare porting all my Java to javascript
What I don’t get:
- My favorite language - obviously Java
- My fav development tools - eclipse & yourkit
- Good networking support (although HTML5 WebSockets should also solve this)
- Obfuscated bytecode
So I’m 100% hoping that JOGL can deliver, but the next months are going to be critical from my side.
Peter
WebGL on IE can be pretty easily fixed by requiring chrome framework plugin, its a single click install and if it does take off MS will be pretty quick to add a D3D backend version of IE.
also some big sites already require IE to have chrome framework installed
http://news.cnet.com/i/bto/20090929/chrome_frame.png
but yeh, opengl java applets are up against some serious competition (Silverlight is also looking really good). If Sun/Oracle don’t drastically do something about Java’s current clientside state, its not gonna end well for them (browser market share that is).