From Flash to Unity
Today marks a big change for JacksonDunstan.com and the Tip of the Week e-mail list. After writing about AS3, Flash, and AIR for five years and 317 articles, I’m going to start writing about C# and Unity3D. Today I have posted two articles. The first talks about why I’m switching from Flash to Unity and the second is the beginning of a series of transitional articles entitled From AS3 to C#. Read on for the first article.
My first reason for the change is the overall popularity of both Flash and Unity. Take a look at a Google Trends chart comparing “actionscript” to “Unity3D” since I started this site in 2009:
Flash started off over 30x more popular than Unity in 2009, but has since fallen so far that Unity is 3x larger than Flash. In other words, Flash has fallen by 92%. Here’s another chart showing the demise of Flash in the jobs market:
This chart doesn’t provide as exact of numbers, but eyeballing it looks like it’s gone from about 0.24 to about 0.02. That’s a drop that matches the Google Trends number: 92%.
Given that the Flash browser plugin is not available for the two important mobile platforms (iOS and Android) and that the overall shift is heavily away from desktops and toward mobile, Flash has all but disappeared from the web. Yes, there are still plenty of legacy Flash apps out there, but new development has virtually ceased. In fact, new development is usually geared toward replacing existing Flash apps with HTML5. The situation in the browser is grim.
That said, AIR does provide a nice solution for cross-platform (iOS and Android) mobile development that suits a few games and other apps quite well. But take a look at the Google Trends chart and it’s clear that Unity is now the preferred option.
So far I’ve discussed popularity and industry direction, but not the technology of the two platforms. Flash has seen declining investment over the last several years. It’s hard to tell from outside Adobe, but Flash seems to be on life support, receiving minimal updates by a much smaller development team. There is no longer any bright future for the technology, which was definitely the feeling in the days where every banner ad, game, and video player were unquestionably built with Flash Pro and Flash Builder on a Flash Player that was delivering more and more features that users and developers couldn’t get enough of.
Now let’s compare with the two technologies that ex-Flash developers have flocked to: HTML5 and Unity3D. HTML5 has exploded in popularity since 2010. A mad rush is on to replace everything Flash was once used for with HTML5. Tools, libraries, and communities have sprung up around it. There is a clear future of greater and greater adoption for HTML5 that promises to make the web better in every way. In short, it’s what Flash used to be but is no longer.
Unity3D, on the other hand, has risen to be the #1 games engine for mobile. It has a lesser—but growing—presence on consoles and web browsers, too. It’s cheap or free to use, has a large and growing community, and a vibrant suite of features and tools. It’s built on a language (C#) that is widely-adopted even beyond Unity, formally standardized, and documented extremely well. It’s receiving lots of investment from both Unity Technologies and third-parties via the Unity Asset Store. As such, it’s growing in feature set at a rapid pace.
As a game programmer, my path seems clear. Flash is not dead, as it’s popular to say, but certainly dying. The replacement game technology is Unity3D. Yes, HTML5 is used for games as well, but it’s nowhere near what Unity offers and nowhere near as popular as Google Trends shows again.
Which brings me to the plan for this site. I’ll be covering all sorts of topics related to Unity just as I have done with Flash over the last five years. Where you’ve seen AS3 articles you’ll now see C# articles. You may also see some articles about other .NET languages that Unity supports, like UnityScript and Boo. All of this begins today with the very first article in what’s sure to be quite a long series about the transition from Flash to Unity. So without further ado, head on over to read From AS3 to C#, Part 1: Class Basics!