Flash v Unity v HTML5 v ???

119 posts

Flag Post

This thread grew out of a conversation that started in and derailed the Unity Unite11 Contest thread. So, in an effort to give that conversation a home…here we go! :)

The basic questions were:
- Will Unity take over 3D development of Flash when Stage3D (previously known as Molehill) comes out?
- Is using external plugins the right or wrong approach to rich content?
- Does HTML5 represent the right direction for future game development? If so, is it worth developing on at this point?

 
Flag Post

Flash is still stronger at what it does than “HTML5” at the same things (which I object to “HTML5” as a buzzword, as it really means “Javascript integration”).

 
Flag Post

There’s this idea than when HTML5 is totally 100% ready (read like in 5 – 10 years) it will be way better than Flash. The thing is, people who make comments like that think that Flash will stay as it is for the next 10 years.

Flash will prevail. It may be replaced one day, but not for HTML5.

 
Flag Post

To throw in my two cents, while I understand why idealists might not want dependence on 3rd-party plugins and would prefer a standards-based approach, I think realistically it’s somewhat irrelevant. The state of the industry at the moment as I see it is this:

- Flash is nearly ubiquitous already, with over a 97% install rate last I checked. While perhaps a closed platform, there are free tools, including their free official SDK, that allow you to create top-notch software for it. Stage3D is looking very cool, but I’ve yet to see how Adobe’s tools will be for it, or what the true power of it is.
- Unity3D has a much lower adoption rate than Flash, though it’s pretty good on gaming sites like Kongregate. From a power perspective, Unity3D appears to far out-perform Stage3D and offers the closest thing to native app performance that I’ve seen in a browser technology. I would guess that, at least at first, their 3D development tools will be much better than Adobe’s Stage3D tools, just because they’ve been doing it for so much longer. Adobe may catch up, but early on I imagine Unity will provide a better IDE for development of Stage3D content.
- HTML5 has some promise, but is currently not well supported in all browsers. People have to use workarounds to get it to function, and special rendering to work in older browsers. Sound is awful, which is why Angry Birds in the Chrome store, while coded entirely in HTML5, still uses Flash for sound. While it might be standards-based, (some) browsers are not exactly well known for supporting standards. While it’s nice to shrug them off as non-compliant and stupid to use, the reality is that these are often some of the most popular browsers.

As a game developer, one of your goals is to get people to play your game. Probably as many people as possible. To do this, you have to work within the system as it exists. Right now, Flash is probably more ubiquitous than HTML5-compatible browsers, so that would be your broadest audience. Unity3D provides the most powerful and impressive capabilities, so if you’ve got the team/ability to make a console-quality game, that’s the direction to go. It’s fine to try to push for better standards and better compliance to those, but until that happens you also have to exist in the now as a game developer.

So yes, it’d be a nice world if we had a great standard that ran perfect 3D on everyone’s computer, but until that happens these 3rd-party plugins offer great alternatives that have been hugely successful in bringing gaming to hundreds of millions of computers.
 
Flag Post

HTML5 has some promise, but is currently not well supported in all browsers. People have to use workarounds to get it to function, and special rendering to work in older browsers.

HTML5 is like that. The idea was to get everyone to come together and agree how “stuff” should be implemented, and instead we have a two-way division (IIRC, Firefox and IE on one side, Chrome and Safari on the other).

 
Flag Post

Flash is nearly ubiquitous already, with over a 97% install rate last I checked.

Iirc, the number was 99.7%

Unity3D appears to far out-perform Stage3D

As far as I know, Stage3D grants direct shader-based GPU access. I don’t really see how Unity3D could outperform this?

early on I imagine Unity will provide a better IDE for development of Stage3D content.

Ideally, this kind of content will be developed by 3D artists who know how to make graphics that don’t look like crud (ie: probably not programmers). Ideally, they’ll make this in programs that were not created by Adobe or Unity.

As far as I’m concerned, a language should be judged on it’s capabilities, not it’s tools. Anyone can make tools whenever and for whatever they want. (For example, flash has no “Level editor” tool, but I often make my own forgames to speed development) Capabilities are the only fundamental part of a language. (of course, efficiency, but that is considered within capabilities)

 
Flag Post

Iirc, the number was 99.7%

It’s almost certainly not that high. Most independent sources I’ve checked have Flash Player at around 96%

cite 1: http://www.statowl.com/custom_ria_market_penetration.php

cite 2: http://www.riastats.com

 
Flag Post

(responses to truefire – BIGMANONCAMPS ninja’d me)

- As reported by Adobe, the install rates vary depending on your definition, but yes, very high, and over 99% if you’re looking at Flash 9+ instead of 10+.

- If that’s true, Adobe needs to get some higher-end tech demos than what I’ve seen. So far they’ve been cool, but nothing compared to the slick demos Unity3D runs. I assumed it was performance-based, but perhaps it’s just lack of art/tech so far.

- You have a fair point with modeling, but I think the Unity3D IDE offers a lot of level design/placement tools that go beyond just artist modeling. I haven’t used it extensively, but I think it’s over-simplifying to assume that it’s just used to model.

- Yes, academically a language should be judged on capabilities (as well as accessibility – can’t get much more powerful than assembler code, but good luck with that!), but there’s a practical side of things too. Yeah, I could write my own IDE (ok, maybe I couldn’t, but in theory it’s possible), but we have to base our choice of product and platform based on a lot of factors, and good tools really is important, at least to some people.

 
Flag Post
Originally posted by Phoenix00017:

- You have a fair point with modeling, but I think the Unity3D IDE offers a lot of level design/placement tools that go beyond just artist modeling. I haven’t used it extensively, but I think it’s over-simplifying to assume that it’s just used to model.

I modeled again with Hammer (the Source SDK; Half Life, etc.) and missed some of the options I have in unity (namely being able to easily move, rotate, and resize objects in the 3D view, which Unity does better) but with Unity I miss some of the options I have in Hammer, such as a unit grid that isn’t off floating where ever the XZ plane is when Y is 0. Or the Slice tool (it cuts an object along a given plane, either making it two objects or making it two, but deleting one of them). Or a copy/paste/new object function that doesn’t put the object at the farthest renderable point from the camera (instead it raytraces from the mouse to the first drawable surface it encounters and puts the object flush with it).

 
Flag Post

I’ve been using Easel JS to create flash-like design with syntax similar to that of ActionScript but in Javascript.This just making the new HTML5 canvas element more like adobes stage and how they handle and run display objects and the file size of the whole Easel JS library is < 30kb.

 
Flag Post

HTML5 does have ways to go, I’ve made projects with both HTML5+JavaScript and Flash, and Flash is the clear winner in performance and features. Especially for games.

But it’s also very clear that our world is moving more and more towards doing things online, especially though web-apps. Alternatives like google docs will increasingly win out against heavy local programs. And it’s also pretty clear that this will be powered by HTML5+JavaScript. We are definitely not heading back to the days when so called “web designers” made a webpage entirely out of one big flash embedded in an empty .html file. HTML5 is the future, although it’s definitely not happening today, or tomorrow.

Flash has quite the adaptation rate (96% or so), but it’s also notorious for being quite heavy on alternative devices like mobiles. Apple’s products don’t have flash at all, and on Android flash drains the battery like a hungry vampire. It also integrates quite badly with things like zooming which are vital to small devices. Then there is the fact that Flash performs terribly on OSX and Linux, and Adobe seems much more interested in pushing new 3d technology than making Flash stable and fast for everything. I can with most certainly say that even if the adoption rate is 96%, flash does not run very well for all of these people. A chunk of that 96% will not be able to use anything but the most trivial of flash applications.

But most important of all, there is the fact that Flash is owned by Adobe, and Adobe is almost able to match the great Microsoft in incompetence and idiocy. Adobe is like a wet blanket holding Flash down, and I don’t see that changing in the near future. How come mouse scrolling is giving us developers so much trouble? Why can I still not integrate right clicking into my projects? Why does fullscreen not allow keyboard presses? Why can’t I lock the mouse inside flash? (Java seems to be doing it just fine without breaking the web). Why does the most commonly flash compiler in use still produce such horrible bytecode? Why do we have to ridiculously resort to things like Apparat to get functionality which quite frankly is vital to anything but hobby projects?

Stuff like this is the reason something like Minecraft could never have been created in Flash instead of Java and still have it’s popularity. The terrible poison known as Adobe will keep it that way.

 
Flag Post

I don’t think there is any incentive for game developers to leave Flash at the moment, or in the near future, but I do believe that HTML5 will start to replace Flash for new web apps and streaming videos. Companies are very keen to support the growing mobile/tablet market, and as Drakim said, Flash support on these devices typically isn’t that great, if the device supports it at all. Major site like youtube are making a gradual change to HTML5 already.

 
Flag Post
Originally posted by Drakim:

But it’s also very clear that our world is moving more and more towards doing things online, especially though web-apps. Alternatives like google docs will increasingly win out against heavy local programs.

And it’s also pretty clear that this will be powered by HTML5+JavaScript. We are definitely not heading back to the days when so called “web designers” made a webpage entirely out of one big flash embedded in an empty .html file.

Sadly, I’ve had to do this. Recently. For a modern company.

 
Flag Post

Well, I may have to stand corrected. This is a pretty impressive Flash demo:

http://blogs.unity3d.com/2011/09/01/unity-and-flash-a-sneak-peek/

Seems to have a little stuttering, but it’s much closer to what you would expect from a Unity game.

 
Flag Post
Originally posted by Phoenix00017:

Well, I may have to stand corrected. This is a pretty impressive Flash demo:

http://blogs.unity3d.com/2011/09/01/unity-and-flash-a-sneak-peek/

Seems to have a little stuttering, but it’s much closer to what you would expect from a Unity game.

A game like that in flash could make me cry happy tears. :‘^) Seriously though, as Drakim said, it’s not going to be as good without right-click (Edit: and scrollwheel!!) support. Also, Unity seems nice enough, so not sure if it will matter to end users if it is in flash or Unity.

 
Flag Post

I don’t think Unity has the potential some people see in it. The fact that Unity themselves have realised they need to be able to export to swf makes me think that as a standalone plugin, its not what people want.

Of the existing technologies for 3D gaming in browsers, I think WebGL is most likely to be the winner – but realistically I don’t think browser based gaming is ready to move into full 3D. Whatever technology you use, the system requirements to run something that’s rendering and outputting in 3D are much higher than for your typical 2D or 2.5D Flash game. The casual audience doesn’t have computers with that sort of graphics power in them right now. that means two things – first, they aren’t playing 3D browser games, and second, they are still playing 2D browser games.

 
Flag Post

we have to base our choice of product and platform based on a lot of factors, and good tools really is important, at least to some people.

As far as long-term viability, however, there is no reason to include tools as a factor. Tools can be developed, and although everyone certainly won’t make there own, there will usually be someone to make a given tool.

Just for the purpose of illustration, let’s assume that Stage3D has better capabilities and performance than Unity, but Unity has better tools.

Now, imagine we uninstalled flash from everyone’s machine (This is hypothetical ;3), and replaced it with Unity. Now, sure, we might be better off for a year or two than we would have been with Stage3D. Developers will be cranking out content faster because of the neat tools. But then, what about when we need a feature that doesn’t exist in Unity? No tool, IDE, modeler, level editor, or anything else can overcome that. Nothing short of an upgrade to Unity itself.

On the other hand, what if we stuck with flash and killed Unity off. At first, it’d be harder. We wouldn’t have level editors or any of that snazzy stuff. But over time, within a few years, innovative people would write their own IDEs, modeling tools, and other third-party solutions, releasing them (maybe for free) to the public. Adobe would probably put out some stuff like that as well (I mean, you have to admit, as far as integrated graphics development, Adobe has been far ahead of the competition in 2D. Why shouldn’t they do the same in 3D as well). Eventually Adobe will reach the same level that Unity did. Lots of neat tools, and the platform has been explored almost to its fullest. Except for one difference. The language itself is better, at the core. The barrier that Unity encountered is still a ways off. And from this point on, Flash is better than Unity could have been.

And that is why I would like to see Unity die soon. It’s something like technical debt.

Ideally, HTML5 and WebGL would surpass all the others. In principle, it should be the best option. But in reality, it seems to be lacking. I’d really like to see an HTML6 that comes with some major changes putting it ahead of all the competitors. But I very much doubt that will happen.

 
Flag Post

truefire,

Even if Stage3D is superior in capabilities, it won’t make Unity obsolete. Lots of developers use Unity for it’s cross-platform capabilities across consoles, mobiles and PCs. So for a different tier of developers, who want to be able to develop for the web and other platforms, no matter what Adobe does, Unity is still a viable option.

Also, regarding tools and technical debt. Having tools to speed up development for certain developers doesn’t necessarily mean that these tools must be used. So I’m not sure Unity’s neat, but optional, tools qualify as technical debt. The same logic could be applied to the Flash IDE.

Furthermore, I don’t understand why, in your hypothetical example, you make it sound like an upgrade to Unity would be such a preposterous thing. Isn’t that what they’ve done multiple times since they introduced Unity?

All in all, I don’t see why they can’t co-exist.

 
Flag Post

The technical debt had nothing to do with the use of the tools. It had to do with picking the system with less potential (Whether the tools are better or worse)

You do have a point there with cross-platform development.

Unity may upgrade, and so will flash. But there’s no way of telling what those upgrades can bring. It’s really irrelevant to the discussion, since any platform has the potential to upgrade.

They can coexist, sure, but that will just divide the web up more. I’m an advocate of simplifying things. Sure, it’s just Flash and Unity (and HTML5) now, but what will the scene look like 10 years in the future? There could be 50 different plugins for the same thing. Then come compatibility issues, etc. If we just have one platform, then it can be universal.

 
Flag Post

HTML5 is a big collection of technologies. People keep claiming HTML5 = Javascript and that’s just silly. LocalStorage is not a cookie interface, it is a separate API. LocalStorage +JSON and you can store any datatype you want with very easy, cross browser support. The whole “modern browsers” debacle really means Microsoft needs to start supporting HTML unless they feel like removing “internet” from the “internet explorer” product line. That’s not their business model, but the crap over canvas and IE7/8 is simply inexcusable.

Here’s a few things that HTML5 does:

  1. Canvas for drawing images to 2D plane
  2. WebSockets for AJAX/Comet/‘server data push’ over HTTP 1.1 and port 80 (sorta – but the browser vendors care about that not so much the programmers)
  3. Embed audio and video (yes, the multichannel audio on some portable devices has a bad hardware implementation)
  4. LocalStorage/SessionStorage for managing data (only excuse for cookie now is SessionID at worst).

Unity doesn’t support Linux, so I’m not going to touch it at all. The whole point of web games is being able to play them on multiple devices. If your game requires a Unity installation, how can people play hookey at work and play your game instead of working?

Flash is not going away, but that doesn’t mean that Flash is the smart choice either. I am still boycotting Adobe over their arrest of a Russian while he visited America because he cracked their ROT13 encryption so Ebooks could be read to blind people. Add to that the fact that Adobe gimped FLEX and CS3/4/5 can’t reliably convert identical text to identical code and I’m willing to look at alternatives just to avoid Adobe. From a tech standpoint, the main advantage I see of Flash is polygon shape collision detection speed. (Canvas can do it too, but not fast from what I’ve seen.) In terms of platform, Flash has more of a code library atm, but the engine I’m licensing out is HTML5/PHP/MySQL/JS/Drupal based. (Frontend, backend, portal, content tools)

WebGL will help, but I’m not holding my breath for it. In terms of user support, Flash9+ is about the same as HTML5. The cross development issue is “do I debug Flash on linux or JS on IE?”

 
Flag Post

Cough.

WebSockets isn’t HTML5, it’s independent and timeline parallel.

It’s like saying that “Firefox 4 is HTML5”

 
Flag Post

As stated in another thread, for the most part I agree with you. I agree WebSockets is not a feature of HTML5, but when considering HTML5 it is important to consider WebSockets. The argument is similar to saying .NET development and including the Windows API. They aren’t equivalent but they do always come together even if it is through some other implementation of .NET. Mileage varies, but not the basic functionality. Meanwhile, alternative networking layers for Flash are pretty hard to come by. Most implementations of flash networking include cookie transport (based on my reverse engineering of networking layers in flash games).

 
Flag Post
Originally posted by truefire:

The technical debt had nothing to do with the use of the tools. It had to do with picking the system with less potential (Whether the tools are better or worse)

You do have a point there with cross-platform development.

Oh, ok. I guess I just didn’t understand where you came to the conclusion that Flash had more potential.

 
Flag Post

Unity doesn’t support Linux, so I’m not going to touch it at all.

I also don’t like this, but I don’t think it’s a legit reason for argument. A lot of people don’t support Linux.

I am still boycotting Adobe over their arrest of a Russian…

Lol? Adobe can’t arrest anyone. But yes, Adobe does fail in general.

I just didn’t understand where you came to the conclusion that Flash had more potential.

I don’t really know this for a fact. I haven’t done near enough with Unity to say for myself. But I’ve heard generally bad feedback from people who’ve used Unity.

 
Flag Post
Originally posted by Phoenix00017:

To throw in my two cents, while I understand why idealists might not want dependence on 3rd-party plugins and would prefer a standards-based approach, I think realistically it’s somewhat irrelevant.

it's completely irrelevant and completely stupid: Opera, Chrome, Safari, Firefox, Internet Explorer, and more browsers exist. that's 5 independent implementations of a standard (they don't even agree in HTML4 or JavaScript, why would they agree on HTML5? or start agreeing on JavaScript?); meanwhile flash has exactly one implementation. what could possible by more standard than a single implementation?

Originally posted by Phoenix00017:

The state of the industry at the moment as I see it is this:

- Flash is nearly ubiquitous already, with over a 97% install rate last I checked. While perhaps a closed platform, there are free tools, including their free official SDK, that allow you to create top-notch software for it. Stage3D is looking very cool, but I’ve yet to see how Adobe’s tools will be for it, or what the true power of it is.
- Unity3D has a much lower adoption rate than Flash, though it’s pretty good on gaming sites like Kongregate. From a power perspective, Unity3D appears to far out-perform Stage3D and offers the closest thing to native app performance that I’ve seen in a browser technology. I would guess that, at least at first, their 3D development tools will be much better than Adobe’s Stage3D tools, just because they’ve been doing it for so much longer. Adobe may catch up, but early on I imagine Unity will provide a better IDE for development of Stage3D content.
- HTML5 has some promise, but is currently not well supported in all browsers. People have to use workarounds to get it to function, and special rendering to work in older browsers. Sound is awful, which is why Angry Birds in the Chrome store, while coded entirely in HTML5, still uses Flash for sound. While it might be standards-based, (some) browsers are not exactly well known for supporting standards. While it’s nice to shrug them off as non-compliant and stupid to use, the reality is that these are often some of the most popular browsers.

- 99% install rate on non-mobile devices (laptops included; even though technically mobile), ~30% install rate on all internet-enabled mobile devices; 97% install rate on all internet enabled devices. Adobe doesn't provide any advanced framework for Stage3D, though; they've managed to crowd source it to dozens of open source and closed source, already-existing, 3D frameworks alike. the true power is nearly what you see in any native game, with some security-related things excluded (loops, to keep malicious things hanging the GPU), as you are given raw access to the GPU after a pass through the JIT compiler for 3D (from what i understand)
- Unity3D i predict will become obsolete as a plugin in a few years, or nearly so, with flash overtaking them by already having a virtual 100% integration rate and providing low-level 3D APIs. however, i expect the editor to become more mainstream after compiling to SWF (and Stage3D) is released. Unity crashing my browser when i leave the page (even though it's been shunted off to another process) certainly doesn't help its case.
- HTML5 + JS may have promise (not that much, mind you. canvas has been supported in HTML4 in all browsers for years except IE, but IE supports (via CSS) all of the fancy graphical changes canvas is necessary for in the other browsers; making the point irrelevant) but is currently a draft standard that hasn't even been signed off as a real standard yet. personally, i hope it doesn't get signed at first just to twist the underpants of the enthusiasts, like Apple. as for IE not being standards complaint, stupid, and etc. it is getting better, and even losing massive marketshare to chrome (it's dipped below 40%!) for having such poor support of standards.

Originally posted by Phoenix00017:

So yes, it’d be a nice world if we had a great standard that ran perfect 3D on everyone’s computer, but until that happens these 3rd-party plugins offer great alternatives that have been hugely successful in bringing gaming to hundreds of millions of computers.

OpenGL does pretty well, as far as i know. but that does pose the issue of a user being able to download an application and run it (which, as facebook has proven to me, is rare knowledge)

Originally posted by truefire:

Lol? Adobe can’t arrest anyone. But yes, Adobe does fail in general.

not at all. though, i am harder when judging Adobe than other companies because they develop flash; they actually do far better than many other companies would, google included.


also, phoenix, you need someone to look at the textile parser and fix it. it stops parsing on large input, forcing me to edit (two posts today now due to their length) them and do regular HTML instead of letting textile do it for me