The Advent of Web 3D

Ah… where to begin. I know I’ve needed to get around to telling these stories because I suspect that they will be considered important Internet history one day. There is so much garbage that people think they know about it that I haven’t exactly been eager to suffer the ignorant ranting’s from readers “correcting” me about events they had no personal experience with. I’m also uncomfortable trying to tell the complete history about related events I wasn’t personally involved with. For the purposes of this blog, I’m simply going to recount what I did and what I remember which was a long time ago and may certainly suffer from some embellishments and omissions owing to my advanced age and senility. To keep this first pass readable I’m going to skim a bit. If people want the deeper story on something let me know and I’ll dive down in a subsequent posting.

If anybody deserves credit for pioneering web 3D it is probably the Rendermorphics founder and former President Kate Seekings. Here is why I believe that to be the case… After Microsoft acquired Rendermorphics, Kate moved from London to Redmond WA to work for me as chief 3D evangelist for 3D graphics at Microsoft. Kate was a remarkable woman. She had an amazing passion for 3D technology and its broad market applications. She wasn’t just doing her job at Microsoft, she really wanted to bring 3D and all of its myriad applications to the masses. Interestingly even though Rendermorphics and Direct3D were her babies… she wasn’t religious about promoting them. She wanted to see 3D adopted and accessible everywhere by any means and she was a genuine fan and promoter of anybody else who felt the same way she did… even Microsoft’s competitors. The earliest proponents of 3D on the web that I remember were the VRML crowd Kate used to hang around with.

A OLD bad idea for a NEW generation of idiots!

Kate was adamant about supporting 3D on the web and advocated tirelessly for Internet Explorer to support VRML. I hated the idea. The VRML people were nice folks who were passionate about 3D but I thought the whole VRML formulation was hopelessly naïve… but I couldn’t say no to Kate. We shipped a rudimentary DirectX based VRML plugin with an early version of Internet Explorer that nobody remembers and later a VRML 2.0 plugin with Internet Explorer 4.0.

“In July 1995 Microsoft released Internet Explorer 1.0 as an add-on to the Windows 95 operating system. By November the company had produced IE 2.0 for both Apple Inc.’s Macintosh and Microsoft’s Windows 32-bit operating systems. This release featured support for the virtual reality modeling language (VRML)”

Personally I only really cared about web 3D as it applied to gaming and it was clear to me that VRML was a useless technology for games. I was far more interested in the idea of making DirectX accessible via Java. Microsoft had done a diabolical deal with Sun to license Java and create a Microsoft implementation of Java to ship with Windows platforms. I say diabolical because it was Microsoft’s intention to co-opt the Java language from Sun which they did a fantastic job at. Microsoft’s implementation of Java called the MSJVM was vastly superior and faster than Sun’s. The problem with making DirectX (or OpenGL for that matter) usable from a interpreted language like Java (Yes I know the MSJVM had a JIT compiler, I’m trying to keep this simple) was that these API’s generally required a phenomenal number of rapid API calls to feed a real-time graphics pipeline at a constant rate. Interpreted languages like Java have a very high API call overhead. There’s lots of data copying and pointer fixing involved and these languages rely on virtual memory that can be paged out from under the program unexpectedly at any time, which is also highly undesirable for real-time applications like games attempting to maintain a steady frame rate. I personally believed that the future of video games lay in a genre that we now call MMOG’s which I thought might best be created in Java linked to a powerful high-level game engine that didn’t have the API call overhead associated with a low-level 3D API.

In the 1994 strategy document titled “Taking Fun Seriously” proposing that Microsoft should focus on gaming as a strategy I wrote the following;

“Connectivity will be one of the most powerful and compelling revolutions in gaming. Most games are isolationist. Certain types of fantasy and escapism are private things, but there are many forms of escapism that are social. Competition and explorations are more fun with real people. The number one selling console games are one on one combat between two or more real players. The number one selling PC game DOOM, is most fun when it is networked. Connectivity combined with other technologies may fundamentally change the business model of the game industry from writing $50 throw away applications, to building vast extensible server based game universes for many players. Multiplayer games could be bigger business on the set-top than on demand video if enabled. Social interaction also offers broader appeal in game play. Explorative, multiplayer universes are likely to be more appealing to women then traditional stand-alone conflict driven titles.”

It is little co-incidence that Ultima Online was one of the first DirectX titles, followed closely by Blizzards Diablo, built on DirectX 2. I had run the early development of the DirectPlay API which became the basis for the multiplayer games in Windows XP and the Microsoft Game Zone.

Great literature I refuse to read

“Idiots embracing Snow Crash”

The problems with delivering gaming via the browser were myriad. Most people who were connected to the Internet back then were on modems. Ubiquitous broadband adoption was still a decade away. There wasn’t a consistent installed base of consumer 3D hardware. The assets were too big, there were MANY security questions and nobody else thought it was important at the time except the sci-fi junkies who had read Snow Crash and fallen in love with the idea of virtual worlds with little clue as to what was involved in actually building them. I personally never read Snow Crash, which I probably would have enjoyed, because every time I tried to have a practical discussion about the technology infrastructure necessary to enable online gaming, whomever was listening would immediately proclaim that I had gotten my ideas from reading Snow Crash which really drove me nuts. When I would interrupt them out of frustration and say; “No, this is not from Snow Crash, these are MY ideas” they would then digress to a conversation about how much I would enjoy the book if I read it. I’d find myself in engineering meetings saying things like; “This is not a science fiction book club, we are here to ACTUALLY do this!” It was futile.

The truth was that the difficulties associated with delivering game technology in a browser were so overwhelmingly complex that we simply threw up our hands and gave up on the idea…. well… to be precise, we gave up on trying to explain how or why it was a worthy pursuit to anyone else. We were playing with ideas and technology forces that were too big for most people to wrap their heads around in a practical way. As we had done with DirectX in the first place, we simply started a secret skunk works project to try it.

Kate introduced me to a brilliant engineer named David Petchey who I hired to write a MSJVM wrapper for the Direct3D retained mode API. Retained mode was the high level Direct3D API that was more like a game engine than a driver interface. The merits of wrapping Retained Mode was that as a high level API it required fewer API calls to drive a 3D scene. It was less dependent on a steady stream of API calls to maintain a consistent real-time frame rate and thus was likely to run more smoothly from Java and be much faster than would be possible by wrapping the low-level Direct3D or OpenGL API’s. Petchey’s MSJVM wrapped demo blew people away. Nobody had ever imagined opening a web page over a modem and having it jump to life in full real-time 3D from the browser. It drew a lot of attention within Microsoft… possibly too much attention.

At that time John Ludwig was the senior executive responsible for overseeing the development of Internet Explorer at Microsoft. Bill Gates had sent his famous memo about the Internet in May of 1995 and by 1996 the entire company had been restructured around competing with Netscape. The original DirectX team including Craig Eisler and Eric Engstrom had been moved onto building the streaming media and rich media plugins for Windows and Internet Explorer. By this time my reputation for success with driving developer adoption to Microsoft platforms was such that I was frequently invited to provide input on how to craft Internet Explorer to dominate the Internet. My answer was, of course, that Microsoft should be the first to richly and robustly support highly interactive media delivery over the web. When my best attempts at explaining what the Internet might look like in a highly rich media word failed, I presented Petchey’s demo… a real-time 3D game running in a web page with real-time multiplayer interactions connecting players via a DirectPlay server. Now if you think that it is annoying to have other people ignore you and NOT listen to your point of view, rest assured that the only thing worse can be EVERYBODY paying attention to you and listening to EVERYTHING you say. After that demo, EVERYBODY wanted in on jamming Internet Explorer with rich media features.

I had arranged to have Douglas Adams (Author of Hitchhikers Guide to the Galaxy) keynote the 1996 launch of DirectX 5.0 at the Computer Game Developer Conference but Microsoft got soo excited about the highly interactive media rich vision for Internet Explorer that they pinched him from me for the February 1996 PDC launch of IE 3.0. I didn’t mind terribly because at least Microsoft was starting to embrace the idea of being “fun” instead of being sterile and formal about everything they pursued, but it was a little overwhelming… like being stampeded by your own ideas. At the time, Douglas Adams contempt for Microsoft was also well known and I agreed with his views which made it extra funny to have him subtly roasting Microsoft at their own event.

Douglas Adams, Author of Hitchhiker’s Guide to the Galaxy, keynotes the Microsoft PDC with Bill Gates in 1996.

In fact, Eric Engstrom and Craig Eisler, now working directly for John Ludwig were chartered with building a new version of Internet Explorer destined to be turbo charged with rich media capabilities. The secret project name for the browser was “Chrome”… yes you read that right. There’s a whole book about it called “Renegades of the Empire” written by Michael Drummond. Initially the vision was simply to take Petchey’s Direct3D wrapper and rebuild it as a complete MSJVM interface layer to DirectX but with all of the advanced work associated with testing, security, stability, and streaming, etc. taken into consideration.

Things started going sideways quickly however. As I said, there is such a thing as “too much” success. My arch nemesis, the Talisman group from Microsoft research had not only been busy designing horrible 3D hardware architecture’s, they also had another “secret” research project under way to create a rich media scripting language… which they thought would be just GREAT to plug into Internet Explorer and ship as our solution to delivering highly interactive web pages. Like Talisman they were able to exert pressure from a very high level at Microsoft for Eric to ship it as part of the Chrome browser. We all hated it. The technology was a slow, cumbersome, half-baked abomination. The people were bright but very naïve and knew nothing about gaming. It was one of the worst ideas EVER from my point of view. Now before I explain how we let it into Chrome anyway allow me to establish a little context;

We had invented and been wildly successful with DirectX only to have it taken away from us by the Talisman team.

I was burned out, going through a divorce and planning to leave Microsoft

Eric and Craig had killed themselves to create an amazing technology legacy only to have it taken from them because, as they were told, they lacked the “seniority” to be responsible for something that important to Microsoft.

Eric was offered a Faustian bargain. Either he could go to work for somebody more senior than him on Chrome (his product) OR he could embrace the “DirectX Media” team, try to make them successful and own it all. His choice.

“You have cojones like this if you think you’re going to be MY manager!”-Eric Engstrom (cira 1994)

Now two years earlier Eric would have said; “F**K YOU!” and single handedly destroyed the careers and reputations of everybody who presumed to touch Chrome but he had already learned the tremendous cost of casually creating many many enemies. He wanted to prove that he could own and manage large development teams the Microsoft way. Eric reluctantly agreed to “embrace” them and had a long conversation with me about ceasing to try to obliterate that side of the Talisman effort now that they were joining the DirectX family.

I recall the conversation in which Eric acknowledged that the effort to “make them successful” might result in a giant “cluster f**k”. I was unhappy about the whole idea because I didn’t believe that a bunch of Microsoft “ball scratchers” were likely to give up their cloistered ways to become highly customer centric and market driven. Eric made a concession to my concerns. He secretly shipped David Petchey’s DirectX MSJVM implementation with IE 4.0, undocumented. If for whatever reason his efforts to turn the Talisman guys into a market driven technology shipping machine failed, Microsoft would have the raw DirectX API exposed via Java to fall back on and nobody needed to be the wiser if everything worked out for the best. Rich highly interactive media and 3D support would be a feature of IE 4.0 in ANY scenario. Failure was not an option.

In 1997 Microsoft released a “DirectX Media” white paper (linked here) that does a great job of illustrating how all of those disparate technologies and ideas came together. Eric Engstrom and Craig Eisler are amazing men with a remarkable talent for making great soup out of stones.

“Geniuses who don’t know when they are being the idiots”

As usual nothing went as expected. No amount of calculation and planning can prepare you for ALL of the curve balls life throws. I was fired in June of 1997 and went on a much needed vacation. Eric Engstrom with a team of 240 Microsoft engineers and contractors built what would be named the Chromeffects media browser and although it was not the product we had envisioned, it’s media capabilities were amazing and still exceeded the media capabilities of any browser ever shipped to this day. (A shocking indictment of how disgustingly stagnant browser innovation has been over nearly 20 years.) But Chromeffects, although completed, was never shipped by Microsoft. Because of the DOJ trial, Microsoft decided to bury its Netscape destroying super browser and Eric Engstrom was forced to disband the Chromeffects team to dedicate six months of his life to preparing and testifying on Microsoft’s behalf at the DOJ trial where he took the stand as one of Microsoft’s 12 chosen witnesses.

Apple had made the shocking and scandalous allegation that Eric Engstrom had played a central role in forcing them out of the Windows media business… no idea where they got that crazy notion from…

After some much needed rest I founded WildTangent Inc. and raised 17M dollars from Silicon Valley investors on the basis of showing them interactive streaming maps running in IE 4.0 over a modem using the undocumented MSJVM interfaces to DirectX. The demo blew their minds. I later sold my streaming map patents to Google for $500,000 which they employed to create Google Maps. Google Maps look virtually identical today to WildTangent’s original mapstream demo from 1998.

*We productized the technology and posted it to stimulate the bidding between Microsoft, Google and Yahoo for the patent.

Although the Mapstream demo and eventual WildTangent Web Driver product were written in Java using Direct3D, it became possible to achieve a similar result via JavaScript in pure 2D as Google subsequently demonstrated.

With Chromeffects dead, I hired David Petchey again to create a Java based media engine the way I believed interactivity should be delivered on the web. Freed from Microsoft’s politics I acquired a company called Eclipse Games and used their streaming DirectX based 3D engine as the basis for WildTangent’s Web Driver technology. The Genesis engine was already designed to stream 3D, 2D, sound, video and interactivity over a modem. We added several layers of compression and DRM technologies to further enable it to deliver assets over a modem. There are a lot of great stories to be told here but the short of it is that WildTangent filed nearly 20 patents on all of the technologies we had to invent to stream rich media securely over the Internet.

The WildTangent Web Driver was a remarkable technology, that I’m exceedingly proud of, which has regrettably never been matched on the Internet to this day. At its peak around 2005 it had over 120M active monthly users and supported over 300 commercial 3D browser games and an uncountable number of amateur projects as well. It also provided the gaming platform for 35M AOL AIM users. It was the most widely used consumer application for Java at any point in history. It was responsible for establishing the enormous audience that WildTangent enjoys for its online game publishing business today and was the basis for what became the WildTangent Online game console application that ships on nearly all consumer PC’s from every leading PC OEM in the world.

“Idiots who THINK they are embracing Shockwave 3D when they are actually using a WildTangent Web Driver”

As amazing a piece of technology as the Web Driver was, it was relatively little known in the era in which it was most widely used. Because it was implemented as an ActiveX plugin and installed with hundreds of games people played, it was often mistaken for malicious spyware and earned a highly undeserved reputation for it at a time when spyware ran rampant across the Internet and frequently tricked kids via games into installing it on their parent’s computers. It didn’t help that we had made a secret agreement with Macromedia NOT to brag to the press about publishing WildTangent Web Driver based games on their Shockwave.com game site. The reality was that the most popular 3D games on the Internet at the time ascribed to the Shockwave 3D plugin were really running on a WildTangent Web Driver. As a consequence, consumers playing Web Driver based games on Shockwave.com often thought they were playing Shockwave 3D games and were surprised to find a WildTangent Web Driver installed on their computers. Millions and millions of them. YES we did all the pop-up agreement permission dialog stuff but nobody ever reads those. At one point in time PestPatrol declared the WildTangent Web Driver to be the #1 most reported spyware complaint on the Internet… one of my prouder achievements…

That strange agreement with Macromedia came about because Intel, like Microsoft had its own secret useless technology teams inventing useless 3D technologies for the Internet. Intel had looked at investing in WildTangent early on and brought their useless team to Redmond to look at our Web Driver technology. When I declined to take investment from Intel, they paid Macromedia to ship their junk 3D web technology with Shockwave…

“Idiots who make bad 3D technology and try to cover their tracks by getting it adopted as a web standard”

The truth was that Intel’s stuff was garbage and everybody recognized it as such. Like Microsoft’s own Talisman initiative, Intel needed to do something with it to save face so they bribed Macromedia to adopt it which Macromedia ultimately came to regret. To save face, (and make money) Macromedia distributed WildTangent Web Driver games to millions of consumers via Shockwave.com. Funny world…

Meanwhile on the other side of the game industry an old colleague from Microsoft was retiring. After years as a successful program manager at Microsoft, Gabe Newell retired. I had met Gabe at Microsoft during the effort to port Doom to Windows. Gabe had lent me a spare engineer to help with the project and consequently had been introduced to John Carmack. Gabe had done very well at Microsoft and wanted to try his hand at making video games. He licensed the source code to the Quake engine from id Software and made a little game called Half-Life, which he published with Sierra. That relationship didn’t end so well…

During a visit with Gabe at Valve, Gabe regaled me with tales of his frustrations with Sierra and publishers in general. I advocated to Gabe that he should try publishing his games online with no publisher. At the time most US internet connections were via modem. Gabe didn’t believe that it was possible to deliver a game as large as Half-Life over a phone connection. I invited Gabe to WildTangent’s offices in Redmond where I had my engineers prepare a demonstration of a 3.6Megabyte Half-Life level getting compressed down to 250K using WildTangent’s compression tools and streamed over a modem to be played in a browser over the web a few seconds later. The level was playing before his eyes even as it loaded with the textures and sounds arriving and adding themselves to the scene while it was active. Clearly the demonstration made a big impression on Gabe because he went away and built Steam freeing himself forever from the pain of dealing with traditional game publishers.

While all of this was taking place SUN decided to get into the web 3D business by introducing Java 3D in 1995.

Java 3D suffered from the same performance limitations that I described earlier associated with trying to call lots of low-level API’s in real-time from an interpreted language. It was very slow. Although there was lots of enthusiasm around its arrival there was very little use of the technology for anything but cool web demos as it was quickly discovered that using it was very limiting for any practical gaming applications. Sun of course fell apart and ceased to support it. The one interesting application of Java 3D that survives to the present day is Jagex’s Runescape implementation which pushed the Java 3D library to its ultimate limits. WildTangent ended up running away with the Java based 3D gaming market until SUN decided to sue Microsoft for… wait for it… usurping the Java standard away from them! Shocking I know…

“Idiots screwing up great platforms”

To make a long story short, Microsoft and Sun mutually annihilated Java as a widely available consumer facing web technology leaving only Flash. WildTangent was forced to abandon Java as its primary interface to the Web Driver and created the WildTangent Game Console to publish downloadable games without requiring Java support. This was a terrible tragedy for us as well as the whole industry because the Web Driver approach to delivering web 3D via Java had been tremendously successful. Not only did Web Driver based games load quickly and run great in a browser but our studios were able to produce them for a faction of the cost and development time that it took conventional game developers to write 3D games in C/C++.

While all of this was taking place, the old VRML guys apparently spent their time changing names. They became the Web3D consortium and defined the X3D “standard” (universally adopted by nobody) which was eventually adopted as part of the HTML5 specification. I had long ago dismissed VRML/X3D/HTML5 as irrelevant given that they were all well intentioned people who had no idea what they were doing or why they were doing it. Just a big industry circle-jerk to standardize on nothing useful. The entire time they were piddling around with their X3D specification dozens of online 3D plugin companies came and went, only WildTangent survived with its dedicated focus on gaming applications for 3D. Only gaming applications appeared to actually be relevant to the market. HTML5 and X3D are garbage technologies for making games. If anything, after nearly 15 years of working on online and streaming gaming technologies, it appeared to me as though the prospects for delivering rich interactive media over the web has been actively devolving with each release and refinement to HTML5 taking another step backwards. As far as I can tell the HTML5 standard suffers from the same brain damaged vision for media delivery that the Talisman and Intel efforts suffered from, only designed by a committee a decade after everybody else learned not to approach it that way from Microsoft and Intel’s mistakes. Actually to be absolutely fair, DirectX Media lived beyond the death of Chromeffects by another familiar name… it became Silverlight… another huge hit in exposing 3D on the web…

By 2009 WildTangent had achieved near total ubiquity and became (according to Mediametrix) the largest online game network in the world with more online gamers per month in the US than even Zynga. Valve consumed the last of the dying PC retail channel with Steam. With the death of Java, Flash became the media standard of last resort for the web producing a multibillion dollar market for cheap, low production value 2D games and the great hope for the future of web based media delivery is HTML5… a bad idea from the 1990’s that persists with enthusiasm to the present day among a new generation of web developers who have never made real games and don’t know why it’s a disastrous solution to web based media delivery.

I know I’ll get blasted for saying this by thousands of monkeys who think they know better but I offer this one link as proof positive that I’m right.

Microsoft embraced WebGL people. Think… why… why? There are only two reasons Microsoft embraces open standards… when they are not a threat and when they are under control… nice demo, great press, harmless, useless technology. How many years did Microsoft spend futilely pushing Silverlight their own HTML5 like platform? It doesn’t work, nobody wants it, lousy approach for web games… fail… Now that they know it doesn’t work, it’s perfectly safe to support the useless open standard… suckers…

Interestingly the WildTangent Web Driver approach to online game delivery rose from the ashes of Java in a new company called Unity based out of SanFrancisco. Unity created a WildTangent Web Driver like browser plugin that was not dependent on Java for language support. Like WildTangent Unity has gone on to enjoy widespread game developer adoption and distribution. It actually works for making and publishing online games.

Why I HATE HTML 5?

Idiots embracing HTML5

Okay it is fun being flip about it but I realize that most modern web developers do not have the depth of experience I have accumulated over the years for dealing with the challenges associated with online media delivery. Here are my top 5 reasons why HTML5 is a dead-end for game delivery;

It is NOT designed by professional game developers. Building technology to deliver commercial grade games is exponentially more complex than building cute 3D demos. Anybody who is not deeply experienced with real game production has no clue how to build browser technology that can work for actual games… which includes every engineer working on IE, Safari and Chrome browsers responsible for implementing HTML5 support.

For a core game engine to be practical and supportable on a commercial scale it must be built on a common 3D engine. Compatibility and performance issues explode exponentially trying to write a game to run on even two different game engines implemented by entirely different companies. (Google, Apple and Microsoft being the culprits in this example)

None of the companies who make the dominant browsers have any commercial interest in enabling games to perform well on their browsers for FREE. They are not interested in undermining their proprietary app businesses and do so only to the extent that the media and web knuckle heads who don’t understand points 1&2 applaud when they pay lip service to open standards while dedicating minimal resources to actually making them work.

The purpose of publishing games online is to reduce costs and increase distribution. The compatibility issues and security precautions necessary to making browser support for interactive media “safe” effectively nullify the business benefits of using it. “Security” and “Privacy” are the two code words big companies use to justify breaking or not supporting open standards until they are “safe” and “private” enough to also be… useless for paid commercial applications…

There are no proven “commercial” applications for Web 3D other than video games, which have established and proven, superior solutions for delivery and monetization. (Like the Apple App Store)

In short, idiots are designing the standards, idiots are implementing them, inexperienced idiots embrace them and shrewd platform owners use this to protect their proprietary channels where the money is really at which is GAMES. My opinion is that web UI standards are devolving backwards towards decreasingly functional UI and interactivity paradigms over time which is one of the reasons downloadable app businesses are increasingly popular and profitable. I would argue that the CORRECT approach to interactive media standards on the web would be to provide a common open-source high level media engine in C/C++ and JavaScript interface shared by all browsers, thus ensuring consistent performance on the same platforms. Without C/C++ level engine continuity, delivering a quality interactive UI experience on the web will remain a mess. Of course Google, Microsoft and Apple would never embrace such an approach because it would deny them the opportunity to inconsistently support open standards that might otherwise enable a free market for competitors to their proprietary products and services. Fortunately they can use their role as guardians of THEIR customers privacy and security to protect the rest of us from free access to superior web technology.

Now that I’ve recounted my crudely abbreviated version of events, feel free to correct my obviously false perspective (given that nobody else seems to share it) or cite a grammatical error in my treatise as proof that I don’t know what I’m talking about.

“Hey HTML5 fans, KISS IT!”-Love Microsoft, Google and Apple

<DirectAnimation and DirectMedia were the early names for what became Chomeffects and later Silverlight, the secret Java/DirectX wrapper written by David Petchey and Matt Wilson is referenced here by Kate and Eric>>

My intention was to deal with this in my architecture talk… note “Include our vigorous support for Java.” in my description.

I don’t want to do a tutorial for them. Just outline our mm java strategy, do a couple of demos, make a couple of quick changes to wow them, point them at docs and move on.

In keeping with our java mm strategy… the interesting bits are what the components do, followed by… and of course you can get at these from Java.

———-

From: Kate Seekings

Sent: Thursday, May 22, 1997 3:38 PM

To: Eric Engstrom; Jason White; Kevin Dallas; Morris Beton

Cc: Chris Phillips; Alex St. John; Audra Gaines-Mulkern

Subject: RE: The outline for the sig graph event – lets own this event too!

I’d like to see a specific DXJ session along with the others Jason is planning, as Kevin will have announced it and our positioning will need to be clarified etc.. It wd be the same tone as the CGDC – not rah rah, but practical. Wd like this to live with the consumer track.

To be clear, while DirectAnimation’s code is based heavily on what was in ActiveVRML (particularly the rendering elements), the two are very different systems in their feature set, the way they present functionality to the user, and their integration with the rest of the system and other components.

37 Comments

It is utterly fascinating to me that so many of the inexplicably bad decisions & massive failures around 3D web technology could be so succinctly summarized in one blog. As a computer engineer, I gave up a successful embedded systems consultancy to pursue a career in interactive 3D app development purely on (a) passion & vision for interactive 3D for everyone… not just gamers, (b) the evangelical wisdom & predictions of a certain ASJ during the mid-90’s and (c) the seemingly-obvious assumption that interactive 3D would run hand-in-hand with the evolution of the internet (broadband et al). The internet is now utterly pervasive, at a mom-and-dad level. Web3D is “almost” still a gamers’ niche, and only out of the internet Dark Ages because of the likes of Unity (i.e. WildTangent?!), where I now focus all of my development efforts.

I spent some time exploring animations using tools by Sencha and Adobe for HTML5 based animation tools meant to be Flash replacements and the performance and behavior across browsers was completely unpredictable. I have also played with several of the JavaScript 3d libraries and none of them had consistent performance, all had significant visual differences based on the browser or simply didn’t run. I suspect not much has changed. With some amount of elbow grease it might be possible to get something working but the pain involved is significant.

Watching the press go ape shit over every new HTML 5 “game platform” that comes along is highly laughable…they all suck, none of them will ever make money. None of them offer a distribution network or security for the code which might entice game developers. Adobe long ago found the key to the web media industry was selling the tools for artists to do sound and animation. No one aside from Unity has figured out how to do that in a browser (and don’t forget mobile)…though many are trying and failing at it. Maybe one day Adobe will return to the game, probably not though. 2d games seem to have been left out in the cold entirely…I am guessing Unity has or will do something about that eventually.

I have met some very smart people from Pixel Lab here in Seattle that managed to make a JavaScript port of Cut The Rope. The steps they had to take to create that game where quite difficult and impressive and far beyond the skill level of 99.99% of the flash game developer market. Very, very few teams are capable (or willing) to attempt HTML 5 games of that quality when given any other choices. In the case of Pixel Lab they had some monetary backing and encouragement which few others will ever receive.

As great as their port is, it will likely never be smooth in an average Android browser and…surprise….no one wants to play web based games on mobile devices because the performance nearly always is terrible. Gestures are not strongly supported in JavaScript with the accuracy, responsiveness and precision of native code alternatives. With some hacking JavaScript may be tortured into some shape but the effort is ridiculous.

I have to agree with your overall annoyance with the general media and popular opinion on the subject….it’s so misdirected. I have even worked with some extremely smart engineers in the field who absolutely refuse to come around on issues like this. PhoneGap is a great example. If you have an extremely rich UI, PhoneGap will shit itself, yet I had continual arguments about it with people who had their careers invested in HTML 5 going mobile.

In my view the marketing hype around PhoneGap and other HTML 5 applications and gaming seems to have completely fizzled…but no one ever makes a big deal when a technology fizzles….it would make all of the previous grandiose claims look stupid so instead they just move on to the next dumb tech trend, it was heart warming to me recently reading pissed off comments in a Techcrunch article about PhoneGap bitching about how much of a waste of time it turned out to be for them.

I think the entire era of games in a browser has turned out to be misdirected energy. Games were always (at best) an after thought and getting games to run properly was always a tedious technical chore involving multiple hacks or work arounds in order to bring games to the browser. As you mentioned, every major browser producer has no interest in creating a vested solution to cross browser gaming…it will never happen.

Mobile ended this era. You should be overjoyed! Finally, games are given a special place out of the browser (app stores) where they belong. They are provided with powerful 2D and 3D animation technology (Unity included, iOS 7 now includes SceneKit and SpriteKit). Monetization, marketing , microcurrency and advertising are all hooked up!

I think you should look at the era of web games as a sad tale of woe…but it will never be repeated ever again! Mobile has destroyed the traditional internet in terms of exponential growth. If you need any more proof that web gaming died with Zynga, look at the front page of Kongregate.com. Most of those games in the top rankings were there two years ago. Nothing has changed! Flash gaming has effectively died as all the talented, smart game developers jumped ship for mobile.

Web gaming is dead, long live mobile gaming. Given the growth of mobile, we will probably *NEVER* see web gaming ever again. The need to do web gaming is now obsolete…there is no reason anymore.

…to be precise it’s the advent of closed proprietary app markets on mobile that killed the web. Note that both Valve and WildTangent abandoned streaming over the Internet in favor of running early downloadable app markets long before mobile became dominant. In the absence of a common game engine across browsers or devices… it’s the only other practical way to deliver a quality game experience. Technically the trend had nothing to do with mobile, bad browsers were the CAUSE even before mobile was “a thing”

So you will probably hate me… but I am a Flash developer working for huge advertising agency. I never liked web technologies from the get go because of the inconsistency and half assed implementation. Part of the reason of why I enjoy Flash is that you could tell that it’s API’s were built by a small team with a thought towards how you would use it. Not some half baked consortium that fight over some asinine spec for 10 years before realizing it was a piece of shit when people actually start using it for the first time… While I understand that there is much to be desired for the web including Flash technologies. I guess I just expect more. I mean the first browser was built over 20 years ago and we still can’t fucking vertically center something in the god damn screen without a bunch of hacks. WTF is wrong with humanity?

Flash is one of those subjects I skimmed but could write a treatise on. I wrote a 3D engine in Flash on a lark back in 2009 and didn’t completely hate the experience. Macromedia and Adobe had… have? A great platform opportunity with Flash that they just kept…keep… failing to execute on. I have spent a lot of time with well intentioned Adobe folks advising them on how to advance Flash but they seem forever mired by the institution they work for. It’s painful to watch but I’m hesitant to be really critical of Adobe when it appears to me that they are sincerely trying to get their arms around what it means to make Flash a great game platform AND a business for Adobe. The Flash story hasn’t been written yet, but at the moment it looks like it ends grimly.

TELL me about it. I am actively involved in their beta programs and routinely speak with their engineers. VERY bright team. (Most of the ones that came from Macromedia… now gone but a few bright stars left) But they seem to be falling into the void that Microsoft did. They are jumping onto the HTML5 bandwagon so far as to drag Flash Pro into it and forcing some of their best engineers and evangelists to work for “Web technologies”…

Whatever. All I know is the world is in for a lot more ‘suck’ than they thought they would get from that shit stack. Most of those hyping the HMTL5 experience have never developed ANYTHING in their lives.

It’s a very alarming trend actually. I mean… look at the decision makers these days. Hipster douche bags that sit at coffee shops with their iPads, reading their tech blogs with hair cuts that look like their stylist had Parkison’s… They think they know it all because they use Facebook and twitter! Pfft!

Great read! Good to hear a few other html5 skeptics.
I’d definitely encourage revisiting flashes new low level 3D (AGAL). It’s miles ahead of where it was in 2009… I take a bit of work, but it actually performances pretty damn well now.

Sweet! This is an area where I’d love to learn more but there is precious little info out there on. It’s as if any news about Flash within the last two years has been kept mum or deemed unworthy to blog about. And just as Adobe was starting to take 3D seriously! All these new APIs at developers’ finger tips and hardly anyone cares.

I think there are two problems here. The hippster crowd is “jazzed” about HTML5 and don’t like to learn anything proprietary and Adobe has been struggling to adapt to online business models. Both Microsoft and Apple have made aggressive moves to block Flash adoption while paying lip service to HTML5 support… but working on other things… It’s a difficult time for Flash. My fear is that Adobe is too “nice” a company to get as aggressively competitive as they need to, to defend Flash’s fading market position. They’re also getting to 3D support very late in the game without much experience at it. 3D is many times more difficult to support than 2D software rendering. Personally I think Adobe needs to get on a war footing wrt to Flash if they want to preserve it as a platform.

From what I gather… (From experience talking with their engineers and ex employees) There seem to be two camps at Adobe, largely remnants from the Macromedia acquisition. There are those at Adobe that live eat shit and breath Flash. Then there are those who hate it with a fiery burny passion and are very vocal about it. Several years ago, Flash had the loudest presence within their walls and even outward facing. Now the tables have turned. Many former Macromedians no longer work there. Everyone’s jobs are all being transplanted to India. Pressure from the press, aging code bases, weak leadership and an increasing focus on profitability vs. innovation… it seems it is an awful place to continue developing ANYTHING… let alone an entire platform where all the pieces need to fit together like clockwork. All I can say is that I hope Unity starts incorporating general application development… They have a game development pedigree and have raving developers… PLUS it’s way better than the HTML5 circle jerk going on right now.

Well… it’s what I do. I better be! I think all of Adobe’s products are up for grabs in terms of being ripe for the takeover. I almost want to see it happen. Photoshop, Illustrator, Flash, InDesign, Premeire, AfterEffects… These are prehistoric in software terms. Sure they have new products coming out. But they are infantile. Adobe is no longer a place for new and groundbreaking. It’s where software goes to “be maintained”.

“I would argue that the CORRECT approach to interactive media standards on the web would be to provide a common open-source high level media engine in C/C++ and JavaScript interface shared by all browsers, thus ensuring consistent performance on the same platforms.”

I feel like Google is trying to go down this path right now with native client. https://code.google.com/p/nativeclient/ But adoption is minimal and no other browser vendor shows any interest. So the tool to make this possible is available but no one can seem to get traction with it.

I agree. Even so, Google has been “trying” to enable Games in the browswer in a compelling way for many years. I recall an amazing demo they used to show of virtualized DirectX games running in a sandboxed browser Window. I recall being skeptical that it could work (possibly turned out to be right) but liking the idea. Install anything you like on my PC as long as it is guranteed to be temporary, isolated from my personal information and enironment and incapable of completely dominating the UI. I don’t know Google like a I do Microsoft, but I always get a little dubious when big companies pay lip service to “Trying” to solve a problem but never quite succeed at it. Sometimes it’s an indication that needing favorable PR is the only problem they are actually addressing. That said, Google did want to establish a more defensable platform foothold on the Windows desktop at one point in time. I wonder if that is still true?

There’s a reason that the entire Windows UI and all modern applications are now built on DirectX… which was just made for “games”. Games are just UI so compelling that people will spend hours interacting with it even for no productive purpose what-so-ever. Game design is the essence of UI design. The leap I want you to take with me is that Game design is even the essence of great productive UI design. The Google maps UI is my contribution to proving that point.

I think many developers think in terms of “good enough” for what they are building. They will choose tools, frameworks, and platforms solely to get the job done. This is thinking backwards! Gaming is probably the most resource intensive development goal you could hope to achieve. We should be looking at their tools, platforms and techniques as a guide to get our jobs done. After all… if it’s “good enough” for games, it sure as hell will be more than adequate for whatever crap we have been working on!

Why are video games so much better designed than office software?
Because people who design video games love to play video games.
People who design office software look forward to doing something else on the weekend.

It’s funny who gets offended when you refer to a large unspecified group of people as “idiots”. I don’t mean to disappoint you Elliotgeno, despite your apparent identification with the “idiot group” I was not referring to YOU. It’s the “educated idiots” that I find more fun to ridicule. They would be the set of highly intelligent technology professionals that build and control the technology platforms everyone else relies on. The “educated idiots” are the smartest people they know and therefore lack the capacity to identify themselves as “idiots”. Their pride obstructs their capacity to learn from their own and more importantly histories mistakes and their self interest motivates them to abuse their positions of power to their own advantage at the expense of entire markets that depend on them. If you follow my blog regularly you will find many stories about the occasions (in my youth of course) in which I was the “educated idiot” and came to the realization with old age and reflection that I had behaved arrogantly and irresponsibly when I should have been humble and receptive to input.

So true. As I have been working both as a game developer / web developer / software (serious banking shit) developer. I can only say that in most cases, the so-called-educated people: Programmers with years of schools behind them. Interaction/User Experience/(or whatever they change their title to each second year) designer, web-designers/artist (usually pretty ok) that work on “real/serious” software, apps, web-design are the worst.

Plain and simple. They do not understand the technical framework, do not seem to see when their products are sluggish, unresponsive etc. They consume memory, resources in a way no game developer does. But worst of all, they with classes after classes in human-interface studies create user experiences that are hard to understand, illogical and simply put not working.

And still they often get more credit and people believe they work is more advanced compared to “just games” And a lot of clients did not even see how bad the resulting product was.

Come to think of it, it reminds me of the “classic art vs modern art” situation.

Luckily now with iOS gaming and apps going mainstream, people are finally shown and aware what smooth, responsive UI are. And when they start to demand it. The need for real gfx handling will push everything at least in a bit of right direction.

“I invited Gabe to WildTangent’s offices in Redmond where I had my engineers prepare a demonstration of a 3.6Megabyte Half-Life level getting compressed down to 250K using WildTangent’s compression tools and streamed over a modem to be played in a browser over the web a few seconds later. The level was playing before his eyes even as it loaded with the textures and sounds arriving and adding themselves to the scene while it was active.”

so you got access to hl sourcecode and ported it to your webdriver or what exactly did you show him?

We extracted the assets from a counterstrike level and streamed them to the Web Driver. We wrote a Java applet that allowed you to do a camera flythough of the level while it was loading. No source. Game code is very small. We didn’t demo the character assets but the level assets were big enough to make the point. We could also stream 3D models and animations at the time.

@ The Saint, I am not offended in any way! I am so excited to stumble upon your blog! I simply made an assumption (wrong) that you would hate a Flash dev, someone who simply uses technology instead of creating new technologies , and a competing technology at that… There is a LOT of unnecessary venom spewed towards flash developers as much as the platform these days. So it was a preemptive… (shields up!) So I wasn’t identifying so much with the “rah rah idiots”… This discussion is fun, fascinating and really melds well with my experience the last couple of years.

Looking on, as an outsider, I can see the entire regression of the Web, mired politics of huge corporations and absurdities in the Web crowd. I expect so much more from the Web. I really think they just don’t know any better. If you only have a Slinky growing up, how can you appreciate a PlayStation or xBox? They simply don’t have a vantage point that clues them into how bad they really have it!

Exactly! I recently got into it with someone claiming how much better HTML5 is than Flash. Because it was “Open” and “Faster” and “Blah Blah.”

This ass clown clearly has never written a line of code in his life.

My biggest points of contention with the guy went like this:

1.) “I don’t like plugins”… So you make your users download an entire web browser and turn on flags to enable shit to work? Smooth move.

2.) “The way forward is open standards”… yet standards are only good as the people that follow them. Why are you writing so many fucking conditionals if those “standards” you hold so dear are working? IF YOU SAY JQUERY I WILL BITCH SLAP YOU.

3.) “HTML5 is new and innovative – it’s the bee’s knees!” Whoa slow down there… most of these “new” capabilities have been available inside Flash for over 10 years. And it still does it better. How is any of this “new” and ground breaking? It is simply rehashing… poorly, I might add… what has been done for a decade! Not to mention all the things it still can’t do because some assholes can’t get their shit together to write a spec to save their lives… (little example:. 20 years of browser history… and there is still no unified way to vertically center shit without hacks!)

4.) “Flash is bloated”… In what way? Anyone can shit code out in any platform. It takes good developers to write good code. HTML5 and it’s brethren are not somehow immune to this. The more outrageous example I’ve seen recently was some shitty parallax scrolling website that was deemed “amazeballs” by some of our designers… It had a payload of 23 MEGS! WTF!?

5.) “Flash is a battery killer”… Decoding video is decoding video. Unless you are offloading shit to the GPU, you are burning up your CPU. It all takes energy. Regardless of what technology is using it. The only, benefit to using HTML5 is that the designers and devs using it use an ass ton of bitmaps. (hence the file size) Which are a lot easier to process than vector art. But at least experienced Flash devs know how to minimize the impact of vector art via bitmap caching.

6.) “Flash isn’t available on mobile devices” OK you got me there. But not because it doesn’t work on mobile. (I was able to develop for it quite nicely on Android) It’s because Apple chose to not allow it on IOS. And Adobe… dickless as it is… felt it wasn’t worth continuing with Android if they couldn’t get it everywhere. Besides… who wanted to play games and have rich immersive experiences in-browser on their phones? AIR apps compile directly to these platforms and that is where they chose to spend their money. Rightly.

7.) “It’s easier to develop for” At this point my jaw dropped. Don’t even get me started in the unified language or all the APIs inherently available to Flash that JS desperately tries to hobble together with an endless shload of frameworks… IF YOU SAY JQUERY I WILL BITCH SLAP YOU AGAIN.

Daily Comments

Only Microsoft would think that the solution to creating a disasterous desktop UI experience that cratered PC sales is to launch a little less of it AND incorporate it into the long lost Start Menu to "improve" it. WIndows 9 Marketing Slogan? "Windows 9 sucks less than Windows 8 and we refuse to sell you Windows 7 anymore!"