SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
Flashを使った
                      PC、Android、iOS 向けに
                    GPU アクセラレーション対応の
                          2Dゲーム開発
                                                                              Andy Hall
                                                                              Adobe Japan



© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Andy Hall アンディ ホール
                                       Game Evangelist ゲームエバンジェリスト
                                         Adobe Japan アドビ システムズ 株式会社
                                                       @fenomas

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Agenda

          1.                Flash、ゲームの背景的な話
          2.                Stage3D、AGALについて
          3.                Starlingについて
          4.                開発に飛び込もう




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Flash and Games




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Why Flash?

          • パフォーマンス
          • ツール
          • リーチ




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Why Flash?

          • パフォーマンス
          • ツール       サイレント
                    自動アップデート
          • リーチ       ユーザ数:
                                                                                    4億人 (!!!)




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Why Flash?

          • パフォーマンス
          • ツール       サイレント
                    自動アップデート
          • リーチ       ユーザ数:
                                                                                           4億人 (!!!)




                                                                                 400M
                                  Wii                                PS3        Xbox 360
                                95.56M                              63.9M        67.2M

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
                                                                                              sales numbers as of April-June 2012. Source: Wikipedia
採用状況




                       9 of 10 top                                            Angry Birds Friends   Ruby Blast
                    Facebook games                                                 (Rovio)           (Zynga)



© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
About Flash
          • Flash is:
                • 柔軟で応用が利く
                • クロスプラットフォーム
                • モバイルに最適(Android、iOS 他)

          • Flash isn’t:
                • 「ドラッグ・ドロップでゲーム!」
                • 完全ネイティブパフォーマンス


© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Why the GPU?

                                                                               Tablets,
                                                                               mobiles,
                                                                               retina displays.

                                                                               Pushing pixels
                                                                               through
                                                                               software isn’t
                                                                               an option.

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Stage3D



                                                                                                  Vector
                                                                                            3D
                                                                                                       Video

                                                                                        Display List




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Stage3D

                                                               Flash コンテンツ
                                                                (ActionScript)


               シェーダー
                                                               Stage3D (AGAL)
              パイプライン

                                                            OpenGL or DirectX


                                                                              GPU



© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
AGALとは

                                                     m44                      op, va0, vc0
                                                     dp4                      op.x, va0, vc0
                                                     dp4                      op.y, va0, vc1
                                                     dp4                      op.z, va0, vc2
                                                     dp4                      op.w, va0, vc3
                                                     m44                      op, va0, vc0
                                                     mov                      v0, va1

                                                           (ヒトリデハキケンジャ!)

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Starlingの場合


                   import starling.display.Sprite;

                   var hero:Sprite = new Sprite();
                   hero.x = 200;
                   hero.y = 200;
                   addChild(hero);


                                                                 (コレヲ サズケヨウ! )

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Stage3D ライブラリー
          • オフィシャルライブラリー (free, open source):

                                • Starling (2D)

                                • Away3D



          • ニーズによって他にも様々…


               N2D2
                                              Genome2D

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Starling

          Flash Player
       Display List API
                 (AS3)                                                                   Sparrow
                                                                                         フレームワーク
                                                                                         (ObjC)




               Starling
                 (AS3)



© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Starling + Stage3D

                                                               Flash コンテンツ
                                                                (ActionScript)

                                                                              Starling

                                                               Stage3D (AGAL)

                                                            OpenGL or DirectX

                                                                               GPU



© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Starlingが送ること
          • Starling gives you:
                • 生産性
                • 親しみのある習得の早いAPI
                • 拡張性
                • 活発的なコミュニティー
          • Starling doesn’t give you:
                • GPUは何ぞよ、と気にしなくて良いほど
                  の安全性
                • GPUには優しく!

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
コードを見せろってば!




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Starling core API
                                                                              starling.events.EventDispatcher


       starling.display.*
                                                                                         DisplayObject



                               DisplayObjectContainer                                                Quad


                                                                                                    Image
              Button                                                             Stage
                                 Sprite                               TextField
                                                                                                  MovieClip


© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Starling core API
                                                                              starling.events.EventDispatcher


       starling.display.*
                                                                                         DisplayObject



                               DisplayObjectContainer                                                Quad


                                                                                                    Image
              Button                                                             Stage
                                 Sprite                               TextField
                                                                                                  MovieClip


© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
• Just vertices with a color but no texture
          • Color interpolated on the GPU
                                                                              Quad
          • Simple primitive

          Example :

          q = new Quad(200, 200);
          q.setVertexColor(0, 0x000000);
          q.setVertexColor(1, 0xAA0000);
          q.setVertexColor(2, 0x00FF00);
          q.setVertexColor(3, 0x0000FF);
          addChild (q);

          Solid color :
          q.color = 0x00FF00;

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
• Image is textured quad (extends Quad)
         • Textures should be uploaded and pooled,
                                                                              Image
           rather than created when needed
         • State tracking (setTexture – expensive)
         • Compressed textures

         Example :
         // create a texture, then an image
         var myBitmap:Bitmap = new MyBitmapClass();
         var texture:Texture = Texture.fromBitmap(myBitmap);
         var image:Image = new Image ( texture );
         addChild ( image );

         Tint :
         image.color = 0xFF0000;


© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
• The lightest container available
            (just like with standard Flash display list)
                                                                              Sprite
          • Can be flattened, to display a
            complex tree quickly
          • However, all children’s textures need to be in the same
            texture (or atlas) to see really great performance

          Example :
          // freeze the children
          container.flatten();
          // assign changes to a child
          container.child.scaleX = .5;
          // refresh
          container.flatten(); // or unflatten();
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Sprite, with a timeline
                                                                              MovieClip
          •
          •       A different texture on each frame
          •       Is not a container.
          •       Does not support scripts on frames.
          •       Completely controllable (custom fps,
                  addFrame, etc).

          Example :
          // retrieve frames from a Flash MC
          var frames:Vector.<Texture> =
          sTextureAtlas.getTextures("running_");

          // creates a MovieClip playing at 40fps
          mMovie = new MovieClip(frames, 40);
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
TextureAtlas




          • Packaged sets of sprite sheets
          • To optimize, make sure GPU calls each use one Atlas

          Example :
          // get all textures with a common prefix
          myTextureAtlas.getTextures(“fly_”);

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
ではコードを書いてみよう。




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
拡張の例
          Particle Editor
          http://onebyonedesign.com/flash/particleeditor/




© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Starlingの最適化
       • Flatten containers if their contents won’t change:
         container.flatten();

       • Prevent unnecessary touch event handling:
         container.touchable = false;

       • Use object pools:
         s = pool.getSprite();
         pool.returnSprite(s);


© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
今後のトピック
          Adobe Texture Format (ATF)
          • A compressed texture format created specially
            for Stage3D
          • The player understand ATF
            natively, which brings
            performance benefits

          Tools and libraries are coming.



© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
ご清聴ありがとうございました。




                                                                              andhall@adobe.com
                                                                              @fenomas

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Más contenido relacionado

La actualidad más candente

JAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboardJAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboardMichael Chaize
 
Oop2012 keynote Design Driven Development
Oop2012 keynote Design Driven DevelopmentOop2012 keynote Design Driven Development
Oop2012 keynote Design Driven DevelopmentMichael Chaize
 
Creating Flash Content for Mobile Devices
Creating Flash Content for Mobile DevicesCreating Flash Content for Mobile Devices
Creating Flash Content for Mobile Devicespaultrani
 
Adobe flex at jax london 2011
Adobe flex at  jax london 2011Adobe flex at  jax london 2011
Adobe flex at jax london 2011Michael Chaize
 
Flex and the city in London - Keynote
Flex and the city in London - KeynoteFlex and the city in London - Keynote
Flex and the city in London - KeynoteMichael Chaize
 
Oop2012 mobile workshops
Oop2012 mobile workshopsOop2012 mobile workshops
Oop2012 mobile workshopsMichael Chaize
 
Flash camp portugal - Let's talk about Flex baby
Flash camp portugal - Let's talk about Flex babyFlash camp portugal - Let's talk about Flex baby
Flash camp portugal - Let's talk about Flex babyMichael Chaize
 
Adobe et la stratégie multi-écrans
Adobe et la stratégie multi-écransAdobe et la stratégie multi-écrans
Adobe et la stratégie multi-écransMichael Chaize
 
Back From MAX in London for CQ5 users
Back From MAX in London for CQ5 usersBack From MAX in London for CQ5 users
Back From MAX in London for CQ5 usersMichael Chaize
 
Adobe flash platform java
Adobe flash platform javaAdobe flash platform java
Adobe flash platform javaMichael Chaize
 
Imaginea product-support-offering
Imaginea product-support-offeringImaginea product-support-offering
Imaginea product-support-offeringRajaneeshChandra
 
Adobe Summit EMEA 2012 : 16706 Optimise Mobile Experience
Adobe Summit EMEA 2012 : 16706 Optimise Mobile ExperienceAdobe Summit EMEA 2012 : 16706 Optimise Mobile Experience
Adobe Summit EMEA 2012 : 16706 Optimise Mobile ExperienceBen Seymour
 
Adobe Max 2008 Cross Channel Campaigns
Adobe Max 2008 Cross Channel CampaignsAdobe Max 2008 Cross Channel Campaigns
Adobe Max 2008 Cross Channel CampaignsCharles Duncan jr.
 
Process in the Age of Digital Innovation
Process in the Age of Digital InnovationProcess in the Age of Digital Innovation
Process in the Age of Digital InnovationCharles Duncan jr.
 
Enabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo componentEnabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo componentcjolif
 

La actualidad más candente (19)

Jax2001 adobe keynote
Jax2001 adobe keynoteJax2001 adobe keynote
Jax2001 adobe keynote
 
Montpellier - Flex UG
Montpellier - Flex UGMontpellier - Flex UG
Montpellier - Flex UG
 
JAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboardJAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboard
 
Jax2010 adobe lcds
Jax2010 adobe lcdsJax2010 adobe lcds
Jax2010 adobe lcds
 
Oop2012 keynote Design Driven Development
Oop2012 keynote Design Driven DevelopmentOop2012 keynote Design Driven Development
Oop2012 keynote Design Driven Development
 
Creating Flash Content for Mobile Devices
Creating Flash Content for Mobile DevicesCreating Flash Content for Mobile Devices
Creating Flash Content for Mobile Devices
 
Adobe flex at jax london 2011
Adobe flex at  jax london 2011Adobe flex at  jax london 2011
Adobe flex at jax london 2011
 
Flex and the city in London - Keynote
Flex and the city in London - KeynoteFlex and the city in London - Keynote
Flex and the city in London - Keynote
 
Oop2012 mobile workshops
Oop2012 mobile workshopsOop2012 mobile workshops
Oop2012 mobile workshops
 
Flash camp portugal - Let's talk about Flex baby
Flash camp portugal - Let's talk about Flex babyFlash camp portugal - Let's talk about Flex baby
Flash camp portugal - Let's talk about Flex baby
 
Adobe et la stratégie multi-écrans
Adobe et la stratégie multi-écransAdobe et la stratégie multi-écrans
Adobe et la stratégie multi-écrans
 
Back From MAX in London for CQ5 users
Back From MAX in London for CQ5 usersBack From MAX in London for CQ5 users
Back From MAX in London for CQ5 users
 
Adobe flash platform java
Adobe flash platform javaAdobe flash platform java
Adobe flash platform java
 
Imaginea product-support-offering
Imaginea product-support-offeringImaginea product-support-offering
Imaginea product-support-offering
 
Adobe Summit EMEA 2012 : 16706 Optimise Mobile Experience
Adobe Summit EMEA 2012 : 16706 Optimise Mobile ExperienceAdobe Summit EMEA 2012 : 16706 Optimise Mobile Experience
Adobe Summit EMEA 2012 : 16706 Optimise Mobile Experience
 
Adobe Max 2008 Cross Channel Campaigns
Adobe Max 2008 Cross Channel CampaignsAdobe Max 2008 Cross Channel Campaigns
Adobe Max 2008 Cross Channel Campaigns
 
Flex User Group breton
Flex User Group bretonFlex User Group breton
Flex User Group breton
 
Process in the Age of Digital Innovation
Process in the Age of Digital InnovationProcess in the Age of Digital Innovation
Process in the Age of Digital Innovation
 
Enabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo componentEnabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo component
 

Destacado

Destacado (8)

Sieversapp1
Sieversapp1Sieversapp1
Sieversapp1
 
Nagpur IronMen 70.3
Nagpur IronMen 70.3Nagpur IronMen 70.3
Nagpur IronMen 70.3
 
Event report Tanjore Marthon 2014
Event report Tanjore Marthon 2014Event report Tanjore Marthon 2014
Event report Tanjore Marthon 2014
 
Sieversapp1
Sieversapp1Sieversapp1
Sieversapp1
 
Internazionalizzazione andata e ritorno
Internazionalizzazione andata e ritornoInternazionalizzazione andata e ritorno
Internazionalizzazione andata e ritorno
 
Calici di stelle 2012 CASTIGLIONE DI SICILIA
Calici di stelle 2012 CASTIGLIONE DI SICILIACalici di stelle 2012 CASTIGLIONE DI SICILIA
Calici di stelle 2012 CASTIGLIONE DI SICILIA
 
Php models
Php modelsPhp models
Php models
 
Traveler Store concept
Traveler Store conceptTraveler Store concept
Traveler Store concept
 

Similar a CEDEC2012 Starling 開発

Tom Krcha: Building Games with Adobe Technologies
Tom Krcha: Building Games with Adobe TechnologiesTom Krcha: Building Games with Adobe Technologies
Tom Krcha: Building Games with Adobe TechnologiesDevGAMM Conference
 
Flash performance tuning (EN)
Flash performance tuning (EN)Flash performance tuning (EN)
Flash performance tuning (EN)Andy Hall
 
Adobe Shadow - Amsterdam Adobe Camp
Adobe Shadow - Amsterdam Adobe CampAdobe Shadow - Amsterdam Adobe Camp
Adobe Shadow - Amsterdam Adobe CampMihai Corlan
 
Adobe Flash platform の法人利用
Adobe Flash platform の法人利用Adobe Flash platform の法人利用
Adobe Flash platform の法人利用Keisuke Todoroki
 
Xebia adobe flash mobile applications
Xebia adobe flash mobile applicationsXebia adobe flash mobile applications
Xebia adobe flash mobile applicationsMichael Chaize
 
Node.js and Photoshop Generator - JSConf Asia 2013
Node.js and Photoshop Generator - JSConf Asia 2013Node.js and Photoshop Generator - JSConf Asia 2013
Node.js and Photoshop Generator - JSConf Asia 2013Andy Hall
 
Flash: A call for sanity
Flash: A call for sanityFlash: A call for sanity
Flash: A call for sanityAndrew Dobson
 
Creating Mobile Content Using Flash
Creating Mobile Content Using FlashCreating Mobile Content Using Flash
Creating Mobile Content Using Flashpaultrani
 
Flash Platformアップデート
Flash PlatformアップデートFlash Platformアップデート
Flash PlatformアップデートMariko Nishimura
 
Adobe flash platform java
Adobe flash platform javaAdobe flash platform java
Adobe flash platform javaCh'ti JUG
 
Flash Applications For Mobile
Flash Applications For MobileFlash Applications For Mobile
Flash Applications For MobileSerge Jespers
 
Flex 4.5 and mobile development
Flex 4.5 and mobile developmentFlex 4.5 and mobile development
Flex 4.5 and mobile developmentMichael Chaize
 
Adobe in Technical Communication and Instructional Design
Adobe in Technical Communication and Instructional DesignAdobe in Technical Communication and Instructional Design
Adobe in Technical Communication and Instructional DesignScott Abel
 
Develop multi-screen applications with Flex
Develop multi-screen applications with Flex Develop multi-screen applications with Flex
Develop multi-screen applications with Flex Codemotion
 
The Flash to HTML5 Opportunity
The Flash to HTML5 OpportunityThe Flash to HTML5 Opportunity
The Flash to HTML5 OpportunityThomas Burleson
 
Using Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component SetUsing Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component SetJoseph Labrecque
 
Concurrent Programming with ActionScript workers
Concurrent Programming with ActionScript workersConcurrent Programming with ActionScript workers
Concurrent Programming with ActionScript workersPaul Robertson
 

Similar a CEDEC2012 Starling 開発 (20)

Tom Krcha: Building Games with Adobe Technologies
Tom Krcha: Building Games with Adobe TechnologiesTom Krcha: Building Games with Adobe Technologies
Tom Krcha: Building Games with Adobe Technologies
 
MMT 28: Adobe »Edge to the Flash«
MMT 28: Adobe »Edge to the Flash«MMT 28: Adobe »Edge to the Flash«
MMT 28: Adobe »Edge to the Flash«
 
Flash performance tuning (EN)
Flash performance tuning (EN)Flash performance tuning (EN)
Flash performance tuning (EN)
 
Adobe Shadow - Amsterdam Adobe Camp
Adobe Shadow - Amsterdam Adobe CampAdobe Shadow - Amsterdam Adobe Camp
Adobe Shadow - Amsterdam Adobe Camp
 
Adobe Flash platform の法人利用
Adobe Flash platform の法人利用Adobe Flash platform の法人利用
Adobe Flash platform の法人利用
 
Xebia adobe flash mobile applications
Xebia adobe flash mobile applicationsXebia adobe flash mobile applications
Xebia adobe flash mobile applications
 
Node.js and Photoshop Generator - JSConf Asia 2013
Node.js and Photoshop Generator - JSConf Asia 2013Node.js and Photoshop Generator - JSConf Asia 2013
Node.js and Photoshop Generator - JSConf Asia 2013
 
Flash: A call for sanity
Flash: A call for sanityFlash: A call for sanity
Flash: A call for sanity
 
Creating Mobile Content Using Flash
Creating Mobile Content Using FlashCreating Mobile Content Using Flash
Creating Mobile Content Using Flash
 
Flash Platformアップデート
Flash PlatformアップデートFlash Platformアップデート
Flash Platformアップデート
 
Adobe flash platform java
Adobe flash platform javaAdobe flash platform java
Adobe flash platform java
 
Flash Applications For Mobile
Flash Applications For MobileFlash Applications For Mobile
Flash Applications For Mobile
 
Flex 4.5 and mobile development
Flex 4.5 and mobile developmentFlex 4.5 and mobile development
Flex 4.5 and mobile development
 
Adobe in Technical Communication and Instructional Design
Adobe in Technical Communication and Instructional DesignAdobe in Technical Communication and Instructional Design
Adobe in Technical Communication and Instructional Design
 
Develop multi-screen applications with Flex
Develop multi-screen applications with Flex Develop multi-screen applications with Flex
Develop multi-screen applications with Flex
 
The Flash to HTML5 Opportunity
The Flash to HTML5 OpportunityThe Flash to HTML5 Opportunity
The Flash to HTML5 Opportunity
 
Using Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component SetUsing Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component Set
 
Concurrent Programming with ActionScript workers
Concurrent Programming with ActionScript workersConcurrent Programming with ActionScript workers
Concurrent Programming with ActionScript workers
 
4 adobe gaming on tv
4 adobe gaming on tv4 adobe gaming on tv
4 adobe gaming on tv
 
Bynet2.3 Adobe Flex builder 4
Bynet2.3 Adobe Flex builder 4Bynet2.3 Adobe Flex builder 4
Bynet2.3 Adobe Flex builder 4
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

CEDEC2012 Starling 開発

  • 1. Flashを使った PC、Android、iOS 向けに GPU アクセラレーション対応の 2Dゲーム開発 Andy Hall Adobe Japan © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 2. Andy Hall アンディ ホール Game Evangelist ゲームエバンジェリスト Adobe Japan アドビ システムズ 株式会社 @fenomas © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 3. Agenda 1. Flash、ゲームの背景的な話 2. Stage3D、AGALについて 3. Starlingについて 4. 開発に飛び込もう © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 4. Flash and Games © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 5. Why Flash? • パフォーマンス • ツール • リーチ © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 6. Why Flash? • パフォーマンス • ツール サイレント 自動アップデート • リーチ ユーザ数: 4億人 (!!!) © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 7. Why Flash? • パフォーマンス • ツール サイレント 自動アップデート • リーチ ユーザ数: 4億人 (!!!) 400M Wii PS3 Xbox 360 95.56M 63.9M 67.2M © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. sales numbers as of April-June 2012. Source: Wikipedia
  • 8. 採用状況 9 of 10 top Angry Birds Friends Ruby Blast Facebook games (Rovio) (Zynga) © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 9. About Flash • Flash is: • 柔軟で応用が利く • クロスプラットフォーム • モバイルに最適(Android、iOS 他) • Flash isn’t: • 「ドラッグ・ドロップでゲーム!」 • 完全ネイティブパフォーマンス © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 10. Why the GPU? Tablets, mobiles, retina displays. Pushing pixels through software isn’t an option. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 11. Stage3D Vector 3D Video Display List © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 12. Stage3D Flash コンテンツ (ActionScript) シェーダー Stage3D (AGAL) パイプライン OpenGL or DirectX GPU © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 13. AGALとは m44 op, va0, vc0 dp4 op.x, va0, vc0 dp4 op.y, va0, vc1 dp4 op.z, va0, vc2 dp4 op.w, va0, vc3 m44 op, va0, vc0 mov v0, va1 (ヒトリデハキケンジャ!) © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 14. Starlingの場合 import starling.display.Sprite; var hero:Sprite = new Sprite(); hero.x = 200; hero.y = 200; addChild(hero); (コレヲ サズケヨウ! ) © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 15. Stage3D ライブラリー • オフィシャルライブラリー (free, open source): • Starling (2D) • Away3D • ニーズによって他にも様々… N2D2 Genome2D © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 16. Starling Flash Player Display List API (AS3) Sparrow フレームワーク (ObjC) Starling (AS3) © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 17. Starling + Stage3D Flash コンテンツ (ActionScript) Starling Stage3D (AGAL) OpenGL or DirectX GPU © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 18. Starlingが送ること • Starling gives you: • 生産性 • 親しみのある習得の早いAPI • 拡張性 • 活発的なコミュニティー • Starling doesn’t give you: • GPUは何ぞよ、と気にしなくて良いほど の安全性 • GPUには優しく! © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 19. コードを見せろってば! © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 20. Starling core API starling.events.EventDispatcher starling.display.* DisplayObject DisplayObjectContainer Quad Image Button Stage Sprite TextField MovieClip © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 21. Starling core API starling.events.EventDispatcher starling.display.* DisplayObject DisplayObjectContainer Quad Image Button Stage Sprite TextField MovieClip © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 22. • Just vertices with a color but no texture • Color interpolated on the GPU Quad • Simple primitive Example : q = new Quad(200, 200); q.setVertexColor(0, 0x000000); q.setVertexColor(1, 0xAA0000); q.setVertexColor(2, 0x00FF00); q.setVertexColor(3, 0x0000FF); addChild (q); Solid color : q.color = 0x00FF00; © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 23. • Image is textured quad (extends Quad) • Textures should be uploaded and pooled, Image rather than created when needed • State tracking (setTexture – expensive) • Compressed textures Example : // create a texture, then an image var myBitmap:Bitmap = new MyBitmapClass(); var texture:Texture = Texture.fromBitmap(myBitmap); var image:Image = new Image ( texture ); addChild ( image ); Tint : image.color = 0xFF0000; © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 24. • The lightest container available (just like with standard Flash display list) Sprite • Can be flattened, to display a complex tree quickly • However, all children’s textures need to be in the same texture (or atlas) to see really great performance Example : // freeze the children container.flatten(); // assign changes to a child container.child.scaleX = .5; // refresh container.flatten(); // or unflatten(); © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 25. Sprite, with a timeline MovieClip • • A different texture on each frame • Is not a container. • Does not support scripts on frames. • Completely controllable (custom fps, addFrame, etc). Example : // retrieve frames from a Flash MC var frames:Vector.<Texture> = sTextureAtlas.getTextures("running_"); // creates a MovieClip playing at 40fps mMovie = new MovieClip(frames, 40); © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 26. TextureAtlas • Packaged sets of sprite sheets • To optimize, make sure GPU calls each use one Atlas Example : // get all textures with a common prefix myTextureAtlas.getTextures(“fly_”); © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 27. ではコードを書いてみよう。 © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 28. 拡張の例 Particle Editor http://onebyonedesign.com/flash/particleeditor/ © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 29. Starlingの最適化 • Flatten containers if their contents won’t change: container.flatten(); • Prevent unnecessary touch event handling: container.touchable = false; • Use object pools: s = pool.getSprite(); pool.returnSprite(s); © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 30. 今後のトピック Adobe Texture Format (ATF) • A compressed texture format created specially for Stage3D • The player understand ATF natively, which brings performance benefits Tools and libraries are coming. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 31. ご清聴ありがとうございました。 andhall@adobe.com @fenomas © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 32. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.