Machiniarum Machinations with the Adobe Flash Platform

Becoming a number 1 iPad 2 game is probably as challenging as building a futuristic robot and navigating him through scrap yards. Not coincidentally, Czech game developer Amanita Design accomplished both with its critically acclaimed online adventure game, Machinarium, built with the Adobe Flash Platform.

The game tests players’ puzzle-solving skills, as they guide their robot through puzzles and obstacles to reach the city of Machinarium and save his girlfriend from the bad guys. Gamers praise the gameplay, but were particularly impressed with the game’s textured and animated graphics. Since it began in 2003, Amanita Design has used the Flash Platform to not only deliver great visuals, but also easily bring Machinarium to virtually any desktop or mobile platform.

The team leveraged Adobe Flash Builder to reuse original code from the web version of the game to bring it to other platforms like Android, with BlackBerry Tablet OS coming soon. The best part is that it only took two months! To create the game’s rich graphics, Amanita used a combination of Photoshop and Flash Professional, as well as Adobe AIR to deliver the game across mobile devices.

To learn more about how Amanita delivered this top game so quickly across different devices and platforms, visit here.



The Adobe Flash Platform Helps Tell Woven Interactive’s Big Fish Story

Woven Interactive, an Atlanta-based digital marketing agency with a client roster that includes BP, Disney, Lifetime Channel, Lucent Alcatel,, TNT, Turner Broadcasting and Reader’s Digest, has always been known to stay on top of new technologies and digital experiences. The company and president and co-founder, Charlie Schulze, knew that development agility, performance and the ability to deliver content across multiple devices would be vital to the success of its newest mobile and tablet game about an adventurous fish, Comb Over Charlie. The company turned to the Adobe Flash Platform to make this a reality.

Built using Adobe AIR and ActionScript with Adobe Flash Builder 4.5 and Adobe Flash Professional, Schulze was able to create a fast-paced game that could be delivered seamlessly across devices, running with native performance.  More specifically, the Flash Platform made it possible for the app to be developed once and published across multiple platforms using the same code base in minimal time, even several hours!

Woven Interactive also used Adobe Creative Suite 5.5 Web Premium to develop and promote the game, Adobe Photoshop CS5 Extended to help with the creation of characters and other elements for the app, and Adobe Dreamweaver CS5.5 to develop the promo site.

Initially created for Android, Comb Over Charlie is now available for download across more platforms, including BlackBerry Tablet OS and Apple iOS. Charlie and his team are excited about bringing this app to other websites, social media sites like Facebook and future devices using this streamlined workflow. 

Be sure to download the game for Android (free trial version), BlackBerry Tablet OS and iOS! To find out more about the integration between Adobe technologies or to download the Comb Over Charlie app for yourself go here.


EPIX and the Adobe Flash Platform Engage Movie Buffs Across Multiple Devices

Today’s technology savvy audiences want to experience content across multiple platforms and devices, and are beginning to move away from passive forms of entertainment—they want to participate and interact with others to shape their experience. EPIX—a multi-platform premium entertainment channel, video-on-demand, and online service– teamed up with Adobe to bring current releases, classics, and original entertainment to all video platforms—linear TV, on demand, online, and mobile—while also encouraging social integration and sharing to reach the broadest audience possible.

With the Adobe Flash Platform, EPIX, a joint venture of Paramount Pictures, Lionsgate, and MGM Studios, was given the necessary tools to create and carry out broadband authentication systems to over 30 million U.S. homes through its distribution partners including Charter Communications, Cox Communications, DISH Network, Mediacom Communications, NCTC, Suddenlink Communications, and Verizon FiOS with little to no development effort.

Using multiple Adobe technologies such as  Adobe Flash Professional, Adobe AIR, Adobe Flash Media Server, Adobe Flex, Adobe Flash Builder, and Adobe Flash Player, EPIX delivers content beyond the Web by building a library of available movie titles, which are encoded for delivery to a specific platform across different devices like Motorola XOOM, Samsung Galaxy Tab, and Boxee Box. One of the notable capabilities in EPIX is “Screening Room: Watch With Friends,” a feature that includes sharing capabilities allowing users to watch movies in a social event, turning the experience into a more into viral, interactive, and engaging gathering. The Screening Room is great for large-scale events like concerts on-demand to bring fans together.

Learn more about how EPIX how it provides premium HD content to its subscribers on devices everywhere here.

Frima Studio and the Adobe Flash Platform Bring Zombies to Life

Canadian-based game development firm Frima Studio boasts a client list that includes Electronic Arts, Warner Brother and Nickelodeon and a reputation for high-quality 3D games such as Zombie Tycoon, one of the original six games available in the Sony PlayStation Portable (PSP) Mini. Looking to expand beyond the console, Frima Studio uses the Adobe Flash Platform to bring those same, engaging 3D experiences to the widest number of devices.

Zombie Tycoon is a single-player game in which zombie squads take over the world. The game is full of puzzle-filled cities, 360 degree animations, and skybox effects, which have delighted PSP Mini gamers for years. But to bring that same 3D experience to web gamers, Frima tapped Adobe Flash Player and Stage 3D APIs, a new method of 2D and 3D rendering in Flash Player.

The Frima team recognized a number of other advantages in the Flash Platform for its gamers.  Since Flash Player is everywhere—98 percent of the world’s Internet-connected computers—concerns about downloading a separate player to play these games are dispelled.

Using the Flex framework to build the tools to create the 3D apps, Adobe Flash Professional and Adobe Flash Builder to build the game UI menus and Adobe Photoshop CS5 to texturize images, developers reap the rewards too. Flash Player’s reach across screens worldwide offers developers greater monetization opportunities, particularly for Facebook games and free-to-play games. The new set of Stage 3D APIs, allows Frima developers, most of whom are ActionScript developers more versed in 2D game building, to easily create rich effects, texture and atmosphere in its games without sacrificing performance.

Frima is also very excited about its future 3D games for multiple device platforms using the Flash Platform. Learn more about how they engage a new gaming audience with immersive 3D experiences enabled by the Flash Platform here.

PrePress Center Powers the Flip-Page Experience with the Flash Platform

When the developers at PrePress Center Oy, a European-based company focusing on digital publishing solutions, set out to make print-to-screen, magazine-style publishing easier and more powerful, they turned to the Adobe Flash Platform and Adobe Creative Suite software to create eDocker.

eDocker, a 2010 MAX Award finalist in the digital publishing category, is an Adobe AIR application that lets publishers produce easy-to-customize, digital flip-page documents directly from Adobe InDesign CS5. Aside from AIR, eDocker was created using Flash Platform tools, including Flash Professional CS5, Flash Builder 4, Flash Catalyst, Flash Player and Flex. The resulting application replicates the format of the original InDesign publication and delivers magazine-style publications to the broadest possible audience for playback via Flash Player.

As a result of using Adobe Flash Platform technologies to build eDocker, PrePress Center was able to reduce programming costs and accelerate its development cycle. And the Flash Platform technologies have poised eDocker for tablet and mobile versions in the future using the existing code base in the Flash Platform environment.  Since it’s made with Adobe AIR, PrePress can monetize eDocker and sell the application through Adobe InMarket on multiple application stores, and can run on both Mac and PC systems.  Find out more about how PrePress Center used Flash Platform technologies to create eDocker here.

Wacom Showcases the Power of the Pen and Multi-Touch with the Flash Platform

Leading tablet maker Wacom has always pushed the envelope when it comes to creative expression. However, when the company wanted to extend its brand from the physical world to the virtual one (targeting the mass consumer market) they decided to go with the Adobe Flash Platform given its ease of use and broad reach.

After bringing on the help of digital agencies Gugga and Fantasy Interactive, Wacom created Bamboo Dock, a downloadable Adobe AIR desktop application that holds, manages and launches applications for Wacom’s line of Bamboo tablets. Aside from AIR, Bamboo Dock was developed using Flash Platform tools, including Flash Professional CS5, Flash Builder 4 and Flash Catalyst. (Bamboo Dock even won an Adobe 2010 MAX Award in the ‘Social Computing’ category).

With the stroke of a pen, users can open and minimize the Bamboo Dock as well as open and add applications—providing a fast way to access fun, easy and useful tools for everything from note taking and doodling to gaming and sharing work with friends. Wacom turned to the Flash Platform to inspire users, drive hardware sales and bring creative users together through a growing lineup of applications.

In its first year, Bamboo Dock helped Wacom sell 30 percent more Bamboo tablets than the previous year, and they received 3 million application downloads plus 600,000 dock downloads. Strong technology integration across the Flash Platform allowed Wacom to quickly make updates and deliver results in a third of the time they anticipated. Already in the works, Wacom plans to transfer its applications across multiple devices and platforms. Find out more about how Wacom used Flash Platform technologies to deliver Bamboo Dock here.

Device Central CS5 – Multitouch and Debugger

Of course one of the most long standing and important pieces of integration for Mobile and Devices has been with Flash Professional CS5.  The new version of Flash Professional is what I would call “back on track” after a major gutting, while still adding new features to support mobile and devices.

One of the nicest new additions is the code snippets panel to help you transition from Actionscript 2, as well as a new FLA format based on XML that will help with source control.  Changing the file format is never taken lightly, but I’ve received so much great feedback already for this feature.

In the following video I’m going to walk through the new Multitouch APIs briefly and look at debugging applications between Device Central and Flash Professional.  For some of you that don’t know, with Flash Lite we’ve been without debugger support for five years.  This is like a miracle!

With AIR on Android available later in the year it’s a perfect time to prototype some AIR applications.  You might also begin testing your Flash Player 10.1 content for different browsers using the various instrumentation tools provided; some of which I’ll cover in the next videos.

As with all mobile development it’s much more exciting once you get started!

Thanks to Maso Lin for getting involved in the Pre-release and providing such a nice looking demo.

Week of AFCS Revisited: SharedObject

After my trainwreck post on using CollectionNode in AFCS Nigel suggested that I try to recreate my example using the higher level APIs instead of trying to build everything from scratch with NodeCollection. As I mentioned in the previous post, the AFCS team did a great job of creating very basic APIs like CollectionNode and then building on top of those to make APIs that are easier to use. SharedObject is a perfect example of that.

Here’s what I wanted to accomplish: Create a basic multiplayer game where players try to match colors with each other using a ColorPicker. Using the SharedObject class it’s really pretty easy. The first thing I did was set up a room where guests are automatically promoted and no username/password is required. Then I used a combination of AFCS components and Flex components to create a user interface for entering a display name, picking the color, and showing how many players there are:

<rtc:AdobeHSAuthenticator id="auth" />
<rtc:ConnectSessionContainer id="cSession" 
     <mx:Panel id="panelColor" title="Pick a Color!"
          horizontalCenter="0" verticalCenter="0" alpha=".3" 
          width="200" height="200" enabled="false"
          <mx:ColorPicker id="color" change="color_changeHandler(event)" width="100%" height="100%" />
<mx:Label text="Playing with {cSession.userManager.userCollection.length - 1} other people" />
<mx:TitleWindow id="tw" horizontalCenter="0" verticalCenter="0"
          <mx:TextInput id="username" width="150" text="Enter A Username" focusIn="{username.text = ''}" />
<mx:Button id="btnLogin" label="Login" click="btnLogin_clickHandler(event)" />

Nothing major there, notice we’re using the userManager class to get the number of other users in the room (and that it’s bindable). The big thing is the synchronizationChange event handler. In that function we’re going to configure our node and create the SharedObject.

public var sharedColor:com.adobe.rtc.sharedModel.SharedObject;
protected function cSession_synchronizationChangeHandler(event:SessionEvent):void
if( event.type == SessionEvent.SYNCHRONIZATION_CHANGE )
var config:NodeConfiguration = new NodeConfiguration();
config.userDependentItems = true;
sharedColor = new com.adobe.rtc.sharedModel.SharedObject();
sharedColor.sharedID = "color";
sharedColor.addEventListener(SharedObjectEvent.PROPERTY_ADD, onPropertyChange);
sharedColor.addEventListener(SharedObjectEvent.PROPERTY_CHANGE, onPropertyChange);
sharedColor.addEventListener(SharedObjectEvent.PROPERTY_REMOVE, onPropertyRemove);

We have to use the full namespace when we reference the SharedObject in AFCS because it conflicts with the normal Flash SharedObject. We first do a check go make sure we’re in a SYNCHRONIZATION_CHANGE event and then start setting things up. The only change I make to the default NodeConfiguration is to make it so that when a user leaves the room, they take their items with them so we don’t have “ghost” matches. That’s done by setting the userDependentItems property to false.

Next we create our SharedObject. I give it a sharedID of “color” and then make sure the application is subscribed to the SharedObject so that it sees any changes. Finally I set up event handlers for whenever a property is changed, added and removed. The add and change properties use the same function, onPropertyChange.

Let’s first take a look at how we create the SharedObject; something that happens whenever we change our color selection.

protected function color_changeHandler(event:ColorPickerEvent):void

We use the setProperty() method on the SharedObject to give it information. A SharedObject is just a name/value pair, or in this case, a propertyName/value pair. I set the propertyName to the userID so we can know where the color came from and then set the value to our selected color. Whenever we set that property it will create a property change event and call our event handler.

protected function onPropertyChange(event:SharedObjectEvent):void
if( event.propertyName != cSession.userManager.myUserID)
if(event.value == color.selectedColor)
var user:UserDescriptor = cSession.userManager.getUserDescriptor(event.propertyName);
sharedColor.removeProperty(cSession.userManager.myUserID);"You matched with " + user.displayName + "!");

This is where the game starts to happen. The way AFCS works is that when you change a something locally inside of your application it is sent to the server and then you get a change event when it comes back. This is so you can be sure the change was successful. In our game we want to make sure that we’re not dealing with the event we just sent so I use the propertyName property and compare it to myUserID to see if it’s an event that the user sent him or herself. If it isn’t, we look for a match using the value property and our selectedColor. If we have a match I use the UserManager class to get the display name of the matched user and pop up an alert box to show that we found a match.

The other thing I do is to call the removeProperty() method the user’s SharedObject. I ran into an issue where when a user selected a color that matched another one, the other user would get the popup but there was no easy way to notify the user who selected the color that it was a match. I solved this by removing the property which would then trigger a PROPERTY_REMOVE event and fire our event handler.

protected function onPropertyRemove(event:SharedObjectEvent):void
var user:UserDescriptor = cSession.userManager.getUserDescriptor(event.propertyName);
if( event.propertyName != cSession.userManager.myUserID && user != null)
{"You matched with " + user.displayName + "!");

It looks similar to our change event handler. I first get the user information for the popup and then I check a couple of things. First, I make sure that the event isn’t coming from the current user, but the user I have the match for. I also want to make sure that the SharedObject wasn’t removed by someone just logging out (remember our NodeConfiguration settings). If my user is null then that means the user is gone and the event fired because the user left the room and not because I specifically removed it.

That’s pretty much all there is to it. You can grab the project here or I’ve embedded the game below (and here’s a direct link), so feel free to play and see if you can match colors!


New RTMPe content protection white paper

A new white paper is available on the Adobe Developer Center describing the characteristics and best practices for RTMPe protection for Flash Media. RTMPe is very scalable, popular and easy to deploy protocol-based content protection for Flash streaming. Furthermore the white paper compares RTMPe to file based protection with the Flash Media Rights Management Server (FMRMS).