Hacker News new | ask | show | jobs
by j2bax 3780 days ago
I was at a primarily Flash based company during the glory days of Flash and then through the transition to HTML5/JS. While I understand perfectly (and even support) why the shift happened (thanks Steve!), its still frustrating sometimes to know that now, years later we still aren't able to provide the quality of games that we were in Flash 3-4 years ago. We can do a lot, and things have come a ways, but right before the major shift happened, when Flash gained GPU support, the effects and performance possible in most major desktop browsers was pretty awesome. I realize that HTML5 is now capable of utilizing the GPU, but its browser support is still not where it needs to be for us to offer it as a mass consumer option for most of our clients.

I look forward to the day when we can say HTML5 is so much better (than Flash) for interactive/media content on the web, but sadly we still aren't there. I have hope that we will get there eventually. Until then, we will continue providing slightly dumbed-down games and content with the benefit of it working on mobile, tablet and desktop browsers.

5 comments

> I look forward to the day when we can say HTML5 is so much better (than Flash) for interactive/media content on the web

That depends on the kind of media we're talking about about: HTML5 video was noticeably faster and higher quality on day 1 and Flash never caught up on performance, which is a big deal for laptop users. Even if you're plugged in, having the fans running constantly and still seeing dropped frames is a terrible experience.

I suspect the story is still different for WebGL but the only benchmarks I've seen are fairly old by now.

> HTML5 video was noticeably faster and higher quality on day 1 and Flash never caught up on performance..

Flash video was never perceptibly slower than html per se. The only thing that really affects video performance is whether or not it's hardware accelerated, and in cases where flash used HW it performed the same as html. The reason it seemed slower is that AFAIK there's never been an HTML video implementation that falls back to software, whereas flash would do so if HW wasn't supported.

Hardware acceleration is a broad term used to describe different things and implementation quality still matters (i.e. does it do everything from format decoding to color conversion, scaling, compositing, etc. and are any individual steps combined?).

Every time I've done that comparison, Flash has used significantly more CPU for the same file. It's possible that they've finally managed to get close on the right combination of hardware, OS, and driver versions but given how regularly I still see people talking about huge improvements after uninstalling Flash, I'm skeptical that this is the most common experience.

Similarly, hardware acceleration was not a given in the past and since there's still plenty of buggy hardware and drivers out there, both Flash and all major browsers have software playback paths and there's even more room for variation there. It's not as bad as when people were comparing Flash's scalar code to Apple's well-optimized SIMD but if you disable hardware acceleration you can still see major deltas because Adobe was never willing to invest the same amount of effort in optimization. This hit Flash more because there were design constraints which caused it to silently disable HW acceleration and developers using fast desktops often didn't notice that happening.

Flash was never better than the native AV frameworks on Windows or OS X. What it offered was convenience during the period when you couldn't rely on everyone having support for a modern video codec and, of course, being able to do things other than simply play back a video file.

To clarify I was mainly talking about the days when HTML video was newish and flash was still a big priority to Adobe, and there was uncertainty which would win. I agree with what you're saying over the long run and certainly today.

But I'd have to quibble with saying flash was never better than native playback - presumably so for raw performance, but that wasn't the goal. Flash video was never great for being technically superior, it was great for cutting the Gordian knot that was the codec problem (and indeed one presumes technical tradeoffs had to be made to that end).

The codec problem was real but portability didn't make the performance (or reliability & security) problems inevitable. That was due to Adobe's management seeing the period of browser stagnation & the lack of widely available high-quality codecs as the natural order of things rather than an unlikely opportunity which they'd lucked into.

It's interesting to speculate about what might have happened had they chosen to cultivate a culture of software quality rather than putting everything on customer-milking mode. If Flash had performed well and been well-supported with a non-joke update strategy, Steve Jobs wouldn't have had so many enthusiastic supporters in the war on Flash and the second round of browser wars might never have heated up.

I count myself in that camp in part because I've always preferred the web's openness but also because I used Flash for a few projects and saw how horrible the experience was – technical debt at record levels, clumsy development tools and lousy documentation, and the $800 price didn't even buy reading comprehension on support requests. Fortunately, WebKit was getting serious traction by then so it became increasingly easy to avoid it. If I had any doubts about that call, it was confirmed when the next Flash release came out a year or so later and all of my bug reports were closed with a generic “please pay $900 to see if this was fixed” message after I'd gone to the trouble of including reproducible test cases for each one.

That seems like a pretty facile view to take. Fixing the video delivery problem isn't something Flash randomly lucked into - other technologies (Real, QT, etc) existed for no other reason but couldn't do it, because it was hard. Flash became the de facto global standard for delivering interactive content because it solved that problem, and a bunch of others, for a huge number of people, better than the alternatives, for years. If you didn't like the IDE that's fair enough but it's no grounds to claim the team behind it were money-gougers with no regard for software quality.
The biggest problem with flash video, to me, is the slow networking and buffering. Native browsers are optimal for such work, ActionScript not so much. Things improved but it was too little too late and Flash video deteriorated its quality further as its use in an automatic fallback to HLS streaming video -- native implementations are simply faster and smoother at playing back video than AS through Flash's convoluted APIs.
I totally agree. I've worked with AS3 up until a few months ago but have also been moving to HTML5 for a few years besides. The amount of brainpower that is wasted on quirky legacy browser behaviour and the lack of consistency between them makes me long for the days where I could position and measure and control with ease and speed as in Flash.
> The amount of brainpower that is wasted on quirky legacy browser behaviour and the lack of consistency between them makes me long for the days where I could position and measure and control with ease and speed as in Flash.

Big AS3 fan here, it is less true today. I accept the fact that, while AS3 and Flash IDEs were exciting technologies to work with ( I worked with cool artists, musicians, video producers on crazy futuristic projects...), The underlying tech was bad, for 2 reasons

- security. this one is obvious.

- closed source tech. Flash is now almost dead since Adobe basically pulled the plug on the IDE and there is nothing AS3 devs can do about it. Yes the compiler is open source, but the player is not.

I made me appreciate the how important open technologies are. They do not solve everything. But they are important.

Frankly, as someone said somewhere else in the thread, Adobe killed Flash, by not opening the plugin's source code, by not trying to make it unnecessary. A lot can be done now with WebGL, C++ compilation can be done with Emscripten , Web APIs now cover a lot of what Flash used to do, and where was Adobe on that ? Edge Animate ? what a joke.

With the fall of Flash there are opportunities though, so that's a good thing. I'm thinking hard about it.

I might say much the same things about web development in general. Twenty, years later I still think its easier to create a desktop application with a remote SQL back-end than a web app for any moderately complex application. Data aware visual components and the like have only pale imitations in html/javascript/css. Things like crystal reports have been ported to the web environment but along the way seem to have lost the convenience they had, where it was possible to add them 3/4 of the way through a project. Now you have to rework 1/2 the back-end code (it not the entire project) to add a package like into the mix.
>Flash is now almost dead since Adobe basically pulled the plug on the IDE and there is nothing AS3 devs can do about it.

Adobe did not "pull the plug on the IDE". It has been renamed to Adobe Animate to reflect its ability to output to multiple platforms (such at HTML5, video AND Flash).

You can still use it to create Flash content, and will continue to be able to do so in the future.

More info here: http://blogs.adobe.com/flashpro/welcome-adobe-animate-cc-a-n...

And we will have a lot of information this week on our twitch channel:

http://www.twitch.tv/adobe

mike (I work for Adobe).

One of the tools has been renamed. The IDE is still alive and growing monthly. I have never used the Adobe tool, since it was time-line oriented and I have never used it in that fashion. Instead I use FlashDevelop, and Intellij. Both great tools for developing in AS3.
>Adobe did not "pull the plug on the IDE".

Flash Builder hasn't had an update in ages.

Totally agree. Rather than getting more enjoyable to work with, things just keep getting more and more fragmented. In some ways that's great, but for developers it means a hodgepodge of frameworks and tools. And things keep fragmenting more and more, new languages, more devices, more types of experience. I was a C++ game developer for many years, and last couple of years I have been using Flash for development. Other than memory management it's a great language. Been developing mobile applications on it as well as 60 fps 3D apps. Come on Adobe, we need you to promote Flash!
Not only that, but the GPU exposure to HTML5 creates a massive stability and security risk.

Flash failed not just because it was a browser plug-in, but also because it was terrible - Adobe no longer knew how to tame the beast they'd created and the result was terrible performance and bad user-experience. I'm sad a more sane platform for game/video content didn't win. The browser doesn't need to do everything.

HTML5 for this kind of work is the ultimate square-peg-round-hole solution. HTML is still fundamentally a document platform, and Javascript was never designed for games or video.

We'll get there, but only by the most roundabout fashion possible.

Disagree, Adobe's problem was they made it too easy to create crappy content which could give the browser bad performance. And by make it too easy to deploy that bad content to the web. Now that the majority of bad flash developers are gone, and it's being used less for ads and more for mobile, maybe it can make a come back.
What do you think Adobe should have done to hinder people from creating (or perhaps publishing) low quality content?
Require developer accounts with authorization tokens to consume more than a set amount of CPU before the framework terminated your animation? Call it "Flash Pro" or something.

Then at least you've got an account on Joe frameloop ad.

So I would need a developer token to put up a flash animation on my website? I'm sure that would have killed adoption, and my hunch says that the ad agencies that were churning out the 100% CPU ads who dropped $799 on Flash could pay for the developer account anyways.
WebGL is not a massive security or stability risk. That security stuff was mostly paid FUD from fraudulent demos that faked data leaks. The stability issues have mainly been avoided by not including WebGL content on non-graphics pages.
> we still aren't able to provide the quality of games that we were in Flash 3-4 years ago

What's an example of this? The HTML5 and WebGL games I've seen match anything I've seen in Flash. It's true that you need an up to date and capable browser, but that's true of any platform.

10 years ago there were a dozen sites dedicated to flash games that raked in millions of views per month. I couldn't name you a single WebGL site dedicated to games.

Where is the modern day Newgrounds? There isn't one. It doesn't exist. And that's a damn shame.

I'd say Newgrounds is the modern day Newgrounds. I don't have Flash installed, I went to Newgrounds, and the first couple of games I clicked on worked without Flash while others still required it. If there's new or old content that still requires Flash, then it can be emulated. Here's an example of a large collection of games playable in an HTML5-based emulator: https://archive.org/details/softwarelibrary_msdos_games

As for other HTML5\WebGL focused sites, here's an example of a site making HTML5 games: https://ga.me/

And here are a couple of sites indexing WebGL games:

http://www.webglgames.com/

http://www.webgl.nu/

So don't worry. There's lots of HTML5 game development going on.

I've not seen a single WebGL game on Twitter, Facebook, or Reddit ever. I used to see and play Flash games all the time.

It's not even remotely what it used to be.

TagPro is a pretty popular browser game on reddit, doesn't use flash as far I know.

http://tagpro.gg

WebGL browser support is terrible.
I'm not saying it's not possible. I've seen some incredible HTML5 and WebGL games/tests with limited modern browser support. Unfortunately our clients (large children's entertainment companies) require their games can be played on every device in every browser. Sadly, it costs us more to do less in so many environments.
But that's not really a Flash versus HTML5 issue, that's a device support issue. Adobe failed to get their Flash platform on all the devices you want to support so you're using an alternative platform, which is fair enough. If you limited the comparison to the places Flash runs you could be making the same games with HTML5, couldn't you?
You are right, it is probably more of an issue with supporting mobile browsers and desktop browsers with the same game, but web game budgets not having really moved any since the Flash days to support two very different form factors. A project budget went quite a bit further towards making an awesome game, when we only had to support desktop browsers which for the most part, all had good Flash support.
I agree that HTML5 can't do 3D stuff very well across the board yet. But if we're honest here niether could Flash.

I remember trying Flashes Unreal demo and though it ran it was barely playable.

Most of the games I've played in Flash could definitely be done in HTML5 using the 2D Canvas.