Unity, Torque3D, Google O3D, WebGl....which to choose? [closed]
for development of interactive 3d web applications, which engine is recommended?
I am aware that WebGL has been anounced to become standarized for all browsers in the near future (1~2 years).
I am afraid that by investing time into a proprietary game engine such as Unity, torque would be not great once plugin-less open source 3d engines appear (webgl, JavaScript for 3D).
Is this a stupid thing to worry about? Should I begin with Unity (its demos and tools were mind blowing).
WebGL is not a failure in the making. Speaking like it's a failure shows these peoples ignorance.
That said, if you're just starting out, explore your options. If you're looking for more eyes than just windows users, stay away from proprietary solutions. Microsoft's dominance isn't big as people think, anymore. IE is fading in popularity, thanks to their ridiculous coding.
Run on all platforms, use open standards.
Unity has three huge problems. The first is that they gratuitously seal classes in their API. This means you cannto override their functionality if you don't want to do things "thier way." Secondly, they dont expose anything but the top most layers of their API. (Example, they expose their physics system, but not the PhysX API on which it is based.) This means you cannot peel off layers of their API to build your own functionality. FInally, if you want source code so you CAN do things in a way other then they tell you to, it costs "well into the 6 figures" according to the Unity sales creature I talked to.
A wise man once said that a tool makes simple things easy and complex things possible. A toy, on the other hand, makes simple things easy and complex things impossible. By this rubric, Unity is a very nice toy, but no more.
Also note that ANY technology that requries the user to install a plug-in cannot be used in schools or libraries or other public Windows system where the user does not have administrator privledges. At GDC this year Unity made noises about a version that will deploy to Flash to get around this problem BUT there are a whole lot of unanswered questiosn about this product including performnance (Flash VM sucks) and physics (there is no PhysX API for Flash.)
WebGL has one HUGE stumbling block, that is Microsoft. MSFT hates OpenGL as it competes with Direct3D. It's likely to be a cold day in hell before they support it in IE which, depending on whose statistics you want to believe, is still 30% - 60% of the browser market. Our best hope there is that MSFT releases a "WebDX" instead and some enterprising Javascript scenegraph maker builds a layer that runn on either.
O3D is dead. It's that simple. Google has no manpower on it according to the Google guys I talked to at GDC this year. Theya re-focusing on WebGL and want others to write the scenegraph. Copperlicht looks pretty nice if thaqts the direction you want to go in.
Torque3D has a reputation for beign really buggy and, again requires a plugin to run in a web browser.
Papervision's peformance up to now has been REALLY low. We're talking a handful of flat shaded ploygons and no more. The new Flash 3D acceleration might help that. Personally I also was underwhelmed by their functionality, but look at their API yourself.
So there really IS no good answer yet to your question, sorry. I'd bet my money on WebGL except for the Microsoft problem, which is a big one.
Edit: I've started looking at Away3D 4 and I am pretty impressed so far. Its a shame that thier Webgl/Javascript version is two versions back, but you could always wrap their Flash engine in a Javascript API. Something I'm actually considering doing...
WebGL has a chance because it's not middleware, and many of you should remember that there are performance and security issues that often result from plugins. Since WebGL is native and will be in all the browsers worth using by default, its market penetration is automatic. All it needs is some good content, which many companies will use.
Also, it has backing by nVIDIA, AMD, Intel, Mozilla, Opera and Apple (Safari) to name a few. That's enough to know that it will go somewhere.
If your 3D web app is this year or next, go with Unity3D. It provides a rapid high quality development environment, that very few engines can compete with. By choosing Mono for their scripting needs, they have made it basically "choose your own language". Currently supported languages out of the box are Boo, C# and JavaScript.
If you need Linux support, join the forums, and join the people asking for Linux support. Unity seems to actually listen to their users as to what they should add to Unity3D. When i started using Unity 1 year ago, they didn't have a Windows based editor. They listened to their customer and now they do. Unity3.0 is getting Android support for the player, and as you know Android is based on Linux, so it's not a far step to a desktop Linux version of Unity3D. Mostly what Unity is afraid of on Linux is the IDIC of Linux flavors. Binaries on Linux are not guaranteed to run on every distro.
But if your 3D web app is for 5 years down the line.. By then WebGL or Google O3D might be mature enough to fit your needs. But i wouldn't count on it. WebGL is just the next implementation of the long line of failure that is VRML. It was successful 15 years ago, it's not likely to be a success 15 years from now. As for Google O3D, i toyed with it. It can do what needs to be done, but there were unexpected half second lockups. I'm sure Google will, or has already fixed the lockups. But without an IDE targeting it, development will be slow. Add on top of that having to use JavaScript, and your app loses the maximum speed your CPU could provide it. More Complex 3D apps needs a strongly typed language to achieve the maximum speed available from the CPU.
I haven't toyed with Torque3D, so i can offer no educated opinion on that subject.
To view this post and the respective links, please head over to my forums to read it. Includes 10+ WebGL library links
I would suggest C3DL, which I am currently using to develop a hobbyist game. It is early in development but so is WebGL and is also the leading WebGL library in my opinion. There are a few bugs and such because, well this technology is still considered "beta" and not a standard yet. There is just so much you can do with it and the fact that it cuts your development time WAY down. Also to "pqnb" IE does not hold the market share for browsers. Firefox does, then IE, with chrome a CLOSE third and rising, I expect by next year chrome to surpass both FF and IE. Also note that DirectX is exclusively on Windows. So if you want to hit the most people, and make a browser game I would use WebGL and test it on FF and Chrome. Mainly because by the time you get to finish the game it will be a standard and fully functional. Given development time lines and such of the average game. That is also one thing no one has really looked at. He is asking which engine to go with, being how its a browser based game he should already have some experience in HTML CSS JS and maybe XML. WebGL is about the only language most web developers can pick up and run with because it is Javascript based. Flash you would have a learning curve for Actionscript and of course the others have their languages and I have no experience in them so I wont go into any language discussion on them.
WebGL Pros
- Javascript based, Fast learning curve
- Not plugin based, and runs natively in browser. Faster over all since a third party plugin is not required
- Its OpenGL, there are hundres of tutorials already out there for it that would be simple to convert over like the NeHe tutorials, which already have been
- Plenty of Libraries to choose from: C3DL(recommended), Copperlicht, EnergizeGL, GLGE, SceneJS, SpiderGL, and more
WebGL Cons
- It is still beta and everything is in early development.
I am the original question creator.
Update: I am now focused entirely on Unity3d, since they announced they will be adding export option for Flash Player 11. Yes they may not include physics, but everything is murky right now. Nothing's set in stone. Unity just comes with everything that makes things easier to whip up a game or at least they advertise it as. I will find out.
From what I've read, Chrome implementations of WebGL use ANGLE/DirectX on Windows. I think that hiding source code will become an issue for some developers. Those developers can use Flash 11 or Silverlight. I don't think X3D will be left behind because there's X3DOM and XML3D--Not sure if VRML is going to make it or not--perhaps it will be translated to XML.
http://iewebgl.com/ i think with this one.. there's no doubt to go with WebGL
FINALLY FOUND AN ANSWER.
Since I asked this question almost 2 years ago....I have been waiting and waiting watch every day the growing flash3d.
anyways unity3d just unveiled preview of their flash 11 export function.
even physics, everything that runs on unity3d works on flash apparently....
http://blogs.unity3d.com/2011/09/01/unity-and-flash-a-sneak-peek/
WebGL is included in the latest versions of Chrome and Firefox.
If you're not convinced that WebGL is kick-ass yet, enable WebGL in a nightly build of Firefox and visit this webpage: http://www.iquilezles.org/apps/shadertoy/
Here is how to enable WebGL in Firefox: http://blog.vlad1.com/2009/09/18/webgl-in-firefox-nightly-builds/
I would choose WebGL and have a fallback on Flash with Papervision or Sandy 3D.
I say Flash 11
- Unity3D - Only 70% of users accept the download (According to unity numbers published at MIGS 2010)
- Google O3D - deprecated by Google (Now a javascript library)
- WebGL - Not yet available except as beta in Chrome and Firefox.
Flash 11 is not yet out BUT
- Has a simple API
- Will have great third party wrappers like Alternativa, Away 3D
- Will get 90% penetration within a few months of coming out
So if your STARTING your project and are on a slow homemade schedule then yes you can take that bet. I personally am.
I say, None.
Reasons:
- Unity3D - does not work on Linux, low market penetration
- Torque3D - Not yet out
- Google O3D - While a good start, it does not have a good market penetration
- WebGL - Not yet available.
My solution:
Papervision3D - Based on Flash - that is 95% market penetration and will ensure that "almost" everyone will be able to play your game.
Flash is also very mature and have a lot of game development libraries such as jiglib for physics, native mp3 playback support, video and more.
I would go for Away3D in flash. Obviously, you cannot compare performance between flash and mentioned plugins, but have look to http://www.syerit.com for example to see how much 3d is now possible in flash. Also I agree with previous post. Adobe should start pushing serious 3d in flash otherwise they will loose lot of game developers(in fact, it already started)
It depends on what you want to do. Is it games?
I've chosen WebGL. It's in versions of Chrome, Safari, and FF right now. Of course, it won't be turned on for the public at large for a while.
WebGL is already working in the nightly builds of all but IE Web Browsers. MS will definitely come up with its own proprietary solution, but someone webgl related will surely provide a plugin for IE. Check what can be already done with WebGL, for example here: http://www.spidergl.org
cheers, RB
I’ve compared Unity3D with Torque3D. Everything about the Unity3D environment is so much better (documentation, scripting (Javascript and C#), tutorials, support, and features). Torque3D is so full of bugs, it’s practically useless. You will definitely need the source code, because you have to fix their bugs. Don’t by the Torque3D binary, because you won’t be able to use it to build a game. Don’t listen to the hype or make your decision based on the pretty pictures you see on their site.
I built a complete game using one of their tutorials in a few hours, and it looks great. I used their assets. In the same period of time, I got nowhere with Torque3D. It kept deleting my terrains, and would not save the changes.
it really doesn't matter what firefox or chrome does because majority of the pc gaming market is ruled by Microsoft and Direct X
unless WebGL has microsoft onboard, it's a failure in the making. I am 100% sure microsoft will push 3d hardware acceleration through Silverlight, not in Microsoft's best culture to give things away openly.
精彩评论