10 ms·
Flash is dead, long live OpenFL
- mantrax 13y agoWell, the first half of the title is right.
- ambirex 13y agoI've been following OpenFL/NME for about a year, I was surprised when reading http://www.openfl.org/blog/2014/03/18/flash-and-html5/ http://www.openfl.org/blog/2014/03/18/flash-and-html5/ that pixi.js is based off the Flash API.
- girvo 13y agoFinally. I have loved using Flash for game development back when it was owned by Macromedia, and with AS3 it's still got a powerful API, but at the end of the day having an open-source implementation to work from is far nicer. It helps that Haxe is really cool, too.
- ChrisGaudreau 13y agoI remember using OpenFL a year ago or so. Probably less. The coding environment itself was very nice. But it was horribly painful in practice. Sure, you can compile to multiple targets, but don't expect it to work. And if it does work, chances are your code is littered with platform-specific macros and reams of platform-specific code. To make it worse, many parts of the Flash API weren't implemented, had different semantics, didn't work on some platforms, or worked differently on some platforms. I like the idea of OpenFL and I like the Haxe programming language. When I tried it, it was clear that things were improving quickly. I hope it has improved a lot since then.
- bendmorris 13y agoI've been working with Haxe and OpenFL for about a year and a half. A year ago I would've agreed with you, but the past year has seen some major advancement in all of these areas. The Flash API is more fleshed out at this point. Setup still has some quirks but I find that once that's taken care of, compiling for multiple platforms "just works" and is incredibly convenient. For example, OpenFL will actually download and install the Android SDK and NDK for you, then compile your application and sign the APK with a single command. The most popular game engines (HaxePunk or HaxeFlixel) are great at smoothing over some of the platform-specific differences in things like rendering. It's not a magic bullet and you still need to have a basic understanding of each platform you want to target, but Haxe and OpenFL make things so much easier.
- camus2 13y agoFlash is the plateform and the IDE, and nothing will replace the IDE regarding how easy to create and organise animations. Sure,you can code in a text editor, But a designer cant do precise and complex animations with a text editor. Editing and creating animations are 50% of the value of Flash and that's why the IDE is still necessary to develop games, wether they are HTML5 or mobile ones. Yes there is Unity but Unity is 1/ more expensive than flash 2/ sucks at 2d asset creation. So no, Flash isnt dead,by a long shot.
- troymc 13y agoCheck out Stencyl 3.0+ [1]. It's a GUI game-creation toolkit and IDE with a game runtime written in Haxe. [1] https://en.wikipedia.org/wiki/Stencyl https://en.wikipedia.org/wiki/Stencyl
- thefreeman 13y agoDid you even read the article? you can keep using the Flash authoring tool and its native flash vector animations if you like And the "dead" from the title refers to support from Adobe. The entire post is about how you can still target flash using OpenFL, haxe, etc.
- laureny 13y agoFlash will be dead when web game companies (e.g. Zynga) stop using it. It's still years away.
- erichurkman 13y agoAt least one major component is moving off of Flash: videos. Now, if you opt to forgo Flash on your device, the most you seem to miss are some games and annoying banner ads.
- ojii 13y agoUnfortunately, as far as I know there's still no decent solution to stream video without flash (I'm talking Twitch et al here). Twitch is the only reason I still have flash on my computer (and not actually for watching games being streamed, but for the annual Desertbus event). Has the HTML5 video streaming improved at all over the past year?
- nawitus 13y agoThere's Media Source Extensions, but it's a draft standard with limited support currently.
- ANTSANTS 13y agoI also kept Flash around mainly for this reason. It doesn't help people that want to make streaming video sites, but you don't need Flash to watch live video streams from sites like twitch.tv. You just need a media player capable of playing streaming video (mpc-hc, mpv, and vlc all work), and the livestreamer command line tool which extracts direct video stream URLs from twitch.tv pages. http://livestreamer.readthedocs.org/ http://livestreamer.readthedocs.org/ This works perfectly for me, arguably better than the Flash-based player. I uninstalled Flash a few months ago and haven't felt the need since.
- j_s 13y agoIs there any client option for iPhone users to view streaming Flash video?
- sdfjkl 13y agoIt's not Flash that is dead, it's the whole concept of browser plugins. Too risky, too inconvenient, too often installed and then forgotten, never to receive security updates (or those that exist aren't installed because they prompt us about it far too often).
- andybak 13y agoI'm not disagreeing but your comment makes it sound like you think OpenFL is still plugin based?
- leccine 13y agoThis is exactly why security conscious people don't use flash. Html is supposed to be a document and not an application. We created this Frankenstein with Flash, Java and JS to make HTML pages appear other than documents. The net result is that you need to install these plugins otherwise you can't get the full experience. The real question is why do we let people to abuse technology instead of using it well. I have disabled all of these plugins long time ago and also JS runs on very specific websites where it is an absolute must. You could install games through the browser, make it easier but to run through the browser, it is a bad idea.
- camus2 13y ago> why do we let people to abuse technology instead of using it well. Because there is a demand for web based applications,because we cant throw everything in the trash saying we got to start over. Because the web is a way to distribute software with next to 0 cost.
- mercer 13y ago> The real question is why do we let people to abuse technology instead of using it well. I am (still!) amazed by the gap between how I see a computer and how most non-geeks around me do. To them, it's like a set of different, often frustrating tools rather than, well, an amazing piece of technology that can be prodded to do whatever you want (to the point where an iPad with few to no apps can provide them with all they need). To me, there's a joy to finding just the right framework, app, or library that can do what I need done. To the point where I might end up enjoying the process a bit too much and get nothing done. To them, it's all about getting stuff done as soon as possible, with whatever they're familiar with. And since they find computers often quite frustrating, they will abuse the hell out of the little bits they know. And so, in the same way that we would use a lighter to open a bottle if there isn't an opener nearby, they 'abuse' technology by using Excel for everything, or storing their notes in an open notepad window without saving. And as long as that works most of the time, they feel absolutely no incentive to figure out a better way. Until, of course, it all goes wrong. Then they call us to fix it :-).
- dsirijus 13y agoA link to a discussion including industry insiders. [1] I made this [2] with Haxe/OpenFL (NME) a year ago (W.I.P. that's gathering dust now). Music's not mine, just stand-in from awesome Hotline: Miami. Didn't have much luck in trying to get this to run on mobiles. [1] http://forum.starling-framework.org/topic/flash-is-dead-long-live-openfl http://forum.starling-framework.org/topic/flash-is-dead-long... [2] https://dl.dropboxusercontent.com/u/48356497/vizard/index.html https://dl.dropboxusercontent.com/u/48356497/vizard/index.ht...
- TomGullen 13y ago> I could try HTML5, but that precludes releasing high-performance desktop-ready games for Steam. We develop Construct 2 (https://www.scirra.com https://www.scirra.com) which is an HTML5 game engine. It can export to EXE via Node Webkit with very good performance, as well as the ability to export a multitude of mobile platforms as well. One game we're excited to see released in the near future made in Construct 2 is "Penelope": https://www.youtube.com/watch?v=ZaynOYy2O54 https://www.youtube.com/watch?v=ZaynOYy2O54 The author is developing this game in Construct 2 for PC/Mac/Linux. Some of our users have also submitted their games to Greenlight, here's a couple: http://steamcommunity.com/sharedfiles/filedetails/?id=184459148 http://steamcommunity.com/sharedfiles/filedetails/?id=184459... http://steamcommunity.com/sharedfiles/filedetails/?id=92994975&searchtext= http://steamcommunity.com/sharedfiles/filedetails/?id=929949... These are all HTML5 games!
- tomphoolery 13y agoThank you. I was going to come in here and say "Look I don't know if there are any HTML5 games on Steam, but how hard could it really be to package your game up in a fork of Chromium or WebKit?"
- TazeTSchnitzel 13y agoAnother example is ImpactJS, which allows you to write high-performance mobile-ready games! http://impactjs.com/ http://impactjs.com/
- lifeisstillgood 13y agoWhat if I was looking for powerful ways to develop JS apps rather than games?
- phoboslab 13y agoIt always makes me happy to see my game engine mentioned here. Thank you! :) Just to chime in, I believe that HTML5 currently is as "cross-platform" as it can get, especially for games. Two examples made with Impact: - Olympia Rising[1] - this game recently had a successful kickstarter campaign and will be released for various desktop platforms and maybe more later. - XType Plus[2] - my own game coming to the Nintendo Wii U, using the Nintendo Web Framework. It's a pimped up version of this XType[3], which you can play in your browser right now. [1] https://www.kickstarter.com/projects/paleozoic/olympia-rising https://www.kickstarter.com/projects/paleozoic/olympia-risin... [2] http://www.nintendolife.com/news/2014/02/developer_interview_phoboslab_on_xtype_plus_impact_and_why_the_nintendo_web_framework_matters http://www.nintendolife.com/news/2014/02/developer_interview... [3] http://phoboslab.org/xtype/ http://phoboslab.org/xtype/
- SimeVidas 13y agoHey, guy who wrote that article. The Web Platform is going to become the dominant platform for games and performance is going to be just fine. Wanna bet? :-P
- larsiusprime 13y agoI agree. Did you read the article?
- Steveism 13y agoChrome still has Flash Player built-in and that won't change any time soon. I think once Chrome and YouTube completely move on it'll be a major development in Flash taking a back seat.
- zacharypinter 13y ago> I've been a stalwart Flash developer for 15 years, so nothing bothers me more than greatly exaggerated reports of Flash's premature demise. ... > I've learned my lesson -- whatever my next platform is, no-one should be able to take it away from me. There's an interesting side discussion here. It seems to me that the rate of substantial changes in technology/frameworks/ui design/etc is increasing such that the expectation of finding a platform that you can hold on to for 15 years is becoming untenable. I worked with Flash (via Flex) for several years and found it to be one of the best UI frameworks I've ever developed with. I have yet to find an web framework that matches the productivity of MXML and databinding for standard sorts of UI's. I also use emacs daily, which is a piece of software that's older than I am and still going strong. That said, when it comes to staying on top of technology rather than being made obsolete by it, I have yet to find a better strategy than to try to "ride the wave". HTML5 addresses a lot of cross-platform issues and has a lot of attention today so it's worth learning, but I don't expect what I learn today to last forever. If/when VR takes off, we might all be focusing on 3D frameworks and a wealth of new UI primitives to support that ecosystem. Or, maybe some other technology will take the dev community by storm and it'll be worth going that direction. In short: moving with the major paradigm shifts seems more tenable than trying to find/predict the stack that will last the longest. Very curious to hear if others have similar or alternative thoughts.
- larsiusprime 13y agoKind of the entire point of Haxe is that you don't have to find/predict the stack that will last the longest, because whenever the hot new thing emerges... you just add a new Haxe target for it.
- bsaul 13y agoi don't think the language is what matters most when talking about technology. The platform is the important thing. When coding on iOS or Android, learning Objective-C or Java isn't the longest thing to learn. Learning the framework objects and patterns is really what matters. Same goes for HTML5, node, Ruby on Rails, etc... A computer language is very rarely using more than 50 language constructs (operators + keywords), which could easily be learned in less than a few days. Haxe doesn't solve this issue i think (and nothing can).
- fritz_vd 13y agoAwesome overview. It's fairly easy to start with. Especially for 2D game. It compiles to JS as well fairly painlessly. Some difficulties occur when your start using oldschool Flash stuff such as "BitmapData" etc. Or fonts. But other than that it's pretty great.
- PhasmaFelis 13y ago> I could try HTML5, but that precludes releasing high-performance desktop-ready games for Steam. Oh Jesus Christ. Do not do this. "Flash" and "high-performance" do not ever belong in the same sentence. Binding of Isaac was a game that, visually, could have run on a Super Nintendo, but it chugged like a tired tortoise on a midrange 2010 laptop. I know Flash is popular, I know it's easy to develop with, but if you use it for "high-performance" game design you are cutting out a huge potential audience of low-end users, because it is miserably slow and inefficient. I should not need cutting-edge hardware to run a simple 2D game. Edit: For vector games, at least. Raster games made with Flixel seem to run all right. But Flash's native vector implementation is Godawful and deserves to die.
- larsiusprime 13y agoDid you read the article?
- PhasmaFelis 13y agoI did. I may not have been clear, though. He says HTML5 is a poor substitute for Flash because it doesn't work for "high-performance desktop-ready games for Steam." I'm saying that Flash has never been any good for "high-performance desktop-ready games," and devs really, really need to stop deluding themselves that it is. Basically I'm saying I have trouble trusting anyone who thinks that Flash was ever a decent high-performance gaming engine.
- larsiusprime 13y agoI get that. (I wrote the article by the way). "I have trouble trusting anyone who thinks that Flash was ever a decent high-performance gaming engine" I never said it was -- just that if I have to switch to something anyways, performance is something I want to take into account. And for what it's worth, flash wasn't high performance, but with proper optimization you could get acceptable performance -- and in the case of our game[1] locking ourselves to 800x600, we got way, way, better framerates and sprite counts than Binding of Isaac (which uses AS2 and unoptimized graphics). Perhaps I should have been more clear in the article -- "As long as I'm leaving flash behind, I don't want to jump straight over to something else that might have the same performance concerns I've been fighting/hacking against all these years." [1]http://store.steampowered.com/app/218410/ http://store.steampowered.com/app/218410/
- cpeterso 13y agoIf you would like to see how Mozilla's Shumway SWF player is coming along, you can preview Shumway-rendered Flash content without installing the Shumway add-on in this gallery. Even works in Chrome and Safari. :) http://www.areweflashyet.com/shumway/gallery/ http://www.areweflashyet.com/shumway/gallery/
- malkia 13y agoWow! And no mention of scaleform - the Flash MiddleWare for consoles... humm... - http://gameware.autodesk.com/scaleform http://gameware.autodesk.com/scaleform
- slacka 13y agoFor those not familiar with OpenFL, /u/larsiusprime posted a nice summary of how it's used: "OpenFL is is a programming API that mirrors the Flash API, but in the Haxe language. So you take your old ActionScript code and port it over to Haxe (very similar language, but with additional features). Then you also take your Flash-vector-art SWF files, and you load it with the Haxe SWF library. OpenFL ensures you can still make all the same method calls to the Flash API, etc. When you compile, you select one of many targets, kinda like unity: C++, JavaScript, etc. It conveniently packages those targets up into special configurations like "Android", "Windows", "HTML5", "Linux", etc. So you can take your existing flash code and art, but get it running NATIVELY, in say, Linux desktop, with no need for the flash plugin or AIR runtime -- it's just a C++ app that does the same stuff (and much faster!) You can also output to HTML5 so your players don't need the flash plugin anymore (the HTML5 target is still fairly new). As an end user, there's nothing for you to really do, except to wait for flash developers to switch over to it. From your perspective, all you'll really see is that instead of Flash apps on the web, there's more HTML5 apps. And instead of AIR apps for games on the desktop, they're natively compiled for Linux. What happened in these cases is that the developers were using Flash before but switched to OpenFL."
- tbrock 13y agoSo basically, the open source community made a better flash than Adobe did? That is rather amazing considering the resources of the respective groups.
- IanCal 13y agoThey've done it twice. MotionTwin did a lot of work in AS2 so they built a better compiler for it (MTASC), which compiled faster and made faster swfs (it's still used in production at the BBC). Then when AS3 came out they seem to have thought "Oh come on!" given the quality of the compiler and language features so they built a better language. Again, faster and better compilation, as well as properly implemented things like generics (particularly compared to the awful implementation in AS3). It's a lovely little language, and cross compiles to a vast range of platforms with ease. I built an android app which ran a webserver to control a TV app built in it (compiled to JS). I also had good success compiling it to PHP (cross-platform serialisation & deserialisation turned out to be easier and more performant than parsing XML on some low power devices). MotionTwin made my working day so much better, not having to use the CS4 was wonderful.
- anon4 13y agoSo what I got from that is that Haxe is a statically typed javascript with actual honest-to-god macros. Married to a trivially simple 2D graphics and audio framework, that thousands of developers are already familiar with. That's awesome!
- jdonaldson 13y agoI echo your enthusiasm, but haxe is not really statically typed javascript any more than java is. It's also not really married to any framework, OpenFl just happens to be one of the most popular ones right now. Most 2d apis are trivially simple these days. OpenFL doesn't leave anything out there at least. If you're interested in more sophisticated 3d support, OpenFL provides a surprising level of functionality there, including recently announced support for stereoscopic 3d.
- larsiusprime 13y agoThere's also a bunch of other backends if you want something besides OpenFL -- there's h3d, kha engine, Flambe, etc.
- aiurtourist 13y ago> OpenFL is an implementation of the Flash API written in the Haxe programming language. Other than "Papers Please," who is using Haxe for production (i.e., making money on products built with it), and for what?
- jayrobin 13y agoI can't speak for the big guys, but I'm seeing more smaller Flash game devs make the transition from Flash to Haxe, mostly for the ease of porting to mobile/HTML5. I've been making Flash games on and off since about 2007 and finally made the transition to Haxe with my latest game [1]. As others have commented, it's not perfect yet (i.e. some features aren't yet available on all targets), but I'll never be going back to Flash now. [1] http://www.iquitmustdash.com/ http://www.iquitmustdash.com/
- larsiusprime 13y ago1) Nickelodeon (using Flambe) -- web/mobile games 2) Disney (using Flambe) -- web/mobile games 3) Flambe (Haxe game engine) 4) reach3DX (next-gen 3D engine by Gamebryo) 5) Defender's Quest 2 (me) (HaxeFlixel engine) 6) Even the Ocean (Anodyne devs) (HaxeFlixel engine) 7) Rymdkapsel (Grapefrukt games) 8) Cardinal Quest II -- web/mobile (HaxeFlixel engine) 9) TiVo -- interface stuff I guess? 10) Tizen 11) Firefox OS -- just partnered with Flambe 12) Stencyl (Haxe game engine) 13) Motion-Twin (game studio that created Haxe) 14) Shiro Games (EvoLand devs) That's just off the top of my head. So anyone using HaxeFlixel/HaxePunk/reach3dx/Flambe/OpenFL/Stencyl are all using Haxe-based game engines.
- clemos 13y agoWe made a cross-platform (Flash, HTML5, Android, iOS) video player for TF1 (first French TV channel, considered the most viewed TV channel in Europe)
- Egregore 13y agoHere are some showcases: http://www.openfl.org/showcase/ http://www.openfl.org/showcase/ http://haxeflixel.com/showcase/ http://haxeflixel.com/showcase/ Also we're waiting for our educational game to be approved by Apple app-store, and will make an announcement when it's done. :)
- Macuyiko 13y agoEvery time I read an article about Haxe (and now, OpenFL), I get the itch to start working on a mobile game--just as a hobby project. That said, does anyone know how well-suited these frameworks are for regular application development (or whether there exists alternatives)? I've been thinking about wipping up a mobile app, and while I could write the Android code, my knowledge of Objective-C is so limited at the moment that I'd like to avoid duplicating the same logic in another environment/language...
- Egregore 13y agoThere are two UI libraries for openfl, HaxeUI and Stablex: http://haxeui.org/ http://haxeui.org/ https://github.com/RealyUniqueName/StablexUI https://github.com/RealyUniqueName/StablexUI btw: There is Objective C target in haxe, so you can develop native apps for iOS in Haxe.
- chris_wot 13y agoLooks like Adobe are about to lose a key asset through management incompetence. The Xerox of our time?
- perturbation 13y agoFrom the default linux install script for OpenFL (http://www.openfl.org/haxe-3.1.1-linux-installer.tar.gz http://www.openfl.org/haxe-3.1.1-linux-installer.tar.gz): # Set up haxelib sudo mkdir -p /usr/lib/haxe/lib sudo chmod -R 777 /usr/lib/haxe/lib sudo haxelib setup /usr/lib/haxe/lib This isn't as bad as I originally thought; I tested this, and only that directory itself is world-writable (the sub-directories from haxe install foo are universally readable and executable, but not writable). Still seems like someone could install a malicious 'dependency' ahead of someone else needing it.
- e12e 13y agoOh, I remember seeing this last time I looked at this. I generally don't like seeing sudo/su in a script like this at all -- and especially not something that goes an messes with LSB-locations like /usr/lib. FWIW, the actual software is download by the script, eg: http://haxe.org/file/haxe-3.1.1-linux64.tar.gz http://haxe.org/file/haxe-3.1.1-linux64.tar.gz For something that is aimed at developers, one would think this stuff installed under /usr/local or /opt (benefit of /usr/local is that most(?) distributions set up PATH,MANPATH, various link/library paths etc to include /usr/local. Benefit of /opt is keeping the package well "out of the way". World writeable directories without a sticky-bit is generally just wrong -- under /usr/lib it's pretty terrible.
- teach 13y agoI must correct a minor error: "[Unity3D's] web browser target depends on a clunky plugin with a low install base." This is no longer true. Unity3D can now (or very soon?) export to pure javascript and run in any WebGL-conformant browser without any plugins.
- larsiusprime 13y agoTo be fair, they announced that a day after the article was written :) And the feature is not yet released. I can update the article in a bit.
- thatnodeguy 13y agoThe problem with flash is the same problem as the .Net framework, Coldfusion and similar technologies. You cannot have an entire ecosystem revolve around a single company and not have growth or compatibility problems. You simply can't. What flourishes? Things like Linux, Python, etc because they can be flexible and adaptable. When you have a company in charge of a technology you will always be at the whim of that company and what they decide to do with it.
- npsimons 13y agoI like haXe, I really do, but for me, it's seriously lacking in libraries. It's all well and good to have everything you need to make games and displace Flash (everywhere!), but for instance, I can't just clone a GPX parser (https://github.com/tkrajina/gpxpy https://github.com/tkrajina/gpxpy), pull in some other Python mapping stuff (http://sensitivecities.com/so-youd-like-to-make-a-map-using-python-EN.html http://sensitivecities.com/so-youd-like-to-make-a-map-using-...) and frontend it with another cross platform "language" (http://kivy.org/ http://kivy.org/). Big thanks and congratulations to the haXe developers, and I'll keep an eye on it with high hopes the library will expand!
- waneck 13y agoWith Haxe/Java and Haxe/C# you can use any Java or C# library directly from haxe (with -net-lib and -java-lib)
- mavdi 13y agoAs an ex Flash developer all I can say is this: Stick with open source and find an up facing trend. BTW fuck Adobe.
- GimbalLock 13y ago"X is dead, long live Y" is dead, long live original headlines.
- davidgerard 13y agoFlash is animation software. That people write games in it is a function of its past ubiquity and a symptom of the dangers of Turing completeness. Actually coding in Flash is unbelievably horrible. This is like an announcement of a well-supported cross-platform Brainfuck kit.
- egypturnash 13y agoFlash has not been able to decide if it's animation software or a software platform for pretty much the entire time I've used it. When I was doing web animation back in 2000, Macromedia's response to complaints about the editor crashing like crazy when dealing with the ~20M source files involved in making 3-4 minute cartoons was basically "don't use it for that, it's for making little interactive widgets". Oh yeah, and animating in Flash is often pretty horrible too.
- chumpski 13y agoWell done larsiusprime. Great article. You have me very interested in trying out Haxe and Lime, maybe OpenFL as well.