CEDEC2012 Starling 開発

  • 755 views
Uploaded on

タイトル:

タイトル:

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
755
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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.