September 12th 2011 | John Dalziel
The annual Flash extravaganza is on for the sixth year in a row and as usual, it's a mekka for Flash enthusiasts. The lineup is solid, the wind is solid, Adobe sneaks new features and the discussions go far into the night. Welcome to Brighton!
Former suspects such as Mike Chambers, Marc Anders, Richard Galvan and Lee Brimelow from Adobe did this years keynote, but there was also a new addition - Paul Gubbay. Paul walked us through how expressive web technologies is the new wine for Adobe and this talk really pushed the point across. Adobe are no longer religious about Flash, but rather making the tools that enable expressive content. He also showed a new version of Adobe's CSS regions demo. We can certainly see this being useful.
After this, Mark Anders came on stage and did a nice demo of the second preview of Adobe Edge, just released on Adobe Labs. SInce the first version, the tool has now come as far that it's actually useful. It's not yet polished, but you can really see this going places. The new animation model/timeline looks good and there were some really nifty features in there.
Finally it was time to talk about Flash and Lee Brimelow took stage. Lee always comes across as a guy with great humor and a solid dose of sarcasm. He has now moved to the newly created games department of Adobe and get's to sitt all day playing games. He showed great examples such as Circ, TweetHunt and The Machinarium. The latter is a staff favorite here at Flashmagazine, but it's also the number one selling app in the App Store. It's also built entirely in Flash.
Next up from Lee was Native Extensions, a new mechanism that'll make it possible to write custom extensions to the AIR runtime. This could be any kind of file that is then executed as the program installs. You can also call functions on them and Richard Galvan later showed code hinting support for this as well in the new Flash Builder. Lee's demo showed how he can now make apps that use the Android notification system. All in all, very nice features that will open so many new possibilities.
Another cool demo was a brand new (unnamed) Open Source API that enables you to use Sprite-sheets as if they were ordinary DisplayObject. The big difference though is that this new API is fully hardware accelerated using Stage 3D so you can push thousands of 2D sprites to the screen and still run at 60 frames per second. This will change Flash Gaming forever and it really looks like great stuff. He also showed this neat Particle Designer app that would export to the .pex format that Flash then can use at runtime.
Finally, Richard Galvan showed some sneaks from Flash Authoring, showcasing some neat export options that'll allow you to export sprite-sheets directly from Flash Authoring. He also showed how you would pack an AIR native extension with your project by just adding it to the AIR file.
Every (Flash) developer does debugging and logging. From the most basic trace-statement to more advanced loggers that tell where a trace came from and parameters used. DConsole takes this many steps further by integrating a in-file drop-down console that you bring up by pressing Command + Shift + Enter (or any other combination you choose) that is very extendable.
On the most basic level, it's just a solid trace-logger that will output to the standard output in Flash/Flash Builder. By adding the console to the stage, you can bring up this list of trace-statements in the console while the SWF is running in any browser/player. Here you can use filters that will apply color-coding to the text output based on the importance of the log messages and you can also filter on this. The logging is based on SLF4AS and through extensions you can even pipe this output to external servers.
On a more advanced level, you can introspect all objects at runtime, show fps, memory usage, mouse and key positions, the display tree and much more. say you have a designer breathing down your neck that says that the logo should be "a little to the left". You could tweak it, compile, send him the file and ask if that was how he wanted it. You could also just grab the designer and at runtime - just bring up a visual inspector for X and Y position and tweak the position live at runtime until our designer is happy. And you can also extend this yourself. You can add your own Commands that map to functions that you can run whenever you need. There's a lot of useful plugins that come with the product, but Andreas showed how quickly you could write your own as well. Just for fun, he's even made an IRC client running in the console...
Another big advantage to using a runtime tool like this for debugging is that it negates the need for using the debug player. The debug player really slow things down, so for anything resource intensive a tool like this is a must. This console is a really powerful and flexible tool. Andreas is usually a very (!) outspoken guy and it was fun to see him almost shy on stage in the beginning of his session.
"Just because you can, it does not mean that you have to" was kind of the meme of Elliot's session. He went over a series of typical CSS effects and why he think they should not be used. He said that he had a reputation for moaning about things and yes - that's what he did for 30 minutes in the Brighton Dome. Backgrounds that give an impression of texture, rounded corners, gradient buttons with rounded corners, embossed text, shadows, glossy buttons and most effects that designers use today. For some reason, the clients just love these effects and it's hard to be the designer that says "no, I will not make that button look 3D".
Elliot kept saying that he had also "been guilty" of using these effects but I would think that this session was provocative to the designers that don't like the more classical style that Elliot himself prefers. Coming from a developer background, I wasn't very provoked, but I did find it fascinating to see a designer that "just knew" how things were supposed to be and that most others are wrong. This talk really didn't give me much new and it was probably a good thing that it only lasted 30 minutes.
Now a resident of Brighton, Carlos is probably best known to the Flash community as the founder of Papervision3D. He now runs the high end 3D consultancy HelloEnjoy. This year Carlos showed two projects, one personal and one commercial.
HelloFlower is a beautiful flower sculpting application for iOS. The app is built with Unity3D and written in C#. Carlos describes it as a "relaxed" creative tool where users craft and style the elements of a flower. What makes the app interesting is not just it's minimal styling or the attention to detail, but the emotional response it generates when the hand crafted flowers are shared.
The Flash platform has had a long history of MVC frameworks. The trend over those years has been towards smaller and lighter frameworks. As Stray point out, writing code is easy, joining it together is hard. RobotLegs has become a popular choice for this task as it's light, solid and non-prescriptive. What was interesting about this session wasn't so much the sneak peaks of RobotLegs 2 (RL2) but the thinking behind the team's design decisions.
Through a series of short interactive tests Stray demonstrated how our brains actually work and how these insights can be used to develop a better framework. Take for example that our brains can retain around 7 (plus or minus 2) chunks of information at any one time. RL2 therefore makes uses of chunking to reduce cognitive overhead. It turns out that our brains are the worst legacy system for working with code. We're bad at multi-tasking with higher level brain functions. Lizard stuff, no problem.
After a fascinating discussion on the effects of dopamine on our concentration it was time to sneak some details of the new framework. There will it seems be four flavours of RobotLegs, each one tailored toward different complexities of project. We can expect a fluent context builder, "guards and hooks", multiple mediators per view, command flows, soft mappings for modular apps and the quite wonderfully named InspectorGadget. As I understand it they aim to ship towards the end of the year.
With all the buzz around Flash Player 11 and Stage3D (formerly called Molehill), this was a talk that many people wanted to see. So many in fact that at least 50 could not get into the Pavilion. Rob is the development lead for the Away3D engine and he has been presenting all over the world the last years. He has the archetype british humor, dry but funny and he really knows his stuff. He started off showing a hands on demo of deltastrike.org, a game that looks fantastic with it's epic space-battles.
After the demise of Papervision a few years back, Away3D is now the only solid Open Source 3D engine for the Flash Player. The commercial competitors are many however and many attendees were keen to see how far Open Source could take them. The team behind Away3D has been really active the last year and they also got a beta version of the engine out for the Adobe Max conference a year ago. The fourth version of the engine is now soon ready for Beta and Rob shared many of the the highlights for the new engine.
Rob went through a bit of history highlighting how gaming in Flash has changed and how Stage 3D is going to change this. Stage 3D won't be PS3 quality, but it'll look good. The original X-Box is a more fair comparison but this will of course differ from machine to machine and what type of graphics card that sits within these. Away3D version 4 will reap the benefits of this speed increase, but will as usual wrap it in a developer friendly API. There are some differences as compared to former versions, but they've tried to keep as much of the original API as possible.
The purpose is to still have a general purpose engine whereas several of the commercial competitors are now only focused on games. You can still use it for games though, but you'll need to implement a lot of this yourself. Rob explained how an entity-system works and mentioned the PushButton Engine as an example of this approach. However - Rob also presented something brand new - a tag-on physics engine named AwayPhysics. This is a separate Open Source project that is based on the Bullet engine, but it'll plug in nicely with Away3D 4. This was showcased with a cute game prototype called Polar Peril, co-developed by the Away3D Team and Freakish Kid.
Another new addition is the AWD2 format, a compressed binary format that has a lot of benefits over the standard formats in 3D packages. The team is focused on tooling and they already have a C / Python exporter that works with Blender. The goal is to provide this to other vendors so that they can easily implement AWD support. The format itself is also open and will be published as soon as it's finished.
Eugene's work first came to our attention with his FlashSURF library. FlashSURF was an Alchemy powered port of SURF, the popular computer vision (CV) library for performing runtime image analysis. It turns out SURF is patented so his most recent project is ASFEAT, a ground-up rewrite of the library. This version is pure AS3 and makes use of Joa's Apparat library to considerably boost the performance.
CV image analysis is all about performance and Eugene has gone to considerable lengths to achieve this. He has created his own point extractor class (APE), his own BIT descriptor along with code for pose estimation and refinement. All of these elements are open source.
He showed a number of Augmented Reality (AR) demos His demos, each increasing in complexity over the course of the session. From simple 3D model manipulation for Guinness to a car driving sim where the vehicle was steered using an AR marker. To finish he showed AR driven dynamic lighting and real time sounds transformation. Amazing work. He's also bored at work, so someone please hire him!
John Dalziel is a founding member of FlashMagazine and regularly reports from community events in the UK. He has also written for Macromedia, New Riders, Actionscript.com and Ultrashock.com.