I’ve recently stumbled on a small piece regarding the Flash death and its aftermath and thought I’d maybe throw in my 2 proverbial cents. The article can be read here.
Back in 2008, I’ve thought maybe gave web games development a try. As I wasn’t a big fan of ECMAScript languages (Actionscript/JS) and because I wanted a solution to cross-compile on multiple platforms, I’ve decided to go on with Haxe. Eventually, after learning the Flash API, I went on to make 8 games on my own, stopping in 2012.
The 2010 “Jobs don’t want Flash on his devices” event didn’t really hit the Flash game developer community. I suppose because Flash games had desktop as a target, with many games of that era favoring control schemes suitable for mouse and/or keyboard and less touch-screen. Also, Flash on mobile devices, Apple powered or otherwise, was quite slow and most of the games, aside from very simple ones, won’t even run. And it drained battery life like crazy 😛
In 2012, there were still a large number of portals licensing Flash content and competition between developers was stronger than ever. In fact, it was in that year that I’ve left indie game development to join a mainstream operation that focused on…guess what…Flash games development 🙂
Though my Haxe language experience was not needed and had to learn Actionscript, the transition was rather smooth. This particular piece, a test game for a potential employer, was made in 48 hours, without any prior knowledge of both Actionscript and Flixel library. Make this exhibit #1.
But here’s the point: Flash games existed outside the Apple eco-system, because gaming doesn’t revolve around Apple. The company I’ve worked for made mostly Facebook Flash games and they were quite succesful at it, clocking in tens of million of players (and they weren’t even the biggest name as entities like EA had the lion share in the Facebook Flash market).
Meanwhile, in the indie zone, things continued with Flash until ~2015, when two biggest players (Mochi Media and Flash Game License), disappeared. But still, until the Adobe announcement, game devs continued to push Flash games, according to Kongregate statistics, in wasn’t until last year that amount of Flash and HTML5 games submitted to their platform was even.
I went on with Actionscript/Flash development until 2018. See, it wasn’t until Adobe announcing withdrawing Flash support that was actually the kick in behind for the mainstream industry to move on to other tech.
And it was quite an expensive move. Imagine you have a couple of Flash/Actionscript games you’ve worked on for 5-8 years, in some cases with a code base in the range of 3-400k lines of code. How long does it take to switch them to a new tech stack? 😀
For me, this required to learn, on the job, Typescript and Cocos Creator, as the company decided to port its flagship product to HTML5. It took maybe a week to learn Typescript and around 2 weeks to get a hold of Cocos Creator, well enough to be able to contribute productively to the game port effort. Make this exhibit #2.
As a side note, being full-time employed and working in a rather high-pressure environment left me with little spare time and with enough head-aches that I’ve decided to not spend doing programming things, but rather spend it on hobbies. Happy to say that after 5 years, I’m a skilled swing dancer and a decent bedroom guitar player 😀 Sure, you might be upset there’s no Orbital Decay 2 yet…but, yeah 😛
Now cummulate the exhibits and the conclusion: for game development, learning a new programming language and new APIs is seriously not a big deal and one can do it on the job, using books, online tutorials, scouring the forums of the particular things you’re trying to learn or simply leveraging the (many) years of experience one has by being a specialist in a field. In my opinion, programming languages and API is kind of disposable knowledge. At some point, sure, after doing any for a number of years might get you the title of sensei, but you must be prepared to drop it and go for something else at a moment notice. What it matters is to be adaptable, focus on the meta-knowledge (concepts) that are transferable and have a basic of language-agnostic computer science knowledge (algorithms, data structures, etc).
As a very final note, I wonder at how useless learning and programming 4+ years in Haxe was, from a “finding a job in the mainstream industry” perspective. Since 2008, I’ve had exactly 1 job offer (which I’ve turned down, even if it was for quite a big name game as they didn’t do remote) and I’ve only found and applied to 2 positions, which I’m still waiting to hear back. Since that was about 5 years ago, I suppose it’s not going to happen, right? 😛