It's a question I've heard a lot, especially recently as we've started to get traction with our beta of our new 3D fashion community, Frenzoo.
And it's a great question. As other players are seeing, trying to build your own core 3D engine as well as application AND website on top is REALLY difficult, not impossible but only suited to the most experienced and well funded studios.
For everyone else, I'd call it foolhardy. Before adopting Unity we learned this lesson the hard way.
Our first attempt
The first version of Frenzoo back in mid 2007 used our own core 3D technology built up in C++ from Cal3D/OGRE components. At 100 MB it was very much your traditional fat client ala SecondLife. We were very proud of the tech we built - avatars, environments, room customization in 3D and chat... but creating and debugging all the low level tech left very little cycles to focus on anything else...
Every day spent debugging a low level OpenGL or graphics card driver problem meant one less day on improving the UI, or fulfilling a user request and growing the user base...
When we went ahead and launched this first beta we found that the time to install was a significant barrier. Many canceled out when they saw how long it was taking to install and the space it was taking. Lack of MAC support was a problem that started small but gradually got worse.
But perhaps the biggest challenge with that our fat download client wasn't' integrated into the web. It sat apart from the browser. We couldn't add features at web speed, we couldn't integrate and mashup, couldn't translate automatically..even basic things like copy & paste were painful to support!
After a few months of this, we knew we had to make a difficult decision and choose a different approach or fade away. It was time to search for a platform that would let us focus on our unique value and not spend most of our time re-inventing the wheel.
The Hunt for in-browser 3D platform
We approached the search for a new platform with a clean slate. We drew up a matrix reviewing over 10 different options with all the pros and cons...and spent almost a full month on research, prototyping and finally selection.
Flash whilst very attractive for reach reasons was ruled out for not supporting 3D rendering in hardware and limiting our long term feature plan and positioning. Side note- we architected our application in a modular way to be able to use Flash as 3D platform in the future if/when it does support it though.
Shockwave 3D? Too buggy and unstable for us to consider, and further development on that platform was in question which made it too risky. There were several other platforms that seemed interesting but digging deeper had too many problems.
The Shortlist
Finally, it came down to 2 choices. Java3D was one of them.
Open source = free = always good for a startup right? It in theory let us get hardware rendering without additional install for those Java equipped machines. We went ahead and built a prototype using Java3D and got 200 friends to help test for us, over a really diverse range of machines. The results were not encouraging. Some form of installation process was still required for most machines, and that was a painful and confusing process. Java auto-start seemed to often not, not to mention problems with Java just not doing what it was meant to do on different machines.
Also on further digging in we found out that it wasn't being actively developed by the original programmers. Seeing all the real-world issues was a big downer, as on paper Java3D had looked like a good and free option!
...and then there was one
In paralel we also built the same prototype using Unity3D and tested with the same
200 friends. We found a significantly better percent of people who had
no trouble with getting the plugin and seeing the 3D animation, and the
graphic quality was good even in lower spec machines.
Happy with the results, we summarised the pros and cons of the platform:
- Install required for users
- Some bugs we saw with IE and Safari
- Price (compared with open source alternatives)
- Low rate of Unity plugin penetration
- MAC only development (back then, now Windows is supported)
PROS
+ Tiny client size: very fast to get
+ Seamless install: single click install without requiring a browser reload
+ Support for hardware and software rendering - transparent to us
+ Support for MAC and all the key browsers
+ Great authoring tools
+ Support for cacheing of assets, cutting bandwidth and user delay
+ Price (compared with the well known 3D game engines)
+ Mobile and console support - good future expansion opportunities for us
+ Growing traction in the market
Taking it all into account, the decision that point was clear, and 2 days later the team had their new Macbooks and were busy coding up the new framework. Since then we haven't looked back since..
The new Frenzoo.com, powered by Unity
Within 12 months we had successfully launched the private and then recently public beta for the new site, an incredibly fast turnaround for a small startup.
This was thanks in large part to not having to worry about a lot of the 3D low level tech. Since initial beta we have then gone on to add a lot of cool features like UGC, multi-language and social integration and it's a great feeling to see the new community picking up steam. Still work to do to improve the register flow and add new features, but we're on our way.
Looking back, using Unity let us focus on our own unique strengths - creating the best web fashion avatar system, fun social features, localization and community engagement an order of magnitude better than in our previous incarnation.
It hasn't been all smooth sailing of course - as we went we found some bugs and limitations, and there is still a barrier for plugin installation for some users (albeit a small one compared with the previous large client) but so far nothing major; all have been managable.
We're happy to see all the success Unity is getting lately, it's well deserved. All up, the decision was a good one, and we wouldn't have got so far so quickly without Unity as our platform. Now on to getting masses of people around the world hooked !
ps - if you'd like any more feedback on Unity, happy to share our experiences, feel free to msg me at simon at frenzoo dt com.

Very interesting experience.
I'm not surprised to see Java in your final shortlist of 2 platforms, but at the time you were testing solutions 3DXplorer (http://www.3DXplorer.com ) was not released. It actually resolves the issues you mention with Java3D, and enables a browser-based plug-in-less platform which is unique in the industry. 3DXplorer does not use Java3D, its actually an alternative to Java3D. It brings a hardware accelerator add-on for graphics to basic Java (java 5 or 6), for which the development is continued and even enhanced (see JavaFX). The advantage compared to Unity is that it does not require any installation, runs on Windows/Mac/linux, and supports any browser (IE/FF/Opera/Safari/Chrome....)
Posted by: Altadyn | January 29, 2009 at 11:30 PM
I wish we knew about your dev work! We could have pointed you to the jMonkeyEngine which is all Java based and is in use by professional developers in released commercial games. If you are still examining servers, I hope you check out http://www.projectdarkstar.com
Let us know if we can help!
Chris Melissinos
Chief Gaming Officer
Sun Microsystems
Posted by: CMelissinos | January 30, 2009 at 08:16 AM
@Altadyn, thanks for your comment. I tried out the demo at http://www.3dxplorer.com/index_world.html however when it loaded the rendering seemed quite slow, perhaps software mode? By the way I had to click twice to "trust" the applet, but apart from that had no problem getting in.
@Chris Thanks. We did consider JMonkey which was one of better options of the 10+ we looked at. Unfortunately our experience with Java in real world testing wasn't so great due to the install / start issues on machines (I can share stats with you privately if you want). Our original motivation to go for Java was to get the no-install hardware based 3D (and also we saw Runescape and they seem to be doing just fine), but in the end we decided to go for the plugin approach.
Posted by: Simon Newstead | January 30, 2009 at 08:44 AM
Nice review on Unity3D. We also went through basically the same process about 1.5 years ago and decided to go with it.
You guys did a great job with Frenzoo. We have also built several 3D spaces based on the platform in Mesa3D. But we focus more on the casual gaming side:
http://www.sosauce.com/mesa3d/
Posted by: Jamie Lin | January 31, 2009 at 04:22 AM
Thanks Jamie, I think you're onto a good thing - casual gaming is a sweet spot for Unity (big fan of Paradise Paintball etc), will take a look at yours in more detail over the weekend, would love to share notes..
Posted by: Simon Newstead | January 31, 2009 at 04:45 AM
Did X3D get a chance in your technology solution downselect? www.web3d.org
Posted by: William O. Glascoe III | January 31, 2009 at 05:34 AM
Hi William, we did look a look at X3D but at that time we didn't see many large references and our engineers were concerned about performance with a non-compiled platforms (we wanted a platform able to scale to many detailed avatars all animating on scene at the same time - eg for catwalk etc)
Posted by: Simon Newstead | February 04, 2009 at 02:05 PM