Oops, I Did it Again.
I didn't mean to start another real time 3D standards revolution. Really. Back in 2000, I was just looking for my next gig.
It seemed obvious: the Internet economy was going down in flames, but the game industry was red hot. So I teamed up with a southern Cal veteran from Sony Online to create a next-generation massive multi-player online role-playing game (MMPORG). Cool concept, good design-- basically Everquest for the masses. There was only one problem: we had no money.
These days it takes $20M to create and launch a MMPORG using a traditional game development approach. First, you need to develop or license a game engine-- e.g. Unreal. That's half a million bucks right there at a minimum, assuming you’re smart and license it. Then, you spend another $3-4M to design and develop the game. Then there's $5M to build and host your network operations center (NOC). And then $10M to market it. And the whole thing will take about 2 years.
That's a pretty big league game to get into for two guys with a good idea and no money. We had a solid business idea, but little established cred in the game industry. And while games were all the rage, breaking into that business as a newbie wasn't going to be a picnic. So my partner got this bright idea: why don't we launch the game on the web instead? It’ll be faster and a whole lot cheaper.
That changed everything. Now we were talking about building a web-based system. Many game engines are Internet-enabled, in that they allow for multiple players, but most are nowhere in terms of integrating with web formats, languages, standards, i.e. the things you need to make a viable Web product... not to mention that the engine downloads are usually a whopper, because these things typically ship on CDs, not a 56k line.
I realized that we needed =shudder= a Web 3D engine.
That last time I had dealt with one of those, it was pretty traumatic.
Back in 1994 I was part of a posse that invented VRML. Remember that? VRML was one of the most-hyped and least understood phenomena of the Internet age. “Web3D-- coming to a virtual shopping mall near you!” A spectacular entrance, years of hype, and finally a lurid demise. Deader than dead... sideswiped by Java3D, kneecapped by ChromEffects and finally trepanned by Flash... all the while misused and abused... ultimately rolled up into a mighty PLATINUM armada on a one-way mission to a dead Stargate address. The tombstone would read: VRML was too early, too broken, and too poorly managed. My only consolation in all this was, compared to the subsequent excesses of Kozmo.com and DEN, the paltry $5M I blew at Intervista Software trying to democratize 3D was a pittance. Ah well, Live and Learn.
I ran screaming, and took a couple of years off.
The MMPORG project brought me back to Web 3D with some reluctance. I had been following the developments there from a distance: Macromedia and Adobe were taking a swing at it-- after half a decade of me trying to hammer this into their corporate heads, I guess they finally got the message-- and a crop of up-and-comers with spiffy names like Cult and Pulse were trying to make a dent, too. Redmond alum Alex St. John was there with WildTangent. I figured, by now, someone would have cracked the puzzle, and I wouldn't have to suffer too much pain to get a working system up and running.
No such luck.
Is That All There Is?
I approached the problem as a system architect. What technology would I need to deploy a large-scale multi-user 3D game world over the web?
- An engine - a graphics layer at a much higher level than the 3D rendering APIs DirectX and OpenGL. I needed a scalable, robust simulation system that would manage objects, animations, interactivity, behaviors, text, movies, images, etc., with a lot of built-in functionality that didn’t require hand-coding every time;
- An API – I needed a way to program the engine, not just feed it "content" for "playback." I was building a complex application, not ad banners;
- File formats – The content had to be created in well-accepted formats, giving us the widest options for cheap tools and content that could be reused in a variety of settings;
- An open architecture – Finally, I need something that integrates well with the other technologies in the web, uses standard programming languages, and could connect up to different servers for chat, streaming media, terrain, models, etc.
What did I find? Media Players. Everybody was playing the Player game, trying to own the runtime, be the next Macromedia. (I guess they didn't realize that even Macromedia didn't want to be the next Macromedia by then. They were just trying to stay afloat as the Internet ship was sinking). The only exceptions were WildTangent and Adobe. They had Engines. However, those engines were on the other end of the spectrum-- they were programmable platforms, but they didn't have support for any of the higher-level constructs; one would have to roll one's own to implement even the most rudimentary capabilities.
These technologies were barely more useful than low-level rendering APIs, for all they help they gave. And being the control freak that I am, if I was going to use someone else's stuff, it had better be *really* good. I mean, why hitch to someone else's wagon if it wasn't going to pull me far or fast enough? Also, if it broke down, I better be able to fix it myself. I didn't have much luck going down this path, and found myself asking, "Is that all there is?"
But here's where it gets really interesting. What started as an engineering exercise ended in Irony.
These newer, supposedly better, Web 3D systems were hatched during the years 1998 through 2001, when VRML was in full nose-dive. Around that time there was a massive feeding frenzy by people who had been sidelined watching us build an open real time 3D platform and praying for our failure, itching to dominate with their own flavor of proprietary thing, stone age throwbacks to a bygone pre-Internet time.
Several years earlier I had come to the painful realization that 3D developers are completely blind to the rest of the computing world when it comes to user interface, work flow, application development, basically the whole proposition of Information Technology (IT). The worst of these offenses is their continual defiance of Net Logic, i.e. sharing and cooperation, open standards, interoperability. They just don't get it, and I suspect they never will. I suppose because I am a relative latecomer to 3D-- my own dirty little secret being that I'm a compiler hacker, never studied 3D graphics in school -- I have always had something of an outsider's perspective on these matters.
Anyway, they all partied hard when VRML tanked, and my ears are still throbbing from that. Dozens of companies rushed in to fill the vacuum, proclaiming "3D has come to the Web" at last, at last, and offering their own unique brand of salvation for the content creator: YAMPs (Yet Another Media Player) by the dozen. Spinning tennis shoes! Shooter games! Avatars! Viewpoint! Cult! Shells! Pulse! Join us in the Web 3D revolution. Barf.
The spin on VRML's crash and burn was that it was a "standard for its own sake," too bureaucratic, too slow to evolve, a problem looking for a solution, a Communist plot, etc., and that these new entries could do a much better job of "responding to their customers' needs" with a proprietary format controlled by a single company with a Really Big Name. The truth behind VRML's demise is plainer, simpler and uglier than this convoluted logic: we were too early, and the products sucked. If we hadn't been too early, we could have generated enough business to stick around for another revision or two and fix things; but we were too early by a decade. And I can say with first-hand knowledge that the products truly sucked. Mea culpa; I was just a boy. Anyway, the truth didn't matter. These other guys had Karl Rove working for them, and they spun brilliantly. VRML was consigned to history's scrap heap, Big Name was going to pick up all the marbles and I would just have to sit by and watch. =Sniff=
So here's the Irony: none of that new stuff did even 50% of what VRML does. Most of it didn't even work. Despite the rather large chip that was still on my shoulder, I had been hoping, for the sake of the current project, that somebody by now had figured out how to do 3D on the Web right, and I would have a platform to work with. I was willing to come to terms with that before I could accept the idea that hundreds of the supposedly best and brightest minds in graphics and Internet software were en masse repeating the mistakes of the past.
Nope. Everybody was still doing it WRONG.
I wasn't sure whether to feel vindicated or despondent. But even as I was trying to decide between those two emotions, I was hit by a nauseating realization: I was going to have to re-invent VRML.
I Will Survive
It was my own kind of Groundhog Day. After the heavy lifting years before, the invention, evangelism, business development, and industry chess matches, I was going to have to start all over again. I didn’t even have my old code; that was bought, paid for, locked up in a vault somewhere and nobody would ever find the key again. All in all, a pretty daunting proposition. But, times and idle hands being what they were, I jumped in. Also, I must admit to a certain excitement about rewriting something from scratch. It’s the engineer in me.
Step 1 was to go see what was up with VRML. Back in 1998, as the writing was on the wall for VRML, the Web3D Consortium started a next-generation project to rescue the good bits of VRML, put a fresh face on it, incorporate XML, and add the spiffy visual features from the new generation of graphics cards. We called it X3D-- a little name magic to distance ourselves, we would eventually find that this tactic worked brilliantly-- and began work on the new spec. Now, in late 2000, I checked in with Web3D to see what was happening with X3D.
The X3D specification effort was well under way, but there was a big disconnect between the still-surviving commercial interests slogging away at VRML97 and the visionary forces within Web3D willing to break with the past in order to embrace today’s realities via X3D. I like to think I helped bridge that gap, if only by virtue of being a commercial interest willing to make an X3D pure play with very little need to hang on to VRML. More precisely, I had every desire to get as far away from VRML as I could! So, I joined up with the X3D working group, and, perhaps not surprisingly, was asked to co-chair the group before long. By 2002 we had a spec we could live with and went to ISO for standardization.
By the time Web3D had fully sucked me back in, my MMPORG game venture was history, and I was in full prototype mode with my new Flux engine, looking for a business. I didn’t mind that I had no clear idea of the direction; to me it was enough just to be back in the saddle. But more than that, I was still burning with the conviction that this was the right course: the only way 3D was ever going to reach mass audiences-- on the web or anywhere else in the 21st century— was with a standard format and an open architecture. It didn’t matter that the Internet wasn’t quite dead yet, and the proprietary behemoths were still pushing their own brands of 3D dog food; I had Right on my side.
But did I have time? I needed some customers. Luckily, they began finding me. By 2002, we had our first customers for Flux and we were up and running. By 2003, the X3D spec was in its final review stages with ISO. It looked like we were gonna make it.
Then, another Irony.
Lo and behold, the realities of business were catching up with latest pack of proprietary wannabes, and it was crash and burn for Web3D for a second time. Note to industry: virtual Shrek may make a great demo, but you can’t build a business on it. To quote the immortal words of Barbie: “Math is hard.” Simple nostrums and spinning sports watches aren’t going to change this immutable law of nature: real time 3D is a tough proposition. Hats off to WildTangent, the only one of the bunch who ever had a working business model, and mazeltov. After the dust settled, a few crafty folks-- survivors of the latest 3D wreckage-- got a Wonderful, Awful idea for saving their doomed efforts. They decided to create a Standard.
Yeah, you heard right: a standard. You see, that’s been the problem all along, they said, there is no *standard* for 3D content on the web. This is what they said, to the world, and even with a big fat straight face directly to the Web3D consortium, who had just spent nearly ten years creating not one, but two standards for real time 3D on the web and beyond.
Now, Web3D is an inclusive bunch. They have had to be, over the years, to survive the vicissitudes of this market space. But that effrontery was too much for some of us hard-liners to bear. A cold war ensued within Web3D, the details of which don’t matter for the sake of this story. I don’t intend to get into a tell-all about the insider politics of our industry. Suffice to say that the particular initiative I am alluding to was a non-starter, and in the end it turned out alright for us. But with Big Names behind it, that episode randomized us, and more significantly, our customers, for a while. Thankfully, only just for a while. The reason I cite the incident here is because it appears to be the first of several attempts to Steal Our Act.
You see, standards aren’t the problem, it’s just *their* standards that are the problem, or so the Newspeak goes. Fresh on the heels of quashing that particular threat from within, we see a new field of so-called “standards” for 3D content emerging, backed by Big Names and promising Great Things, all over again, again. And the tactics are getting more insidious: some of them are even stealing our requirements slides now, verbatim.
What is going on here? Is the 3D industry actually getting the new economy? Or is it just a ploy? Have they finally been pushed into a corner, and realized that in order to expand their business they have to (holding their noses) cooperate? Or is this simply a cynical strategy intended to lure in the unsuspecting customers who haven’t read the fine print about royalties? Whatever, all of a sudden, “standard” isn’t such a dirty word, and, following the tried and true formula for Stealing Someone Else’s idea, we are now in Stage 2 – claim that it was your idea in the first place.
Well, don’t believe the hype. The Emperor is buck naked and I’m here to point it out. If you want to deploy real time 3D in an open environment, across platforms and devices, over a network, integrated with data, with no strings attached, then there is only one way to go: X3D. Accept no substitutes. X3D is now the official International Standard for doing real time 3D graphics, period. It’s pretty and fast, it’s XML and programmable. It’s industrial strength for the real world, but it can do Nemo online in real time, if that’s what you’re into. And this time, it actually works. :->
As a parting shot to those who would dabble in standards, pseudo-standards and quasi-standards for real time 3D, I’ve got two words: Bring It. You’re on my turf now. This is my game and I know how to play it.
Money, Money, Money
There. Now I feel much better. Thanks for letting me vent.
You know, at a certain level, this standards stuff doesn’t matter. But at another level, it’s everything.
Standards don’t matter because it’s the applications that matter. (To the legions of people who lay this platitude on me, pretty much on a daily basis, thank you. I wouldn’t have been able to figure it out without you. I would just sit around working on a 500 page spec for its own sake, because that’s so much fun.) But try to scale these applications up, and try to reuse your content, across an enterprise or over the Internet, without standards. Just try. And even if you don’t want to use standards, your customers will eventually make you, because by now they have gotten tired of paying you too much money to rewrite the same content over and over and over again for each new application use, each new platform.
Let me be as crystal clear as I can about this: I am in it for one reason, and one reason only: Money. Moola. The Long Green. Back in the VRML day, it was enough to be famous as The VRML Guy. Now, I could care less about the fame. As an old bass player friend of mine used to say: throw money, don’t clap.
In my world view, the best and surest path to making money with real time interactive 3D over the long haul requires standards. Are they sufficient? Of course not. But they are absolutely necessary. Without standards, the market will never reach an interesting enough size. Without standards, customers will never invest in a new technology like real time 3D, unless of course it is supplied by you-know-who, and they don’t seem to be in much of a hurry. (The latest estimates I’ve heard place spinning boxes in the operating system by 2007. Sorry, Bill, but the world isn’t going to wait that long.) Without standards, real time 3D will continue wandering about its own version of the Balkans, with rich content trapped in $20,000 CAD design seats or withering away on proprietary vines, unplayable because the player company is out of business or changed its mind to meet the fashion of the day.
But it isn’t going to go down that way, because the world is ready for something better.
X3D has reignited the revolution of affordable, open, scalable real time 3D, delivered over networks, running on multiple platforms, with seamless data exchange and integrated into applications. GIS, engineering, training, manufacturing, education, defense, homeland security, corporate communications, presentation graphics, marketing, e-commerce, travel, real estate, entertainment, games, medical, pharmaceutical… it’s hard to conceive of an application area that is not *already* using real time 3D in one way or another. It won’t be long before they make the move to X3D because it makes good business sense.
It’s the only reasonable thing to do.