Flash Player 11: Gaming Platform?

Flash Player 11: Gaming Platform?

When Director was being overtaken by Flash, you could see the signs by what they were teaching at local colleges, what jobs were hiring for, and activity centers online based more around Flash’ growth vs. Director. The same happened with Flex; Macromedia employee’s typically involved on the Flashcoders email list started to go quiet and a significant amount of new blood, and old, popped up on the Flexcoders email list. Product strategies favored new features for the Flex component set and not Flash.

Now, while we’ve reached a point where while there is still room for innovation + needed features, the Flex & Flash community is losing developers.  EDIT for JD: *** Not en-masse; the Flex community is growing continuously, I’m speaking specifically about a small, yet influential group of developers I follow on Twitter.  *** This isn’t a wholesale abandonment like it was for Director to Flash. There are still many developers who utilize multiple technologies on a variety of projects. I’m speaking specifically about the variety of developers in the Flex & Flash community who’ve publicly shifted their focus to talk more about iPhone & Unity development then 100% Flash/Flex. Keith Peters, a prominent Flash Developer, has been doing a significant amount of Objective-C development for iPhone apps. While not 100%, he hasn’t coded AS3 in 6 weeks. I’ve read about many others on Twitter who typically brand themselves as Flash/Flex developers who have started doing iPhone development, some professionally. If you’re getting paid to create applications for the iPhone, you’re not getting paid to utilize the Flash Player.

Others have, at a minimum, been really impressed with Unity3D’s offering: a wonderful gaming platform for the web with many features Flash Player has, and many important gaming specific ones it does not. Additionally, it has other devices it can run on that Flash Player cannot, specifically iPhone. Others have thrown their entire being at Unity3D as opposed to Flash/Flex, even if Flash/Flex still pay’s their bills.

The above, combined with some recent discussions on Twitter from Mike Chambers (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) and Ted Patrick (1, 2, 3) from Adobe, are starting to show yet another shift in Adobe’s direction, one that appears towards supporting gaming more formally. To be clear, Flash Player has always been a wonderful gaming platform for both web and desktop, for both indie and bigger companies. From the simple/addictive/viral/spawned many clones Penguin Baseball to the French MMORPG Dofus. Alien Hominid, which started as a Flash game, became so popular it evolved into a platform game. The reverse has happened as well with indie games being built around alternative themes for existing brands such as Starcraft Tower Defense, and Half Life’s Codename: Gordon. Some really show off the power of the Flash Player’s performance such as my favorite, Raiden X.

Why games? In 2007, according to an ESA report, it was a $9.5 billion dollar industry. With the exclusion of films like Titanic, Spiderman, and Batman: The Dark Knight, many game profits exceed movie profits. The budgets for creating games has already surpassed what it costs to make some movies.

Games also have a significant impact on user’s time spent on the site as well as the frequency they return the the site. This increases the chance for higher advertising conversion rates. This is used a lot in sites such as MySpace & Facebook, as well as other larger brand properties who utilize games to enable incentive for users to come back while the community grows.

In short, a good business opportunity to spend resources to support that industry in adding features for it into Flash Player 11.

The challenge with Flash games, however, has been piracy. SWF’s are notoriously hard to make domain specific; meaning it can only run from a certain website. The SWF format is open enough, therefore decompilers make it easy to remove whatever protections were there. Being just another web asset, countless sites either link to other sites with the games, host on theirs, and profit from the ads. This happens a lot on Flash Lite mobile portals as well.  Some services such as a MochiAds have helped game creators track their content, know where it’s being used, and profit from it.

Bottom line, though, SWF’s are really easy to hack around and most games that I’ve seen are just that; easy to work around/defeat their protections. This is mainly due to it being, as I said, easy to decompile. Additionally, it’s hard for the developer to protect his/her content.

So what is Adobe planning? Based on what I’m reading, here are my inferences:

  1. True hardware acceleration for GPU.  If a system doesn’t support it because of the challenging nature of supporting various hardware, you can still fallback to Flash Player 10 which has the hybrid software GPU renderer.  Having to learn how to optimize AS3 is an oxymoron; you should just have a well performing language that allows you to utilize normal gaming development API’s.  Doing this will allow a larger audience to tap into the hardware that’s already there, and thus enabling a large gaming developer audience more opportunities.
  2. Improved API for gaming interactions.  While DisplayObject.hitTest is nice, PixelBender and/or BitmapData.hitTest can often be better.  You’re sometimes forced to make design changes, such as using meta-tiles (coordinates of the screen that, if objects are in, qualify for hit tests vs. all objects on screen) for large number of targets.  Wouldn’t it be better if you could just use native API’s that run at C speed vs. having to “work around platform limitations”?  This goes beyond just hit testing objects, basically anything you need to create games as well as powerful lower-level API’s for linking phyiscs and the existing 3D boilerplate code that Flash Player 10 offers.  The strategy from Adobe since Flash Player 9 has been to offer powerful, low-level API’s which allows both Adobe and the community to build libraries on top of it vs. burdening the player’s backwards compatibility when new versions are to be released.  An example is Flash Player 10’s latest 3D apis that allow 3D engines to be built on top of it vs. forcing a particular one upon us.
  3. New Sound API: If you’ve used the AS3 one, enough said. Whack API with old b|u|g|s.  Granted, you can create magic, but we shouldn’t have to be a group of geniuses to create great audio experiences.
  4. DRM solution for content.  Adobe already has a server and client one in place for video.  When large brands want to put video online, they are often concerned about misuse of their content.  Utilizing both the encrypted RTMP protocol as well as the DRM API’s in the Adobe AIR runtime, video content is already being protected & controlled this way for video content creators.  This would help application developers as well, not just game developers.

If you’ve played any Unity3D games, read the raves by Flash industry celebrities, or read into why Apple would suggest you build all iPhone apps to be resolution independent and then hire XBox’ former Senior Director of Strategy… you can see why there is competition for gaming developers.  If you can’t get on the iPhone because it violates the terms of use and Apple would prefer you purchase a Mac to develop in Objective-C anyway, and you don’t have the hardware horsepower to compete with Unity3D, it seems a good strategy to find a way to compete with Unity3D & iPhone’s gaming future is to get on as many devices as possible with a powerful gaming runtime alternative.  That appears to be what Adobe is doing.

27 Responses

  1. Joc

    Couldn’t agree with you more, especially in regards to Audio. Not so sure about the DRM issue. Might be a better idea to go with in game purchases like many game developers are doing on other platforms.

  2. Maybe I’m just cynical after being a Flash game dev. for so long and seeing each new release offer next to nothing for us.
    I fall into the “Unity is the daddy” camp, I find it hard to believe F11 can even get close to being as powerful as that.
    I know I’m going to be hit with Flash’s penetration figures, but that doesn’t equal a good gaming platform, it just means a lot of people have got it. Like acne.
    Anything that makes our jobs easier is obviously a good thing but so far it’s all been underwhelming. 2009 and FP10, and we’re still asking for full GPU support.
    Hopefully in a year I’ll be able to come back here and eat my moany old words.

  3. TK

    DRM does not work. Let’s not even talk about Adobe’s “encrypted” protocol :P

    With that said, Adobe SHOULD be making strides toward making SWF files harder to decrypt. That would be a good stride. I really hope to be impressed by the next version of Flash Player. Seriously.

  4. Amen. I agree with the first comment in that, I’m having a hard time seeing the flash player perform like Unity’s. But then again, I wouldn’t think Flash would be targeting Unity’s level of gaming potential either. I could be wrong though ;)

  5. Great article! I hope your article inspires the Flash Player team and Adobe to consider these things in the next Flash release.

    Its insane – at the last conference and Flashcamp I’ve been to all people want to talk about is 3D gaming – if Adobe doesnt do something they’ll lose the developers to Unity3D and IPhone.

  6. I disagree with you on a lot of specifics, but I do hope that Adobe gets really dialed into what game developers need.

    My rant-ish thoughts on the matter: http://coderhump.com/archives/461

  7. You may be reading too much into mailing-list presence… factors such as noise ratio, overall volume, and new-topics-vs-reruns all play a role too.

    The phrase “the Flex & Flash community is losing developers” needs substantiation… easy for an external de-vangelist to cite this assertion as gospel. (I see increasing realworld interest in SWF, even as the forms diversify, and would encourage people to explore any new technology/marketing options.)

    Flash is used a lot for casual games, but recent releases have stressed expressivity (Pixel Bender, eg) and efficiency (fast scripting, Flex Framework, etc)… improvements which help gaming, but which are not targeted at gaming. (Use of device-specific hardware acceleration is a general overall trend.)

    For decompilation, it’s tricky — some people want sourcecode hidden, some want it open. I haven’t seen indication yet of the way to reconcile and satisfy these conflicting desires.

    jd/adobe

  8. John, a clarification. In my consulting, I see more and more Flex Developers coming to the platform every day. Additionally, I see more and more designers getting formal / informal training in Flex related design tasks/skinning/workflows. So, yes, the SWF platform is growing.

    What I’m saying is, I am seeing traditional Flash/Flex developers defect to iPhone and Unity where traditionally we all collectively just bashed competition. So yes, SWF usage is increasing overall. I’m just shocked at seeing a small number of both stalwarts and n00bs starting to defect whereas in the past I thought that would never happen given the landscape. To me, that says something important is happening.

  9. From my perspective of the world, a lot of Flex developers these days are early adopters. As the technology–and developer base–matures it only makes sense that a lot of those early adopters will look for the next big thing. Today iPhone development is the next big thing.

    I have serious doubts that there is a mass exodus of Flex developers to the iPhone. As you say yourself in the comments, “swf” use is growing.

  10. There’s a lot of fuss about hardware acceleration etc, but ask yourself – is that what’s stopping you make a great Flash game? Really? It’s much more likely a lack of ideas, time or the fact that there’s not huge money in it.

    The nice thing about Unity3D is that it is built for games with lots of helpers and shortcuts, ditto microsoft XNA. Flash is more general-purpose which is great, but means you often have to re-invent the wheel.

    Maybe all we need is a big library of gaming helper classes to ship with Flash?

  11. Well said Jeffry – I totally agree

  12. 열이아빠의 생각…

    새로운 플래시 플레이어는 게임 플랫폼이라는 음모설(?) 관련자들의 트윗까지 철저하게 분석하는….ㄷㄷ…

  13. Anyone who doesn’t consider resolution independence when making iPhone content (or any mobile content, for that matter) isn’t very forward thinking. Within minutes of creating my first iPhone UI, I knew it would be silly to force the controls to fit into the current iPhone resolution. There was no doubt in my mind that I should to react to the dimensions reported to me by the device at runtime. Who knows when a new phone will offer larger dimensions or another non-phone device will be able to run the same apps at a different resolution.

    As for decompilation, I’m always a little torn. Part of me wants to think “OMG! THEY’RE GOING TO STEAL MY CODEZ!!”, but a more pragmatic side of my brain wonders just how much time (and money) I’ll spend trying to secure my code when I could be making more great content that stays miles beyond anyone trying to rip off my work. I try very hard to listen to the second argument far more often than the first one. Yes, it would be nice for Adobe to do some of that work, but I can offer the same argument for why they shouldn’t try too hard. The arms race is ultimately futile. If Adobe has to get the real code out to actually run it in Flash Player, that means anyone can do the same if they’re determined enough. It becomes a question of how many people are determined. I think taking a few minutes to construct a few basic security measures in my code to stop the majority of casual thieves will be better than becoming involved in the long-term arms race.

  14. hack

    Hi,

    one of the best articles concerning security and hacking in flash apps (and if it makes sense setup protections) can be found here: http://www.balsamiq.com/blog/2008/10/19/my-views-on-software-piracy/

  15. I agree with Iain,in the sense Adobe should provide “lib” or a framework for gaming.Like Flex-SDK,pushed for the RIA,may be another SDK on top of Flash player for gaming.
    After Flash has taken over Director,its but obvious that all the major features of Director(shockwave) should come to FlashPlayer or else Adobe will be losing both,when we consider Game development.
    Regrading developers shifting to IPhone development,I am also afraid of the trend as Keith Peters and Aral Balkan like Flash gurus shifting interest to iPhone dev.
    May be this is a wake-up call for Adobe for FlashPlayer.

  16. Great post and kickoff to a discussion. But, I think your presentation makes things very dirty.

    First, the migration of Flash devs to iPhone is not really a movement away from Flash but towards a totally different platform/hardware. Unity is interesting but the entire thing you see here is an attraction of the iPhone–for its optimized and attractive hardware… for its success… and for its app store. It has NOTHING to do with the fact that Flash’s APIs have room for improvement.

    As for web-based games I think Flash is super far ahead of any competitor. Though, maybe the question is whether web-based games are interesting. It’s also a statement on Flash’s (so far) lackluster (or complete failure) on mobile. There’s a lot of blame to go around–and it’s getting better… but I’ve been hearing how Flash/mobile is going to be big “next year” for nearly a decade.

    Regarding DRM–that’s just a bad word. To really make it work, you need the hardware component. But, there are already solutions. Now, without saying how they do it (because I don’t know) you’d be pretty hard-pressed to hack one of the Flash .swfs hosted on http://games.msn.com They’ve got some crazy magic ActiveX solution that works (or at least appears to work well). But, the question to me is whether I want Adobe to invest in some solution to this problem. If there was some elegant and functional (read “something that worked that doesn’t cost a fortune”) then I’d be all for it. However, what’s in it for Adobe? If all of a sudden .swfs were un-hackable I don’t think Adobe shares would go through the roof. So, what they might come up with is some kind of hosted solution or server. Who knows–I’m just guessing. But I don’t think that issue alone is one that a) needs a heavy handed solution or b) can’t be solved much more easily. I think partially, you can discount the issue all together, but I can see valid calls for it. But… what do people use instead? That is, if I want an un-hackable game on the web what do I do? Flash still solves this well.

    After all this, I think the bottom line is your post is helping encourage a movement that has already started–so, for that: thanks.

    Oh, one last thing: let’s decide where Flash will fit in the world of games. Sure a ton of money is out there–but it’s spread around: consoles, download/disk based, and devices. Sure, Adobe wants all of those–but in my opinion Adobe is already spread across a ton of areas and needs to focus some.

  17. The reason people are excited about Unity is because they can see where it’s going and that it targets and addresses a specific area. I don’t have to worry about if they are going to add game features. I know they will. With the Flash Player you have to vote or campaign to Adobe get a feature added.

    With an open source project you have the option to add the features you need. With the Flash Player you aren’t allowed to. This is the main problem presented by the open source community. It can be frustrating.

    Adobe Flash Player is an amazing platform but the way features are chosen, the rate they are added in and the amount of information on the direction they go in or what they are up to could be improved. I’m not talking about Flex SDK. Only the Flash Player.

    It would be beneficial for Adobe and their investors if they could work with the community more somehow. For example, if they worked with Nicolas Cannasse (or let him work on) the language features and optimizations of the Flash Player (read http://coderhump.com/archives/438). Or if they consulted with Andre Michelle’s team on audio features to accurately meet their needs (http://www.hobnox.com/noxtools.902.en.html)? Maybe more teams led by those companies (even external companies) or individuals deepest in the field…

  18. …that way, if we wanted, we could create a Unity library, add support for controllers and add more sound support…

  19. Ammar

    What about support for all key press in full screen mode?

    btw, here is a good article about preventing decompilers:
    http://asgamer.com/2009/how-to-and-why-to-encrypt-your-flash-game

  20. I’m with you on that Judah. Many of us have been waiting for Adobe to at least comment on whether FP-444 (intercepting uncaught exceptions & errors) is a priority for Adobe at all — and considering it is pretty close to the most voted for bug ever… but all we’ve gotten so far on this issue from Adobe in over two years is silence.

    I think this is a major factor that many flash devs are migrating to other platforms: not that the technology is advancing slowly necessarily, but that there’s no community input on the direction. Like Judah said, Unity3D devs do not have to worry if game features will be added: they know they will. Whereas Flash devs have no idea what will and won’t make it into the next version of the player beyond some paltry marketing speak.

    I have no beef with the Flash Player being a closed technology, in fact I consider it to be Flash’s saving grace guaranteeing its continued ubiquity… but Adobe needs to solicit more community feedback, like the Flex team does. I know it must be a difficult thing for Adobe to balance the needs of all the communities asking for features… but Adobe, at least show us that you’re listening guys, that would be really nice every once and a while. And not from your evangelists who just shrug and say “no comment” at meetings.

    For instance, it would be great if Adobe announced that it was including some serious game dev features in the next Flash Player, even if there were few specifics for now… rather than people like Jesse here having to play guessing games from their press releases.

  21. Sorry… guess I was in a bad mood when I wrote that. Adobe you rock, and most times you do listen.

  22. Hi,
    You can’t protect a game, SWF or not, there are always those who are going to crack it. However you can build a business model like WoW where this doesn’t matter.

  23. [...] article on Jesse Warden’s blog , ‘Flash Player 11: Gaming Platform?’ There is lots of great (and needed) comments and discussion regarding this issue. I too have [...]

  24. Fazoum

    Unity is perfection.. i dont see the point of just tacking 3D on to lumbering flash when there is something optimized for it from the start

  25. [...] his blog entry Flash player 11 gaming platform- Jesse Lays it out crisp and clear like Jesse does [...]

  26. jacob

    For the devs I know AS3 had enough learning curve for people to be able to write apps for the iPhone and Unity3D. I find often in many of our discussions that we are just becoming bored with what we write in Flash (sites we would never use ourselves) and see the excitement in writing stuff we would (real 3d games with physics, mobile apps)

  27. [...] of the next “Flash killer.” First there was Silverlight, then JavaFx, then Unity3D (at least until Flash 11 ; ) — and now it’s HTML 5 which is inspiring people to take pot shots at [...]

  28. mike

    i see 1 problem adobe is trying to hard to do open source. half of the flash spec is out in the open, that means for flash 11 we ether have a strong encription that no one knows or a open source tecnology.

    dam i want my cake and eat it :-)

  29. I work to develop touchscreen experiences using flash (flex). The principle reason we use flash still, with other hardware accelerated alternatives out there, is that flash doesn’t need windows; and can be deployed over the web. Flex is probably still the best choice for us, all things considered. That said, my flash apps sure look slow and geriatric next to the WPF apps we do for demos. Plus, said WPF apps run decently on low end (windows) machines whereas almost-comparable performance is only within reach on slam-dang bomb diggity machines running flash. When you are pitching your 2000 terminal interactive experience to some company, being able to run a compelling ui on cheap hardware is pretty important from a business perspective. Bottom line, I’m positive my firm will move away from using flash if true gpu utilization isn’t there in the next flash player; maybe sooner since the performance gap is so bad.

  30. Paul

    Very good article. I’m a ten year flash veteran who is using Unity on a daily basis now. Even though Unity needs lots of work still, I can’t see how Flash can possibly compete in just one version up from 10. Adobe’s products are becoming less and less attractive to me over the years. Director was left to die by them and I found WPF to be a better alternative because of it. However I’ll always gravitate towards products that work on a Mac if I can.

  31. Davide

    Very nice article.
    The author is right. After i saw the Unity3D part, i was temped to switch. Adobe should bring Full Hardware Acceleration soon to the flash patform. Silverlight is moving forward. Google O3D sound really promising. Unity 3D rocks. Kronos Group announced WebGL specs. Would be great to integrate this last one in flash. Move on Adobe, or you will really bite the dust.