Adobe: Changing the game

62
Changing the game December 8th 2012 Thibault Imbert | Sr. Product Manager (Graphics, ActionScript, Adobe Scout) @thibault_imbert | bytearray.org Friday, December 7, 12

description

From Stage3D development on the desktop with Flash Player, to cross-platform mobile development with Adobe AIR, Adobe is shaping Flash to be the console of the web. Do you know about Stage3D (for GPU acceleration) and the frameworks supported by Adobe for game development? Have you heard about Project Monocle? Which will revolutionize the way developers profile Flash content. Have you seen the Epic Unreal engine run in Flash? Join Thibault in this session to learn more about the projects the Gaming team at Adobe is working on.

Transcript of Adobe: Changing the game

Page 1: Adobe: Changing the game

Changing the gameDecember 8th 2012

Thibault Imbert | Sr. Product Manager (Graphics, ActionScript, Adobe Scout)@thibault_imbert | bytearray.org

Friday, December 7, 12

Page 2: Adobe: Changing the game

The audience

Approximately 600M people have already opted into using the silent auto update feature.

600M  is  more  than  2  #mes  the  number  of  Xbox360,  PS3  and  Wii  ever  sold.

We can update these 600 million people to new versions of the runtime in less than 48 hours.

facebook.com/AngryBirds

Friday, December 7, 12

Page 3: Adobe: Changing the game

9 of the top 10 games

* This list was compiled by looking at the top games on Facebook with more than 100,000 monthly active users and giving priority to those games with the highest user satisfaction scores.

facebook.com/KingsRoadGame

Friday, December 7, 12

Page 4: Adobe: Changing the game

Friday, December 7, 12

Page 5: Adobe: Changing the game

No frictionReuse ActionScript 3 code between desktop and mobile targets.

No shared runtime is required when packaged on mobile devices.

Flash Player forDesktop browsers

Adobe AIR forStandalone apps

Same code (AS3)No friction

*

* Chrome only

Friday, December 7, 12

Page 6: Adobe: Changing the game

• Concurrency (ActionScript workers)

• Support for more hardware-accelerated video cards

• Compressed texture with alpha support

• StageVideo.attachCamera

• Camera.copyToByteArray/Camera.copyToVector/drawToBitmapData

• LZMA runtime compression/decompression on ByteArray

• AIR iOS Push Noti!cations

• AIR direct deployment (without iTunes)

FLASH PLAYER 11.4 / AIR 3.4

Friday, December 7, 12

Page 7: Adobe: Changing the game

• Shared memory support for Concurrency (ActionScript workers)

• Debug stack trace in release builds of Flash Player

FLASH PLAYER 11.5 / AIR 3.5

Friday, December 7, 12

Page 8: Adobe: Changing the game

• Query Graphics Data

• Multiple SWF support for iOS

• Fullscreen UI permission dialog improvement

FLASH PLAYER 11.6 / AIR 3.6

On Labs!labs.adobe.com

Friday, December 7, 12

Page 9: Adobe: Changing the game

• MovieClip.isPlaying

• DisplayObjectContainer.removeChildren

• FrameLabel events

• No BitmapData size limitation

• ApplicationDomain.getQuali!edDe!nitionNames()

• BitmapData.drawWithQuality

• Native JPEG/PNG/JPEG-XR Compression

• MouseEvent.RELEASE_OUTSIDE

• Cubic bezier

• ...

JDI: TINY APIS BIG IMPACT

Friday, December 7, 12

Page 11: Adobe: Changing the game

Powered by Stage3DUse one set of platform agnostic GPU APIs to target the browser and mobile devices (iOS, Android)

just converted a small project to Starling+AIR and am getting solid 60fps... super impressive.

I'm quite impressed. Am doing a 3-month project using AIR + Starling and I'm totally looking forward to it thanks to this.

Got 60fps on Mobile & Desktop thanks to @gamua (Starling), Nape, & AIR @gamebuilders is close to release now! #gamedev t.co/usISHxvo

Friday, December 7, 12

Page 12: Adobe: Changing the game

Powered by Stage3DUse one set of platform agnostic GPU APIs to target the browser and mobile devices (iOS, Android)

Ruby Blast

Friday, December 7, 12

Page 13: Adobe: Changing the game

Powered by Stage3DUse one set of platform agnostic GPU APIs to target the browser and mobile devices (iOS, Android)

Smart Aliens

Friday, December 7, 12

Page 14: Adobe: Changing the game

Over 20k AIR apps on the iOS App Store and Google Play

Friday, December 7, 12

Page 15: Adobe: Changing the game

Top grossing apps on App Stores

Machinarium

Song Pop

Bingo Bash

Friday, December 7, 12

Page 16: Adobe: Changing the game

That’s for the past year.

Friday, December 7, 12

Page 17: Adobe: Changing the game

Now, what did just happen this week?

Friday, December 7, 12

Page 18: Adobe: Changing the game

On December 3rd, 6:30pm, we introduced...

Friday, December 7, 12

Page 19: Adobe: Changing the game

Gaming SDK Adobe ScoutFlasCC

Adobe Game Developer Tools

Create Extend your reach Pro"le

Friday, December 7, 12

Page 20: Adobe: Changing the game

It is hard today to get started.

Friday, December 7, 12

Page 21: Adobe: Changing the game

FlashDevelop + Starling + Air 3.2 + Stage3D + Android = Love!

1. Download and install the Android SDK (http://developer.nvidia.com/tegra-android-development-pack) 2. Install AIR 3.2 Release Candidate on windows (http://labs.adobe.com/technologies/"ashplatformruntimes/air3-2/) 3. Install AIR 3.2 Release Candidate on android device (http://labs.adobe.com/technologies/"ashplatformruntimes/air3-2/) 4. Download AIR 3.2 SDK (http://labs.adobe.com/technologies/"ashplatformruntimes/air3-2/) 5. Overwrite AIR 3.2 SDK over the "ex folder of FlashDevelop (C:\FlashDevelop\Tools\"exsdk) 6. Download, install and start FlashDevelop (http://www."ashdevelop.org/) 7. Create a new Air Mobile As3 App

8. Change aplication.xmla. <application xmlns="http://ns.adobe.com/air/application/3.2">a. <fullScreen>true</fullScreen>b. <visible>true</visible>

c. <renderMode>direct</renderMode> d. <aspectRatio>landscape</aspectRatio> e. <autoOrients>false</autoOrients>

9. Project → Properties a. Output (tab)

i. Platform → Air Mobile ii. Version → 3.2 iii. Dimensions → 1280x800 (This affects only the swf version for desktop) iv. Framerate → 60

b. Sdk (tab) 1. Choose the path where you copied the AIR 3.2 SDK

c. Compiler Options 1. Additional Compiler Options → -swf-version=13 (-swf-version=15 works too)

10. Change Run.bat a. Target → choose your target type b. Desktop → choose your target resolution

11. Create a certi!cate for Android using /bat/CreateCerti!cate.bat and wait a minute 12. Download and copy last Starling library (http://gamua.com/starling/) to your project folder 13. Write your 3D game / app

Friction

Friday, December 7, 12

Page 22: Adobe: Changing the game

14. In your Android device be sure to check on your USB debugging and allow Unknown sources a. Menu → Settings → Applications → Unknown sources b. Menu → Settings → Applications → Development → USB debugging 15. Connect your Android to your computer and let the computer install the necessary drivers16. Publish (ctrl + enter)17. If you get a “Fatal error: The application lost the device context!” just putStarling.handleLostContext = true; before you create an instance of Starling. 18. Enjoy it!

Sweet!It just compiles an

empty SWF!

Friction

Friday, December 7, 12

Page 23: Adobe: Changing the game

We should go from 18 steps to 3:

1. Download Flash Builder2. Open a sample provided

3. Compile and test

Frictionless, easy to get started

Friday, December 7, 12

Page 24: Adobe: Changing the game

AIR SDK Frameworks Extensions Docs

Game CenterProduct StoreSocialStageAdBetaTesting

Link to resourcesATF DocumentationANE DocumentationCode samples

StarlingAway3DFeathers

Free

AIR SDK 3.5

MacOS (.dmg) Windows (.exe)

}

ATF

ATF command-line tools

Friday, December 7, 12

Page 25: Adobe: Changing the game

Friday, December 7, 12

Page 26: Adobe: Changing the game

Friday, December 7, 12

Page 27: Adobe: Changing the game

Friday, December 7, 12

Page 28: Adobe: Changing the game

Friday, December 7, 12

Page 29: Adobe: Changing the game

StarlingStarling is an open-source, 2D framework that makes it easy to create GPU-accelerated games and applications.

starling-framework.org

var hero:Sprite = new Sprite();hero.x = 200;hero.y = 200;hero.addEventListener(Event.ENTER_FRAME, loop);addChild(hero);

Free eBook available for download at O’Reilly:

http://oreil.ly/PPsohC

Friday, December 7, 12

Page 30: Adobe: Changing the game

Demo

Friday, December 7, 12

Page 31: Adobe: Changing the game

FeathersCreate 2D UI on the GPU with Feathers. A lightweight open-source 2D UI component extension for Starling.

feathersui.com

Friday, December 7, 12

Page 32: Adobe: Changing the game

Away3DLightweight open-source 3D framework. Huge community contributing.

away3d.com

Friday, December 7, 12

Page 33: Adobe: Changing the game

Delta Strike: "Fleet" Gameplay Demo

Friday, December 7, 12

Page 34: Adobe: Changing the game

Delta Strike: "Fleet" Gameplay Demo

Friday, December 7, 12

Page 35: Adobe: Changing the game

The stackAll of these frameworks are supported by Adobe.

By supporting these, we also want to make sure they integrate between each other beautifully.

Away3D (3D) Starling (2D)

Open-source, free and vibrant community

Feathers (2D)

Integration

Friday, December 7, 12

Page 36: Adobe: Changing the game

FlasCCBring your native C/C++ games to the browser to reach a billion people.

C/C++

(llvm-gcc)LLVM bitcode

AS3 Bytecode

(.abc)

on AVM2

Friday, December 7, 12

Page 37: Adobe: Changing the game

FlasCCNative code runs securely and cross-platform in the ActionScript 3 Virtual Machine.

C/C++

(llvm-gcc)

LLVM

bitcode

AS3 Bytecode

(.abc)

on AVM2

Friday, December 7, 12

Page 38: Adobe: Changing the game

Friday, December 7, 12

Page 39: Adobe: Changing the game

Friday, December 7, 12

Page 40: Adobe: Changing the game

Friday, December 7, 12

Page 41: Adobe: Changing the game

Demo

Friday, December 7, 12

Page 42: Adobe: Changing the game

Unity Flash exportBring your Unity games to the browser reaching millions of people.

unity3d.com/unity/publishing/flash

Friday, December 7, 12

Page 43: Adobe: Changing the game

Pro!lingLimitations today with Flash Player and AIR

VM only

Today, using the pro!ler in Flash Builder only exposes VM related information.

Debugger builds only

The existing Flash Builder pro!ler relies on debugger builds (performing slower than release builds).

Not stable

Complex content can also crash your pro!ling

No in-context testing

Being able to use release builds allows easy in-context testing.

No visualization

There is no existing tool allowing developers to easily spot issues in their content.

No mobile pro!ling

There is no out of the box solution to pro!le mobile content (AIR) today.

Friday, December 7, 12

Page 44: Adobe: Changing the game

Adobe ScoutRevolutionize the way you pro!le Flash content across desktop and mobile devices.

Monocle exposes granular information never exposed before to Flash developers.

No code instrumentation needed.

Works with the release Flash Player and AIR runtime.

Friday, December 7, 12

Page 45: Adobe: Changing the game

Friday, December 7, 12

Page 46: Adobe: Changing the game

Demo

Friday, December 7, 12

Page 47: Adobe: Changing the game

Con!gure with Companion App

(App Store/Google Play)

Test Pro!le

Seamless pro!ling

Friday, December 7, 12

Page 48: Adobe: Changing the game

Friday, December 7, 12

Page 49: Adobe: Changing the game

Great, how do I get this?

Friday, December 7, 12

Page 50: Adobe: Changing the game

Friday, December 7, 12

Page 51: Adobe: Changing the game

Friday, December 7, 12

Page 52: Adobe: Changing the game

FutureLonger term plans

Flash BuilderActionScript “Next”

ASC, AOT, AVMGraphics

Friday, December 7, 12

Page 53: Adobe: Changing the game

ACTIONSCRIPT PERFORMANCE

ActionScript 3

Today(ActionScript Workers)

Flash Player 11.4/AIR 3.4

Q4 2012ASC 2.0

Flash Player 11.x/AIR 3.x(better bytecode,

faster performance)

ActionScript 3

2013ASC 4.0

ActionScript “Next”

Introduce concurrencyBring ActionScript to the

next levelPerformance improvements

ActionScript “Next”

Friday, December 7, 12

Page 54: Adobe: Changing the game

TOOLING ALIGNMENT

ActionScript 3

Today(ActionScript Workers)

Flash Player 11.4/AIR 3.4

Q4 2012ASC 2.0

Flash Player 11.x/AIR 3.x(better bytecode,

faster performance)

ActionScript 3 ActionScript “Next”

Introduce concurrencyBring ActionScript to the

next levelPerformance improvements

Flash Pro CS6 UpdateFlash Builder 4.7

Flash Builder 4.7 Flash Builder “Next”

2013ASC 4.0

ActionScript “Next”

Friday, December 7, 12

Page 55: Adobe: Changing the game

ACTIONSCRIPT PERFORMANCE

A great language for game development (and much else)

1. Provide developers with precise controls over execution speed / memory

consumption of their games

2. Exploit modern compiler/VM technology to eliminate the need for tedious, error-

prone performance tweaks

3. Prepare the language for games of the future (functional programming,

concurrency, parallelism)

Friday, December 7, 12

Page 56: Adobe: Changing the game

Graphics

Friday, December 7, 12

Page 57: Adobe: Changing the game

TodayFlash Player 11.4/AIR 3.4

Stage3D “constrained” Stage3D

After tomorrowFlash Player 11.7/AIR 3.7

Stage3D “extended” pro!le(for Sergey!)Increased GPU reach

Query Graphics Data

Query Graphics

TomorrowFlash Player 11.6/AIR 3.6

Friday, December 7, 12

Page 58: Adobe: Changing the game

ATF Format

New compression formats(2D content)

Stage3D

TomorrowFlash Player 11.7/AIR 3.7

Stage3D “extended” pro!le

Query Graphics Data

Query Graphics

TomorrowFlash Player 11.6/AIR 3.6

Friday, December 7, 12

Page 59: Adobe: Changing the game

ATF Format

New compression formats(2D content)

TomorrowFlash Player 11.7/AIR 3.7

JDIs

Improvements

TomorrowFlash Player 11.x/AIR 3.x

Friday, December 7, 12

Page 60: Adobe: Changing the game

What about theseStandards

Friday, December 7, 12

Page 61: Adobe: Changing the game

gaming.adobe.com

Friday, December 7, 12

Page 62: Adobe: Changing the game

Friday, December 7, 12