mobile game development with starling

Post on 23-Aug-2014

440 Views

Category:

Presentations & Public Speaking

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

New Features of Starling 1.5. How to develop for devices with limited RAM. Performance Tips. Alternative Frameworks & Platforms

TRANSCRIPT

Consistent Game Developmentacross all Platforms

Mobile Game Developmentwith

StarlingDaniel Sperl

Daniel Sperl

Austria, 1981 Media Design, 1999

Flox, 2012 Gamua, 2009

Starling, 2011 Sparrow, 2010

Photo Play, 2004

iOS Games & Apps, 2009

Topics

• Starling 1.5

• Development for Mobile Devices:

• Performance

• Screen Resolutions

• Memory

• Outlook

What is Starling?

• A pure AS3 library for Adobe Flash

• Recreates the display list architecture ...

• ... on the GPU (through Stage3D)

• Deploy to:Browser / Desktop / iOS / Android

A very talented bird, if I may say so.

Who uses Starling?

Angry Birds (Rovio) Ruby Blast (Zynga) Incredipede

Nyrthos Infectonator:Survivors

Snailboy

Starling 1.5

Starling 1.5

• Currently Available as Release Candidate

• Includes many internal improvements

• Update highly recommended!

Starling 1.5

• Automatic Profile Selection

• More reliable Context Loss handling

• Significantly reduced Start-up Time

• Atlas Textures support Rotation

• SystemUtil class

• …

Features

Developing for Mobile

• Limited Performance (GPU + CPU)

• Multiple Resolutions

• Limited Memory

Performance

tinyurl.com/starling-performance

Screen Resolutions

tinyurl.com/starling-resolutions

Memory

• Mobile Devices have limited RAM

• Mobile Devices have huge Resolutions

• 2D Games need lots of Textures

Watch your Memory Footprint!

MemoryDo not Embed Textures

// Avoid:![Embed(source=“assets/textures/hero.png")]private static var Hero:Class;!var texture:Texture = Texture.fromBitmap(new Hero());

• Embedded Textures are in Memory twice: Class Memory + Texture Memory

• Better: use Starling's AssetManager

MemoryUse the AssetManager

var appDir:File = File.applicationDirectory;var assets:AssetManager = new AssetManager(); assets.enqueue(appDir.resolvePath("assets/textures"));assets.loadQueue(...);!var texture:Texture = assets.getTexture("hero");

• Takes care of Context Loss

• Optimized for minimal Memory Footprint

MemoryUse RectangleTextures

// init Starling like this:!... = new Starling(Game, stage, null, null, "auto", "auto");

• Standard Textures always allocate MipMaps

• RectangleTextures do not!

• Starling defaults to RectangleTextures with profiles "baseline" + "baselineExtended"

MemoryUse ATF Textures

# Usage example:png2atf -c -r -i texture.png -o texture.atf

• Stored compressed in GPU Memory

• Reduced Image Quality

• Easy to create via Adobe ATF Tools

MemoryUse Bitmap Fonts

assets.enqueue(appDir.resolvePath("assets/fonts"));assets.loadQueue(...);!var tf:TextField = new TextField(200, 80, "Hello World", "My-Font", BitmapFont.NATIVE_SIZE);

• Requires only Memory forFont Texture

• Faster to change text + render

MemoryOptimize your Texture Atlas

• Trim transparent Borders

• Activate Rotation

• Use a Tool like TexturePacker

MemoryUse Adobe Scout

• Analyzes TextureMemory Usage

• Shows every single Object Allocation

MemorySummary

• Use the AssetManager

• Use RectangleTextures (profile: auto)

• Use ATF Textures

• Use Bitmap Fonts

• Optimize your Texture Atlases

• Use Adobe Scout

Outlook

• Ongoing Support by Adobe

• Collaborating with Adoberegarding AIR Priorities

• Collaborating with the Starling Community regarding Starling Priorities

• Flash is not dead™ =)

That's it, folks!

Questions?

top related