Skip to content

Finally! We can talk about Molehill! (GPU-3D in Flash)

October 27, 2010

I’ve been in the Molehill Prerelease program for a few months now.
Today I am proudly showing you what’s Molehill all about.

When people are complaining about developing game in Flash, most of the time it drills down to two main arguments:
1: No hardware acceleration
2: Bad resources management

Well it’s almost over! People will have to find other reasons!

The new Flash 3D H.A – Codename: Molehill

As I’m sure you already know it, Adobe just announced our new toy: Molehill.
A new Flash Player supporting 3D Graphics with Hardware Acceleration and a brand new 3D API with a better resources management system.
Needless to say, it’s a web gaming revolution. Better, it’s not only for the web, but also for mobile platforms!

Technically, “Molehill” is a set of programmable shader-based 3D APIs, exposing features like z-buffering, stencil color buffer, fragment and vertex shaders, cube textures and more. “Molehill” will enable developers to leverage the GPU where possible, while providing the flexibility to fallback to a CPU software rasterizer if the hardware is incompatible.

Today, Adobe Flash Player 10.1, renders thousands of non z-buffered triangles at approximately 30 Hz. With the new 3D APIs, developers can expect hundreds of thousands of z-buffered triangles to be rendered at HD resolution in full screen at around 60 Hz

There are many other solutions… is it?

I think Adobe didn’t have much choice to go that way. With WebGL, HTML5, Unity and the Apple war, they had to do something big.

  • HTML5 and WebGL: my guess is they won’t match flash games for many months / years.
  • Unity3D: I know they have quite a head start on 3D for the web, but really think that this move from Adobe will gain back a lot of developer that went for Unity for 3D.
  • As for the “Unity3D is not only a renderer, it’s also an editor”, the flash community is big VERY big and I’m sure there will be plenty of third party solutions to create Editors just like Unity3D.

    Adobe already announced:
    The 3D capabilities enabled by the new APIs will also be available to the broader developer community through popular ActionScript® 3D frameworks, such as Alternativa3D, Away3d, Flare3D, Sophie3D or Yogurt3D.

    Can you remember the time when flash didn’t support GPU-3D ?

    In may 2009, I was at the Login2009 conference in Seattle and there was a round table called “Barriers to entry: Is Flash the answer to Life, the Universe, and Everything?”
    Here is the description:
    Is Flash, the most blessed and holy of all browser plug-ins, our only hope for eliminating the most deadly barriers to entry for online games?
    If your game requires a browser plug-in or downloading and installing an application, do you stay awake at night worrying about how many players will never install your game and thus will never get to the “fun” part?
    Is there anything we can do? Are there any solutions on the horizon that will work in every browser without installing additional plug-ins? Can Flash deliver the kind of high-end content our tools will let us create? What about Flash-based technologies like PaperVision3D? Are we going to get help from the developers of the major browsers?

    It was kinda funny back then because most game developers were saying that the only real solution “for high-end content” at that time was to go with Unity3D. And the big question was “If Adobe ever introduce 3D HA to the Flash player, would you choose Unity or flash to create 3D games?”
    The real answer was never given because there was always somebody to say “Yeah but Adobe won’t do it (3D with HA)! They move SOOO slowly.”
    Now that this is coming, I’m smiling just thinking back of that discussion 🙂

    My part in this

    I’ve worked intensively with Flash for a few years now and I’ve followed the flash scene closely all that time.
    The engineer working on the project are releasing good builds, fixing bugs entered by the Prerelease community and adding feature very quickly. They are also doing very fast iteration and making sure the API is convenient and optimized with a lot of VERY experienced and qualified developer. I can honestly tell you that I’ve never seen Adobe making such good and fast development.
    Being a Prerelease community member, I’m giving a lot of feedback on performances and optimization that could be made and making sure that the current Flash 10.1 performance problems are part of the discussions.

    Game development using Molehill at Frima Studio

    I try not to talk about my “day job” too much in here to really keep things apart, but I think this time it worth bending the rule.

    Me, a good friend and colleague of mine (JP Doiron) and many other folks at Frima have worked on games prototypes using Molehill and we were able port a proprietary 3D engine and extend it to create a very nice demo for the Adobe Max presentation by Sebastian Marketsmueller (Flash Player engineer). In his presentation on Flash Player 3D Future today he showed a lot of cool stuff including our Zombie Tycoon demo.

    Official Video

    I strongly suggest you watch it in 720p!
    By the way, this is a special version just for you guys to see what kind of performance we can get (HiRes-Stats on top left corner)

    Check out the Official Frima Studio Page

    Tech

    This video shows many things:

  • Over 500 avatars (with full GPU-animation-skinning and multiple models, animations and textures sharing)
  • More than 500 000 polygons
  • Multiple sort of mapping: ShadowMap, LightMap, NormalMap, DetailMap
  • Dynamic Lighting: directional light and spotlight
  • Particles: Smoke, Fire, Rain, Bullets, Homing missile
  • Props
  • Special Effects
  • Animated Screen Image Overlay
  • Flocking (Boids) system for zombie movement
  • And the best thing: All of that in a 1280×1050 window at more than 30fps with practically zero memory allocation and very small usage of the CPU.

    I don’t know how this looks to you, but my feeling tells me there is going to be a LOT of new 3D MMOs browser base in the next months / years.
    Thanks for that Adobe!

    Compare!

  • In flash 10, having playable 3D game with this kind of graphics was very good:
  • Flash 10 Rendering

  • And now, here is what we can achieve with molehill (again, running at 30fps):
  • Flash Molehill Rendering

    Reference

    Molehill at Adobe Labs
    Frima Studio Zombie Tycoon Tech Demo running on Molehill

    From → general

    31 Comments
    1. Wow! love the demo video. I can’t wait to get my grubby hands on the new 3D API’s and player.

      With the talk about unity… I wonder if they will make it so they can target flash as one of their targets to build for. Would make things very interesting for unity as the IDE and flash as the player. plus still being able to code once and deploy anywhere type of concept.

      regardless… it’s great to see adobe finally put all this stuff in to the player.

    2. Exciting! I can’t wait for the prerelease to extend, or beta = )

    3. gludion permalink

      I’m wondering what percentage of web users have 3D hardware acceleration. Probably this audience is familiar with 3D games and will appreciate “new” games from the web.
      Regarding non-accelerated computers (like mine), I wonder if Flash will match Unity, which performs more than decently.

      • I’m not sure to understand. Why Unity would be better on a non hardware accelerated computer?
        Flash Player is using the world’s fastest pure software 3D renderer.
        The new Flash release is going to have a a software rendering fallback.
        So I see no reason why unity would beat flash on this side.

      • Jules permalink

        Define “non-hardware accelerated”. Do those even exist anymore? For instance, I have a 12″ laptop with a 9 hour battery life but it still has an Intel chip with built in GPU. In fact, all of my laptops from the past 10 years have HA, including a very low end netbook. Yes, the FPS is pretty poor, though running an old 3d game I wrote in 2005 I can still leverage 24fps. The fact that OS’s now have 3d hardware acceleration in them suggests you are slightly out of sorts with todays machine specs.

        In any case, any developer concerned with reaching the highest number of users will simply make sure their product works on the lowest spec machine they can get their hands on. It’s not difficult to write auto-detail drop down and for the worst case Adobe have already announced software rendering fallback.

        I think we need to look at Molehill as another tool in our toolbox and get away from blindly moaning about new tech just because you have committed to a rival technology! Unity still has it’s place but it never really penetrated the web and now that’s looking even less likely.

        • gludion permalink

          @Jules & jpauclair: Well I was just asking questions. Thanks for your answers.

          BTW I’m not a Unity developer but just a viewer, I was just impressed by games running quite well without 3D chips… I’m quite confident Adobe will also publish demos testable on low end computers.

    4. Alex permalink

      Is there any hope for 2D games to benefit from gpu acceleration? I imagine there will at least be ways to use the 3D engines for 2D games.

      Do you know if the hardware acceleration requires full screen?

      Thanks for posting this! I’m very excited about this direction for Flash.

      • I will refer you to Thibault Imbert for awsering this one (http://www.bytearray.org/) This is still in prerelease and I’m just not sure what details we can / can’t talk about!

      • Jules permalink

        2d (non-web) games have been using 3d hardware for years, with sprites laid on two a couple of polys and without persepective, if you get my drift.

        Perhaps what you really mean is will the hardware acceleration apply to existing 2d vector drawing and I’m not sure it will.

    5. Wow, new toys! 🙂 You get that feeling again that anything and everything is possible!

    6. gludion permalink

      Another question: do you know if hardware-acceleration will enable to synchronize Flash player screen refresh with Monitor frequency ?
      (this is a well-know and old problem for game devs about flash difficulty to get a perfect scroll without image distorsion due to Flash player use of windows timers out of sync with monitor frequency)

      • I knew there was going to be a lot of technical question here! Again I’m sorry. I just can’t talk about that. You may ask Thibault on his blog: bytearray.org

      • Damion Murray permalink

        I’m thinking that since the API will be off-loading rendering to the GPU then, as far as 3D rendering is concerning it should be synced to the screen’s refresh rate. Still this is just speculation on my part…

      • Damion Murray permalink

        Found confirmation:

        http://www.bytearray.org/?p=2555

    7. viaria permalink

      my eyes with tears. thanks adobe.

    8. This is absolutely amazing. I thought the racing game shown at the Adobe Max conference was impressive, but this is just incredible. This is going to change free games on the internet drastically. Great post, I have your blog bookmarked now.

    9. I’ve read a lot about this new API and I really have to say that I wonder about the number of developers who actually have access to it, or as you said, being part of the prerelease group.
      In April this year, my company started developing it’s own engine, based on alchemy. We do a different approach than most of the other engines. Instead of using the native classes like drawTriangle, we created a software rasterizer, similar to molehill’s fallback-renderer SwiftShader. I’m a bit pissed off, because so many companies develop their games with molehill, but we don’t have the ability to do that.
      Could you please gimme a hint in how to become part of the molehill prerelease program?
      I already wrote an email to Thibault Imbert, but I didn’t get any answer yet – he may have received a whole bunch of mails during max 😉

      Thanks in advance!

      • I guess he did!
        And you’ll hate me for what I’m about to say but..
        “You have to ask Thibault Imbert for that”

        😉 sorry!

    10. I am wondering about that too. My main usage for adam will be for reading.

    11. Impressive. Can’t wait to actually test it by myself in my browser with some annoying flash ads on the side to see the performances in an real environment.

      I have been disappointed so many times by Adobe that i have some difficulty to actually believe it. For now, it’s still a video. I hope that not a just a marketing demo to counter the raise of HTML5…

      • trust me! I have no advantage in contering HTML5 🙂 it’s just plain awesome..!

    12. Wow, this is some impressive stuff! Now I’m browsing this entire blog! Found some great gems already!

    13. YopSolo permalink

      whaoou can’t wait to learn to use this new 3D api !

    14. I already wrote an email to Thibault Imbert, but I didn’t get any answer yet – he may have received a whole bunch of mails during max

    15. Your blog is pretty interesting to me and your topics are very relevant. I was browsing around and came across something you might find interesting. I was guilty of 3 of them with my sites. “99% of site owners are doing these five errors”. http://is.gd/w4g8Ml You will be suprised how fast they are to fix.

    16. You are permalink

      Thanks for what you’ve. This can be the top submit I’ve study

    Trackbacks & Pingbacks

    1. 9 Videos showcasing Flash 3D GPU | Photon Storm
    2. Finally! We can talk about Molehill! (GPU-3D in Flash) (via jpauclair) « Trent's Blog
    3. WebGL around the net, 11 November 2010 | Learning WebGL

    Comments are closed.