290 likes | 399 Views
Tomasz Wisniowski. Playjam Ltd. Creating and Optimizing 2D Flash Technology–Based Games for Mass Market TVs October 2011, Adobe MAX @ playjamdev. Table of contents. Why create games for ConnectedTV? Evolution of CTV Market Dynamics Target audience Challenges for developers
E N D
Tomasz Wisniowski Playjam Ltd. Creating and Optimizing 2D Flash Technology–Based Games for Mass Market TVs October 2011, Adobe MAX @playjamdev
Table of contents • Why create games for ConnectedTV? • Evolution of CTV • Market Dynamics • Target audience • Challenges for developers • Technical aspects of creating CTV games • AS2 vs. AS3 vs. AIR • Input • Display • Sound • General code guidelines • Case study • Sum up • Closing remarks
Continual Evolution • Major Consumer Electronics (CE) vendors driven by the hunt for recurring revenues & the necessity to shift from pure manufacturing to service operators. • Addressing global markets with richer, faster interactivity than ever seen on TV before. Made possible by lower prices and better tools: Better hardware Optimized software Smarter input
Market Dynamics • Combined installed base – 1billion devices by 2015
Market Dynamics So, we have: • A viable casual games platform today • In huge volume • Globally HOWEVER:
Are Games Important? • 21% connecting primarily to access games • 47% of connected homes would play games
Smart TV - Early Indicators 24% = Games 23% = Educational apps Samsung @Internet TV Store
Who’s Playing? Male Female Age Frequency Gender
Playing Behavior Genre Motivation
So what are the challenges? • Delivering and app store experience conducive to the TV / Living Room • Solving discoverability for content owners • Coping with technology pace and fragmentation • Creating sustainable revenues
Technology choice • First questions – what technology to use, and which programming language to choose • Javascript? Flash? • If Flash – AS2 (Flash Lite) vs. AS3 (Flash 10.1+) • Flash or AIR? ? ? ? ? ? ? ?
Javascript • In most cases – older TVs • Still a big market • From our experience, less compatibility problems than with Flash
Flash • AS2 vs. AS3 (or rather Flash Lite vs. Flash 10.1) • Things to consider: • Performance • Do you already have a backlog of games that you want to re-deploy on CTV? • External libraries access • (subjective) AS3 code easier to create, more modern
Technologies comparison Yahoo! Widgets Panasonic JavaScript
Input • Different types of input • Each remote has a different key layout • OEMs typically want you to support all types of their input • Your application MUST be fully navigable by d-pad + enter
Input – continued • Things to keep in mind: • Different key codes for each manufacturer • Input lag • KeyUP/KeyDOWN handling • Technically impossible to press two keys at once
Display • Most of the devices support HD, but the recommended resolutions for applications are QHD or 720p • Since the graphics are upscaled, they tend to be blurry and/or pixelated
Display - continued • Problems when deploying your application to 720p devices if your initial version was QHD – this happens quite often. • Flash software scaling causes performance drops – avoid if possible! • Safe zones:
Sound • Some devices support sound, some don’t • Some support BGM only • Most allow for various file types: mp3, ogg being most popular • Sound support varies by device – some can play music/sfx straight from Flash, others need to play sounds via fscommand2 or javascript
Programmer’s guidelines • Typically the amount of memory available for applications is more than enough (for casual games) • Graphics are usually stored with 32 bits per pixel. Full hd screen = 1920x1080 pixels * 32 bits = 66 355 200 bits = ~8MB – way too much memory! You usually have about 6 MB of texture memory in total, everything over that causes a significant performance loss. • TRACK YOUR MEMORY USAGE! • Avoid the use of alpha • Avoid rotating objects (especially in javascript) • The application should run at 20+FPS
Case studies Case 1 Pick & Nick AS2/AS3 Case 2 Space Shooter MAX Demo, AIR 3.0 with Molehill
Summing up • There is a wide range of devices to choose from • Make sure that the application is designed for a 10ft experience: • Don’t use fonts smaller than 18px • Don’t make the user read a lot of text • Keep the forms (input fields) to the bare minimum • Double check that every functionality you designed is accessible by d-pad + enter. System keys such as EXIT and BACK/RETURN are programmable too, as well as the colored keys. • Making your game support mouse input will make it work with most „wand” input methods too!
Summing up - continued • Use hardware acceleration where possible (cache as bitmap) • Remove everything that does not to be on the screen from the memory, if possible. Remember this is a memory-tight environment. • Don’t use Flash native tabbing, create your own input mechanisms. • If you want to use objects with alpha, make sure they don’t get on top of each other! • Don’t bloat your application, some platforms have a limitation on how big the installation can be. Store the assets, or even separate .swf’s remotely in such cases.
Summing up - continued • Make sureyourgraphicsarescaleable – youprobablywon’t be sticking to eitheronly QHD oronly 720p. • Usevectorgraphicswherepossible – less strain on thememory. • Gameplay-wise: • Avoid situations where input lag might affect the fun. • Avoid asking the player to press two buttons at the same time.
Closing remarks • Flash Lite was never meant to create games or applications • The market is slowly moving away from Flash Lite towards Flash 10.1/AIR2.5 • It means better support for game developers – access to more game engines, better libraries • Better cross-platform opportunities – immediate porting to iOS, Android, and many more
Thankyou for coming! Thankyou for coming! Tomasz Wisniowski PlayJam Ltd. @twisniowski @playjamdev