Flash is dead, long live OpenFL
gamasutra.com
gamasutra.com
"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."
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.
[1] http://labs.adobe.com/technologies/alchemy/ [2] http://blogs.adobe.com/flashplayer/2011/09/updates-from-the-... [3] http://ncannasse.fr/blog/virtual_memory_api [4] http://www.adobe.com/devnet/pixelbender.html [5] http://ncannasse.fr/blog/announcing_hxsl
All I see in docs is a simple GET/POST request. Realtime multiplayer game would be very slow using it.
Various Haxe networking libraries: https://github.com/MattTuttle/hxnet https://github.com/andyli/hxudp
We develop Construct 2 (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
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=184459...
http://steamcommunity.com/sharedfiles/filedetails/?id=929949...
These are all HTML5 games!
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-risin...
[2] http://www.nintendolife.com/news/2014/02/developer_interview...
I do have a toy project that aims to be a cross-platform Ejecta eventually. It's written in C and divided in an OpenGL Canvas drawing library (so you essentially get the HTML5 Canvas API in native code) and a host application that provides the JavaScript binding.
Currently, there's only a host application for iOS. I don't know much about Android and have yet to figure out how to best couple the C lib with the Java code... or if I even need Java code to begin with.
I wanted to have a working Android host app first, before putting it on github and then building up the feature set on both platforms to where Ejecta is now.
I also thought about doing a kickstarter for this, but I'm not sure what exactly I could "sell", because the I want to have it open source anyway. If anybody wants to sponsor the development, get in touch :)
tl;dr: yes.
https://crosswalk-project.org/
It's based on Chrome for Android so you have a fully-featured browser engine available. iOS is the only platform where there isn't a good GPU-accelerated browser engine available that can run native apps, hence the use case. (P.S. we hope to support Ejecta in Construct 2 officially soon!)
I've considered it a number of times but each time, that $99 barrier pushes me back towards the alternatives like Panda.js (which I believe is actually inspired by Impact). Not to mention Unity, which is free for some platforms.
If you offered a trial license, that would be awesome, although I understand you likely don't because of fear of abuse.
https://blog.mozilla.org/blog/2014/03/18/gdc-2014-mozilla-an...
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.
...
> 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.
I would think so. It only became clear that Ruby would be viable for jobs about 7-8 years ago. It is used absolutely all over the place right now, true. But it is going to be competing against Google's V8 pretty much directly, and that, well that is not winnable.
Adobe Flash has been around for so long that Wikipedia doesn't mention when. I remember flash on even the first web enabled computers. Everyone had it so they could play games on Newgrounds.
That is such an exceedingly long time ago, I don't feel like OP has very much to complain about.
People (especially flash devs) give HTML5 a lot of flack now for not being a "real" "viable" platform, but those same people don't seem to remember flash used to get a lot of the very same kind of flack for not being as powerful as java applets.
and java applets used to get the same flack for not being as powerful or fast as native apps.
In the grand scheme of things, flash and java didn't take that long to gain wide acceptance as serious platforms for real apps. People find it comical now that we're doing things now in HTML5 that we could do 10 years ago in flash or java, without remembering you could do it 20 or 30 years ago on the metal. Progress is sometimes making these things more broadly accessible, instead of just more "impressive" or "serious" from a technical standpoint. And that's still an important and valuable kind of progress that should not be so easily discounted! Yeah html5 is not as impressive now as flash is now, but it's open, free, and it could do the things flash could do when it started to get taken seriously. we can see the course of history from this point forward because we've been here before. Multiple times.
Fast forward a few years and there are network TV cartoons being done with Flash. Though it's a hell of a lot easier when you can render out video and stick it together instead of trying to put everything into one SWF for delivery over a 19.2k modem.
Haxe doesn't solve this issue i think (and nothing can).
My strategy also. I'm in my mid forties now and have always seen the language/platform as a way to exercise my development skills. Like many things the trick is timing, when to sit up and take serious notice of a new language/platform.
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.
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 :-).
The problems are that:
1. computers today don't really look or feel like 'bicycles for the mind' to the average joe -- it's our job to make them look like what they really are instead of dressing them in pretty silky dresses (think all the iStuff...) OR, even worse, make them look like appliances (think the iOS devices that feel like a multi-tool, every app isolated by itself and very hard to move data from one to another) OR, even worse, cripple them on purpose (DRM, closed formats that are not cross-applicatin compatible etc.)
2. most people's minds are really bad at 'learning to ride bicycles'... hell, even teaching a human being to properly read and write takes a few good years -- so it's our jobs to make the bicycles easier to ride, but we should not forget the danger here: the way to make a bicycle easier to ride is not to hide that it's a bike! (this is kind of what we do with most of our UI/X paradigms, and it makes it easier for people to use computers as appliances, but much harder for them to realize they are mind-bikes)
Now that we have "a computer in everyone's pocket" we should get our heads out of our asses and show people what a computer really is!
And about 'using Excel for everything': I'd take this as a good thing! Excel is almost a goddamn programming language after all (and a functional one, btw), and it'as close as most will ever be to real programming.
So you make up this story that what they are doing is not really using computers. It's not the same kind of wonderful magic that you can do. And while you say "Now that we have "a computer in everyone's pocket" we should get our heads out of our asses and show people what a computer really is!"
Well what if that actually happened! what if computer/coding/programming literacy really did become as widespread as reading,writing and arithmetic. There'd be nothing special about you anymore! So you fight the future. you fight the "Fancy UIs" while saying you're not!
Okay maybe none of this applies to YOU specifically. My point is, if you're going to embark along this argument, I think you should really make an effort to prove your true dedication to it. Prove it's not just an expression of a deeper insecurity.
Bill Gates and Steve Jobs are masters here, and little to no one newcomers learn some good usability and simplicity lessons from them.. the complexity in tech are only getting worse, and eventually will require "saviors", wich are the ones people will praise for, and the tools people will use..
Notepads and Excels, not Emacs or Bash .. so its not the users that are the ones to blame.. we are.. The elistist geeks who think that everybody else should be a geek.. not savages
Personally, that excites me. Every once in a while I still marvel at the slab of plastic and glass in my hand that does all these amazing things, even after having had a tablet for years now. Then I marvel at the thought that I, singlehandedly and at virtually no cost (that I wouldn't have otherwise), can create an app for the thing that even my grandmother could download and use.
Hell, I marvel at the mere fact that everyone around me has a computer, uses chat applications, and carries around a PDA everywhere. There was a time where I was the only one like that and even embarrassed about it in public.
We've come very far, and I can't wait to see what comes next (wearables, probably).
That was TimBL's intention, but that ship sailed in 1995.
Other than "Papers Please," who is using Haxe for production (i.e., making money on products built with it), and for what?
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.
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.
http://www.openfl.org/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. :)
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.
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.
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.
Big thanks and congratulations to the haXe developers, and I'll keep an eye on it with high hopes the library will expand!
# 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.FWIW, the actual software is download by the script, eg: 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.
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...
[2] https://dl.dropboxusercontent.com/u/48356497/vizard/index.ht...
It's still years away.
Now, if you opt to forgo Flash on your device, the most you seem to miss are some games and annoying banner ads.
Has the HTML5 video streaming improved at all over the past year?
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.
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.
Basically I'm saying I have trouble trusting anyone who thinks that Flash was ever a decent high-performance gaming engine.
"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."
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...
https://github.com/RealyUniqueName/StablexUI
btw: There is Objective C target in haxe, so you can develop native apps for iOS in Haxe.
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.
Oh yeah, and animating in Flash is often pretty horrible too.
BTW fuck Adobe.
That's awesome!