At the Flash Games Summit today there was good news from Unity and Adobe about the Flash 3D API called Molehill. Adobe’s Flash 3D API Molehill public preview was released and Unity announced they will be adding export support for it.
New features available in the current Incubator build include:
- “Molehill” 3D APIs for Flash Player and AIR — A new set of low-level, GPU-accelerated 3D APIs that enable advanced 3D experiences across devices through the Adobe Flash Platform runtimes.
- Cubic Bezier Curves — Using the cubicCurveTo drawing API, developers can easily create cubic Beziers without requiring custom ActionScript code.
This is really a new era of browser based game development support that is going to be very exciting. It was announced at the Flash Games Summit by Thibault Imbert (Adobe Product Manager) and Lee Brimelow (Adobe Platform Evangelist) after they explained and showed examples to the audience of what “Molehill” could do for flash games.
Thibault has a list of available Molehill enabled 3D engines already:
Also a test of hardware accelerated molehill vs software rendered flash:
- Check 2D animation with the display list (check your CPU usage)
- Check 2D animation with Molehill (check your CPU usage)
Flash Molehill is coming and Unity will be targeting it for export. Unity states that they will allow it as an export option just like there are mobile options for iOS and Android.
These are exciting times. Today, at the Flash Gaming Summit in San Francisco (of which we’re proud Gold Sponsors), Adobe has announced the public availability of a beta version of the Flash Player, codenamed Molehill, that has a very interesting new feature: hardware accelerated 3D support.
Molehill exposes a very low-level shader-based interface to the graphics hardware. Adobe has decided to focus on that low-level part, and do that really well. The molehill pre-release will not be shipping with a 3D engine, scene building tools, model and animation importers / exporters, physics, lighting or lightmap creation tools, etc.
The article states that Unity will be keeping the Unity Player and the developer will decide when to target Flash or Unity Players or other platforms like desktop, mobile that are currently available and use the rendering platforms that work best with each (DirectX/OpenGL/OpenGL ES/Molehill… maybe WebGL in the future).
Q. Is this the end of the Unity’s own Web Player?
Absolutely not. The Flash and Unity Web Players both have their strengths. We’re excited by the opportunity to target the Flash Player and all of its features with Unity, but there will be plenty of experiences that the Unity plugin is better suited for. It will be up to developers in the end, to decide whether they want to target only the Flash Player, only the Unity Web Player, or some combination of the two (now things are getting interesting!)
Q. What programming language will I use?
You’ll have two options:
- For people with a Flash background:
Target our ActionScript API directly from Flash. Think:
var go:GameObject = new GameObject(“Just normal ActionScript 3 code”);
- For people with a Unity background:
Adobe is good to move to a model where hardware acceleration is part of the platform. Since Molehill is low level and competing products like Unity, WebGL, and others would take that in time, opening it so others can build tools on their platform will attract interesting new developments like this.
Cocos2D is a game engine similar to Flash in that it is a 2d engine but it natively renders to OpenGL ES. Cocos2D-iphone was originally a port of Cocos2D, a python game engine. But the similarities to Flash and DisplayObjects = Nodes, Sprites, Scenes, Layers etc. This helps to port games over fairly quickly or start in productive in cocos2D.
To see a small sample of what is on offer, please check out the demo section.
cocos2d engines are now available on almost all platforms, so if you are building a 2d game and need a 2d engine typically with Box2D physics, cocos2d offers lots of ways to get the game out there with some porting work.
- cocos2d-iphone (mobile)
- cocos2d – original python (desktop)
- cocos2d other
Firefox 4 in beta to be released soon, also joins the WebGL ranks with Chrome 9. Safari has it in nightlies and IE hasn’t even mentioned it.
There really is too much to list as this release is feature packed! Of course the most exciting being WebGL and hardware acceleration from our perspective.
Firefox 4 now has WebGL enabled by default. Based on the original 3-D Canvas work by Vladimir Vukićević, this is being
widely implemented in browsers. The WebGL spec is on the short path to a 1.0 release and we’re very excited to see this be used in the wild.
Hardware acceleration has finally arrived even though it should have been in nearly all platforms for web last decade, but we’ll take it.
Firefox 4 supports full hardware acceleration on Windows 7 and Windows Vista via a combination of D2D, DX9 and DX10. This allows us to accelerate everything from Canvas drawing to video rendering. Windows XP users will also enjoy hardware acceleration for many operations because we’re using our new Layers infrastructure along with DX9. And, of course, OSX users have excellent OpenGL support, so we’ve got that covered as well.
WebConsole looks like they are joining Chrome and Safari with built in inspection tools similar to Firebug, however Firebug still available.
Firefox 4 will include the Web Console. This is a new tool that will let you inspect a web page as it’s running, see network activity, see messages logged with
console.log, see warnings for a page’s CSS, and a number of other things.
Note this that is something that we’ll be including with Firefox 4 directly. It’s not an add-on.
(Also Firebug will be ready for the final Firefox 4 release.)
Firefox 4 has other improvements like layering (in-memory retained layers), caching/scheduling improvements and lots of other performance enhancements.
2011 is looking like the year all this is coming together, at least for Chrome, Firefox, possibly Safari (need WebGL in main release) and IE is still the biggest problem to getting WebGL. At this point WebGL looks like it is still over a year out as it may not come to IE until IE10 or possibly never, the WebGL 1.0 spec is on the fast track though (don’t we all love Khronos? They have been amazing with OpenGL since they took over). html5 is looking like it will be close to mainstream by the end of this year depending on the install rate of IE9 when released.
The world is waiting to see if Microsoft implements WebGL or tries the old DirectX/D2D only ways. Nevertheless, getting a push for hardware acceleration and fast renders in 2d/3d is a very sweet direction.
There is an article at gamasutra about Flash vs. Unity for the future of web 3d games. But it really is the future of true, hardware accelerated gaming, applications and interactives, not just 3d but massive, immersive 2d+3d works/projects on the web and available via browser.
Adobe, or Macromedia previously, owned 3d games with Director (8.5 with Shockwave3d) for a time, but that was really before mainstream was ready (2000-2001-ish). There was a lack of computers with dedicated video cards and GPUs. Today, even the bottom line computers have a decent video card. Also, the surge in mobile and the need for native level access to graphics hardware has spawned this new battle (Thanks Apple!).
Unity has the pipeline, 3d and has been doing that well since 2005/6. They emerged from Director and even have some members of the Director team working at Unity. Adobe is just getting back into this, they dropped Director (or left it wavering) and are now going to attack on the Flash level not just against Unity but to hardware accelerate it for mobile and better video playback hopefully (they currently hardware accelerate scaled video to full screen).
Like the Silverlight vs. Flash product competition, Unity vs. Flash is actually a good thing for developers and both platforms. With Torque3d wavering, html5 and WebGL more than a year out (and WebGL maybe 2-3) for broad mainstream support (I am looking at you IE), this is the time for Flash to move on this and Unity to keep going they way they have. Hardware acceleration makes these plugins relevant and ahead of the current standards emerging in html5 and WebGL.
I love using both tools and they have come a long way since painful Director lingo/w3d/plugin hell for hardware accelerated gaming, apps and interactives. The gaming industry and web are merging, these two products should get a good portion of that projected $87-billion total game market’s annual revenue in five years, as investment advisor Digi-Capital predicts.
It is also a great time to be a developer having these companies vie for developer support. It is exciting that hardware acceleration, 3d games, and widening game industry are all emerging and will be a big thing for the next few years at a minimum.
It is finally time to kick it up a notch. Game on!
EaselJS is a new library from Grant Skinner that somewhat mimics the Flash display list/display object heirarchy. It is the result of the game Pirates Love Daisies which demonstrates some great gameplay in html5.
The API is loosely based on Flash’s display list, and should be easy to pick up for both JS and AS3 developers. In our preliminary testing, Easel appears to be fully compatible with iOS, Android, and all major browsers that support the canvas element.
The API contains these familiar classes for Flash/AS3 developers:
Abstract base class for all display elements in Easel. Exposes all of the display properties (ex. x, y, rotation, scaleX, scaleY, alpha, shadow, etc) that are common to all display objects.
The root level display container for display elements. Each time tick() is called on Stage, it will update and render the display list to its associated canvas.
A nestable display container, which lets you aggregate display objects and manipulate them as a group.
Draws an image, video or canvas to the canvas according to its display properties.
Displays animated or dynamic sprite sheets (images with multiple frames on a grid), and provides APIs for managing playback and sequencing.
Renders vector drawing instructions within the context of the display list.
Good news for the beginning of hardware accelerating the web, WebGL will now be part of the main Chrome releases not just a compile option for Chromium nightlies.
Google Chrome 9 enables WebGL support by default. “WebGL is a new web technology that brings hardware-accelerated 3D graphics to the browser without installing additional software” and it can be used to create cool applications like Google Body Browser, Field, Aquarium and more.
The update for Chrome 9 also sandboxes Flash, WebGL and plugins like extensions and tabs so that using them will be more secure and not crash the browser or the tab. Hopefully Safari has this soon, and then a few years from now IE may get it. Or they will put out their own DirectX web plugin so everyone has to write it twice like currently in game development. /sarcasm
WebSockets and many other great features are now available across the iOS devices that are updated to iOS 4.2.
You can test your devices for WebSocket support and I just tested iPad and iPhone/iPods on iOS 4.2 and it is a go.
The update also adds some other excellent Safari browser features including:
- As mentioned, WebSocket support
- Accelerometer support
- Improved SVG and Canvas rendering
- Better Ajax
The new Safari on iOS 4.2 makes the iOS platform the current best html5 mobile solution for interactive apps and games in the browser. This should add some fun in terms of interactive web, games and better web experiences for iOS users.
- More on new features in iOS 4.2 Safari
- Test your browser for WebSockets
We hope they add in WebGL support soon, there was mention of WebGLRenderingContext but not supported in browser yet.
Helpful tool for taking vector art from Adobe Illustrator .ai assets and exporting them as html5 with canvas script.
John Nack from Adobe has been presenting Adobe tools exporters to html5 recently. One is a Flash to html5 convertion tool. It looks good for converting flash vector assets to html5, but you could also use the Illustrator exporter to html5 (canvas/svg) for static assets.
This converter doesn’t appear to do anything for scripted animation or code, just exporting assets via old skool timeline. But this is definitely the right idea.