SlideShare a Scribd company logo
LUMIA APP LABS #7
GAMES
DEVELOPMENT

Lucian Tomuta
Chief Engineer
AGENDA
What’s new on Windows Phone 8?
How do I write my game?




         © 2013 Nokia. All rights reserved.       1/23/2013
         © 2013 Microsoft. All rights reserved.
WHAT’S NEW?
-   New and improved hardware
-   XNA replaced by a new Windows Phone game platform:
    - Maintains XNA compatibility
    - Reduce the cost to target Windows Phone
       -   Allow use of native code (C++)
       -   Share a large set of APIs with Windows 8
    - Power of Direct3D (native or with XAML)
    - Improved monetisation



               © 2013 Nokia. All rights reserved.       1/23/2013
               © 2013 Microsoft. All rights reserved.
-       Qualcomm Snapdragon S4
                -       1.5 GHz / 1 GHz
                -       Adreno 225 / Adreno 305
                -       768x1280 / 480x800 pixels
                -       1 GB (512 MB)
                -       NFC, sensors, 4G …


                                           http://developer.nokia.com/Devices

© 2013 Nokia. All rights reserved.               1/23/2013
© 2013 Microsoft. All rights reserved.
GAME ENGINES

                                                          Havok
                                 FMOD
 Wwise                                            Unity
                           Ogre                                 Cocos2D

    Scaleform
                                                  Marmalade
         © 2013 Nokia. All rights reserved.                1/23/2013
         © 2013 Microsoft. All rights reserved.
DIRECT3D APP MODEL
C++ only
Access to the new Windows Phone 8 APIs
   • Windows Runtime APIs, COM and Win32 style APIs
   • Which APIs can I call? http://tinyurl.com/WP8APIQS
Reuse your C++ code
   • Statically linked or a DLL
Supports activation and app lifecycle
   • CoreApplication, CoreWindow, CoreDispatcher


              © 2013 Nokia. All rights reserved.       1/23/2013
              © 2013 Microsoft. All rights reserved.
XAML APP MODEL
XAML app model extended
C++ code reuse
   • Your own or other C++ libraries
   • Call COM / Win32 style APIs from within Windows runtime components
Full access to the new Windows 8 shared API surface
   • Windows phone runtime APIs, COM and Win32 style APIs
Direct3D composition
   • Render into a XAML scene from C++/Direct3D
   • 2 new XAML elements

             © 2013 Nokia. All rights reserved.       1/23/2013
             © 2013 Microsoft. All rights reserved.
XAML + DIRECT3D
DrawingSurface
• Place anywhere
• Draw to it from C++/Direct3D
• Automatic composition with other
  XAML elements
• Uses a Direct3D swap chain




           © 2013 Nokia. All rights reserved.       1/23/2013
           © 2013 Microsoft. All rights reserved.
XAML + DIRECT3D
DrawingSurfaceBackgroundGrid
• The root element of the xaml page
• You render to the              from
  C++/Direct3D
• Does not use a Direct3D swap chain
• Performs better
• Grid children are rendered on top




            © 2013 Nokia. All rights reserved.       1/23/2013
            © 2013 Microsoft. All rights reserved.
XAML OR DIRECT3D APP ?
XAML app
   • You need access to live tiles, notifications, background agents, XAML UI,…
Direct3D app
   • You need the absolute best performance
   • You don’t need what the XAML app gives you
How hard is it to switch?
   • It is very straightforward



              © 2013 Nokia. All rights reserved.       1/23/2013
              © 2013 Microsoft. All rights reserved.
NATIVE DIRECT3D APPLICATION
API: Direct3D 11.1
Hardware capabilities: feature level 9.3
Subset of Windows 8
   • No Windows Imaging Component (WIC)
   • No Direct2D or DWrite                               DirectXTex: texture processing library
Removed legacy features                                  http://codeplex.com/directxtex
   •   No GDI
   •   No D3DX
                                                         DirectX Tool Kit
   •   No fixed function
                                                         http://codeplex.com/directxtk
   •   No runtime shader compilation


                © 2013 Nokia. All rights reserved.                 1/23/2013
                © 2013 Microsoft. All rights reserved.
INPUT & SENSORS
Input                                                   Windows.Devices.Sensors
   • PointerPressed, PointerMoved,                         Accelerometer
        PointerReleased                                    Gyrometer
   •    KeyDown, KeyUp,                                    Orientation
        CharacterRecieved, Show/Hide
        Onscreen Keyboard                                  Compass
                                                           Inclinometer
                                                           Supports Polling and Events




               © 2013 Nokia. All rights reserved.                  1/23/2013
               © 2013 Microsoft. All rights reserved.
AUDIO SUPPORT
XAudio2
  Looping, 3D positioning, DSP effects, etc.
  Many at once
  In-memory PCM or ADPCM data
IMFMediaEngine
  One at a time
  Compressed (MP3, WMA)
  Asynchronously streamed from the file system or URI

            © 2013 Nokia. All rights reserved.       1/23/2013
            © 2013 Microsoft. All rights reserved.
VIDEO CUTSCENE SUPPORT
Use IMFMediaEngine
Initialise and set source
Control playback
Render video
    • Game retrieves video frame and renders video frame on the texture of an object in
        the game
    •   Game uses OnVideoStreamTick to find out whether a new video frame is ready
    •   Game uses TransferVideoFrame to copy video frame to DXGI surface
    •   OS can render RGB and YUV(NV12) formats


                © 2013 Nokia. All rights reserved.       1/23/2013
                © 2013 Microsoft. All rights reserved.
MULTIPLAYER GAMES
TCP sockets with SSL support using
 StreamSocket/StreamSocketListener
UDP sockets using DatagramSocket
C++ HTTP support via XmlHTTPWebRequest2
Winsock

Peer Finder API
   NFC based player discovery
   Play via WLAN or Bluetooth                       http://projects.developer.nokia.com/nfctalk

           © 2013 Nokia. All rights reserved.                     1/23/2013
           © 2013 Microsoft. All rights reserved.
GAME CLOUD
Nokia Premium Developer Program
and Buddy.com
  User account management
  Scoreboards and achievements
  Push Notifications
  Cross-platfom

1.000.000 API calls/month for a year

            © 2013 Nokia. All rights reserved.       1/23/2013
            © 2013 Microsoft. All rights reserved.
HOW DO I MAKE MONEY
-   Ads
    - Cross-platform advertising solution offered by Nokia Ad Exchange
-   Try and buy
-   In-app purchase
    - Support for durable (game levels) and consumable (coins) items
    - Can be used from XNA games as well, see http://tinyurl.Com/iaplightup




              © 2013 Nokia. All rights reserved.       1/23/2013
              © 2013 Microsoft. All rights reserved.
TIP!
Test your application on low memory devices!

Test your application on high resolution devices!




            © 2013 Nokia. All rights reserved.       1/23/2013
            © 2013 Microsoft. All rights reserved.
TIP!
Your app can use up to 150 MB of available memory (up from 90 MB)
If you need more, add the following capability to the app manifest:
          <App>
            …
              <FunctionalCapabilities>
                  <FunctionalCapability Name="ID_FUNCCAP_EXTEND_MEM"/>
              </FunctionalCapabilities>
          </App>



This will allow your app to use up to 180 MB on low spec devices or even
  380 MB on devices with > 1 GB


             © 2013 Nokia. All rights reserved.                          1/23/2013
             © 2013 Microsoft. All rights reserved.
TIP!
If your application cannot run at all on low memory devices, use
   ID_REQ_MEMORY_300

              <App>
                …
                  <Requirements>
                     <Requirement Name="ID_REQ_FRONTCAMERA" />
                     <Requirement Name="ID_REQ_MEMORY_300" />
                  </Requirements>
              </App>




This will make your app visible only to devices with 1GB RAM or more.


            © 2013 Nokia. All rights reserved.                   1/23/2013
            © 2013 Microsoft. All rights reserved.
Thank you!




© 2013 Nokia. All rights reserved.         1/23/2013
© 2013 Microsoft. All rights reserved.

More Related Content

What's hot

[Android Codefest] Using the Second-Screen API & Intel® Wireless Display From...
[Android Codefest] Using the Second-Screen API & Intel® Wireless Display From...[Android Codefest] Using the Second-Screen API & Intel® Wireless Display From...
[Android Codefest] Using the Second-Screen API & Intel® Wireless Display From...
BeMyApp
 
Secondary Screen Support Using DisplayManager
Secondary Screen Support Using DisplayManagerSecondary Screen Support Using DisplayManager
Secondary Screen Support Using DisplayManager
CommonsWare
 
Android Meetup, Илья Лёвин
Android Meetup, Илья ЛёвинAndroid Meetup, Илья Лёвин
Android Meetup, Илья ЛёвинGDG Saint Petersburg
 
Android Upgrade 2.3
Android Upgrade 2.3Android Upgrade 2.3
Android Upgrade 2.3
Mauro Freitas
 
Introduction to Nokia Asha Touch UI
Introduction to Nokia Asha Touch UIIntroduction to Nokia Asha Touch UI
Introduction to Nokia Asha Touch UI
Microsoft Mobile Developer
 
Nokia New Asha Platform Developer Training
Nokia New Asha Platform Developer TrainingNokia New Asha Platform Developer Training
Nokia New Asha Platform Developer Training
Andreas Jakl
 
What & How to Customize Android?
What & How to Customize Android?What & How to Customize Android?
New Technology in 2012
New Technology in 2012New Technology in 2012
New Technology in 2012somey_oung
 
Samsung Galaxy S3 GT-I9300. Manual del Usuario
Samsung Galaxy S3 GT-I9300. Manual del UsuarioSamsung Galaxy S3 GT-I9300. Manual del Usuario
Samsung Galaxy S3 GT-I9300. Manual del Usuario
Gabatek .com
 
Android os installation
Android os installationAndroid os installation
Android os installation
Nipun Jolly
 
AISEC 12 april 2012 Introduction to Windows Embedded Handheld programming
AISEC 12 april 2012   Introduction to Windows Embedded Handheld programmingAISEC 12 april 2012   Introduction to Windows Embedded Handheld programming
AISEC 12 april 2012 Introduction to Windows Embedded Handheld programmingCatalin Gheorghiu
 
Symbian OS
Symbian  OS Symbian  OS
Symbian OS
Adit Pathak
 
Android : a linux-based mobile operating system
Android : a linux-based mobile operating systemAndroid : a linux-based mobile operating system
Android : a linux-based mobile operating system
Clément Escoffier
 
Porting Android apps to the Series 40 platform
Porting Android apps to the Series 40 platformPorting Android apps to the Series 40 platform
Porting Android apps to the Series 40 platform
Microsoft Mobile Developer
 
What is operating system
What is operating systemWhat is operating system
What is operating system
રજનીશ સિંહા
 
Android technology
Android technology Android technology
Android technology
vikas malviya
 
Android introduction and rooting technology
Android introduction and rooting technologyAndroid introduction and rooting technology
Android introduction and rooting technology
Gagandeep Nanda
 

What's hot (19)

[Android Codefest] Using the Second-Screen API & Intel® Wireless Display From...
[Android Codefest] Using the Second-Screen API & Intel® Wireless Display From...[Android Codefest] Using the Second-Screen API & Intel® Wireless Display From...
[Android Codefest] Using the Second-Screen API & Intel® Wireless Display From...
 
Secondary Screen Support Using DisplayManager
Secondary Screen Support Using DisplayManagerSecondary Screen Support Using DisplayManager
Secondary Screen Support Using DisplayManager
 
Android Meetup, Илья Лёвин
Android Meetup, Илья ЛёвинAndroid Meetup, Илья Лёвин
Android Meetup, Илья Лёвин
 
Android Overview
Android OverviewAndroid Overview
Android Overview
 
Android Upgrade 2.3
Android Upgrade 2.3Android Upgrade 2.3
Android Upgrade 2.3
 
Introduction to Nokia Asha Touch UI
Introduction to Nokia Asha Touch UIIntroduction to Nokia Asha Touch UI
Introduction to Nokia Asha Touch UI
 
Nokia New Asha Platform Developer Training
Nokia New Asha Platform Developer TrainingNokia New Asha Platform Developer Training
Nokia New Asha Platform Developer Training
 
What & How to Customize Android?
What & How to Customize Android?What & How to Customize Android?
What & How to Customize Android?
 
New Technology in 2012
New Technology in 2012New Technology in 2012
New Technology in 2012
 
Samsung Galaxy S3 GT-I9300. Manual del Usuario
Samsung Galaxy S3 GT-I9300. Manual del UsuarioSamsung Galaxy S3 GT-I9300. Manual del Usuario
Samsung Galaxy S3 GT-I9300. Manual del Usuario
 
Android os installation
Android os installationAndroid os installation
Android os installation
 
AISEC 12 april 2012 Introduction to Windows Embedded Handheld programming
AISEC 12 april 2012   Introduction to Windows Embedded Handheld programmingAISEC 12 april 2012   Introduction to Windows Embedded Handheld programming
AISEC 12 april 2012 Introduction to Windows Embedded Handheld programming
 
Symbian OS
Symbian  OS Symbian  OS
Symbian OS
 
Aakash Tablet
Aakash TabletAakash Tablet
Aakash Tablet
 
Android : a linux-based mobile operating system
Android : a linux-based mobile operating systemAndroid : a linux-based mobile operating system
Android : a linux-based mobile operating system
 
Porting Android apps to the Series 40 platform
Porting Android apps to the Series 40 platformPorting Android apps to the Series 40 platform
Porting Android apps to the Series 40 platform
 
What is operating system
What is operating systemWhat is operating system
What is operating system
 
Android technology
Android technology Android technology
Android technology
 
Android introduction and rooting technology
Android introduction and rooting technologyAndroid introduction and rooting technology
Android introduction and rooting technology
 

Similar to LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8

600.250 UI Cross Platform Development and the Android Security Model
600.250 UI Cross Platform Development and the Android Security Model600.250 UI Cross Platform Development and the Android Security Model
600.250 UI Cross Platform Development and the Android Security Model
Michael Rushanan
 
Sierra Wireless Developer Day 2013 - 08 - Open AT
Sierra Wireless Developer Day 2013 - 08 - Open ATSierra Wireless Developer Day 2013 - 08 - Open AT
Sierra Wireless Developer Day 2013 - 08 - Open AT
Thibault Cantegrel
 
Embedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VEmbedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VOpersys inc.
 
Embedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVEmbedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVOpersys inc.
 
Optimizing your Android App for Mass Market Devices
Optimizing your Android App for Mass Market DevicesOptimizing your Android App for Mass Market Devices
Optimizing your Android App for Mass Market DevicesMotorola Mobility - MOTODEV
 
Embedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VIEmbedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VIOpersys inc.
 
Android 130923124440-phpapp01
Android 130923124440-phpapp01Android 130923124440-phpapp01
Android 130923124440-phpapp01
rajesh kumar
 
Bring Out the Best in Embedded Computing
Bring Out the Best in Embedded ComputingBring Out the Best in Embedded Computing
Bring Out the Best in Embedded Computing
Qualcomm Developer Network
 
UplinQ - bring out the best in embedded computing
UplinQ - bring out the best in embedded computingUplinQ - bring out the best in embedded computing
UplinQ - bring out the best in embedded computing
Satya Harish
 
Basic android-ppt
Basic android-pptBasic android-ppt
Basic android-ppt
Srijib Roy
 
Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Opersys inc.
 
09 09-2013 android-introduction p_pt
09 09-2013 android-introduction p_pt09 09-2013 android-introduction p_pt
09 09-2013 android-introduction p_pt
TOPS Technologies
 
Project Darkstar
Project DarkstarProject Darkstar
Project DarkstarAhmed Saeed
 
Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014Opersys inc.
 
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
AMD Developer Central
 
Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011
sullis
 
Android
AndroidAndroid
Shaping a Technology Strategy for Mobile Development
Shaping a Technology Strategy for Mobile DevelopmentShaping a Technology Strategy for Mobile Development
Shaping a Technology Strategy for Mobile Developmentfrog
 
Anti key logging and real-time encrypting software | keystrokes encrypting so...
Anti key logging and real-time encrypting software | keystrokes encrypting so...Anti key logging and real-time encrypting software | keystrokes encrypting so...
Anti key logging and real-time encrypting software | keystrokes encrypting so...
Mike Taylor
 

Similar to LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8 (20)

600.250 UI Cross Platform Development and the Android Security Model
600.250 UI Cross Platform Development and the Android Security Model600.250 UI Cross Platform Development and the Android Security Model
600.250 UI Cross Platform Development and the Android Security Model
 
Sierra Wireless Developer Day 2013 - 08 - Open AT
Sierra Wireless Developer Day 2013 - 08 - Open ATSierra Wireless Developer Day 2013 - 08 - Open AT
Sierra Wireless Developer Day 2013 - 08 - Open AT
 
Embedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VEmbedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon V
 
Embedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVEmbedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IV
 
Optimizing your Android App for Mass Market Devices
Optimizing your Android App for Mass Market DevicesOptimizing your Android App for Mass Market Devices
Optimizing your Android App for Mass Market Devices
 
Embedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VIEmbedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VI
 
Android 130923124440-phpapp01
Android 130923124440-phpapp01Android 130923124440-phpapp01
Android 130923124440-phpapp01
 
Bring Out the Best in Embedded Computing
Bring Out the Best in Embedded ComputingBring Out the Best in Embedded Computing
Bring Out the Best in Embedded Computing
 
UplinQ - bring out the best in embedded computing
UplinQ - bring out the best in embedded computingUplinQ - bring out the best in embedded computing
UplinQ - bring out the best in embedded computing
 
Basic android-ppt
Basic android-pptBasic android-ppt
Basic android-ppt
 
Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014
 
09 09-2013 android-introduction p_pt
09 09-2013 android-introduction p_pt09 09-2013 android-introduction p_pt
09 09-2013 android-introduction p_pt
 
Project Darkstar
Project DarkstarProject Darkstar
Project Darkstar
 
Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014
 
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
 
Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011
 
Android
AndroidAndroid
Android
 
Shaping a Technology Strategy for Mobile Development
Shaping a Technology Strategy for Mobile DevelopmentShaping a Technology Strategy for Mobile Development
Shaping a Technology Strategy for Mobile Development
 
Game Programming By J2me
Game Programming By J2meGame Programming By J2me
Game Programming By J2me
 
Anti key logging and real-time encrypting software | keystrokes encrypting so...
Anti key logging and real-time encrypting software | keystrokes encrypting so...Anti key logging and real-time encrypting software | keystrokes encrypting so...
Anti key logging and real-time encrypting software | keystrokes encrypting so...
 

More from Microsoft Mobile Developer

Intro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsIntro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and tools
Microsoft Mobile Developer
 
Lumia App Labs: Lumia SensorCore SDK beta
Lumia App Labs: Lumia SensorCore SDK betaLumia App Labs: Lumia SensorCore SDK beta
Lumia App Labs: Lumia SensorCore SDK beta
Microsoft Mobile Developer
 
Nokia Asha from idea to app - Imaging
Nokia Asha from idea to app - ImagingNokia Asha from idea to app - Imaging
Nokia Asha from idea to app - Imaging
Microsoft Mobile Developer
 
Healthcare apps for Nokia X and Nokia Asha
Healthcare apps for Nokia X and Nokia AshaHealthcare apps for Nokia X and Nokia Asha
Healthcare apps for Nokia X and Nokia Asha
Microsoft Mobile Developer
 
Push notifications on Nokia X
Push notifications on Nokia XPush notifications on Nokia X
Push notifications on Nokia X
Microsoft Mobile Developer
 
DIY Nokia Asha app usability studies
DIY Nokia Asha app usability studiesDIY Nokia Asha app usability studies
DIY Nokia Asha app usability studies
Microsoft Mobile Developer
 
Lessons learned from Nokia X UI reviews
Lessons learned from Nokia X UI reviewsLessons learned from Nokia X UI reviews
Lessons learned from Nokia X UI reviews
Microsoft Mobile Developer
 
Location based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagLocation based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tag
Microsoft Mobile Developer
 
HERE Maps for the Nokia X platform
HERE Maps for the Nokia X platformHERE Maps for the Nokia X platform
HERE Maps for the Nokia X platform
Microsoft Mobile Developer
 
Nokia In-App Payment - UX considerations
Nokia In-App Payment - UX considerationsNokia In-App Payment - UX considerations
Nokia In-App Payment - UX considerations
Microsoft Mobile Developer
 
Introduction to Nokia Asha SDK 1.2 (beta)
Introduction to Nokia Asha SDK 1.2 (beta)Introduction to Nokia Asha SDK 1.2 (beta)
Introduction to Nokia Asha SDK 1.2 (beta)
Microsoft Mobile Developer
 
UX considerations when porting to Nokia X
UX considerations when porting to Nokia XUX considerations when porting to Nokia X
UX considerations when porting to Nokia X
Microsoft Mobile Developer
 
Kids' games and educational app design
Kids' games and educational app designKids' games and educational app design
Kids' games and educational app design
Microsoft Mobile Developer
 
Nokia X: opportunities for developers
Nokia X: opportunities for developersNokia X: opportunities for developers
Nokia X: opportunities for developers
Microsoft Mobile Developer
 
Lumia App Labs: Nokia Imaging SDK 1.1
Lumia App Labs: Nokia Imaging SDK 1.1Lumia App Labs: Nokia Imaging SDK 1.1
Lumia App Labs: Nokia Imaging SDK 1.1
Microsoft Mobile Developer
 
Intro to Nokia X software platform and tools
Intro to Nokia X software platform and toolsIntro to Nokia X software platform and tools
Intro to Nokia X software platform and tools
Microsoft Mobile Developer
 
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsLumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Microsoft Mobile Developer
 
Windows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appWindows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra app
Microsoft Mobile Developer
 
La pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeLa pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo store
Microsoft Mobile Developer
 
Il pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoIl pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progetto
Microsoft Mobile Developer
 

More from Microsoft Mobile Developer (20)

Intro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsIntro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and tools
 
Lumia App Labs: Lumia SensorCore SDK beta
Lumia App Labs: Lumia SensorCore SDK betaLumia App Labs: Lumia SensorCore SDK beta
Lumia App Labs: Lumia SensorCore SDK beta
 
Nokia Asha from idea to app - Imaging
Nokia Asha from idea to app - ImagingNokia Asha from idea to app - Imaging
Nokia Asha from idea to app - Imaging
 
Healthcare apps for Nokia X and Nokia Asha
Healthcare apps for Nokia X and Nokia AshaHealthcare apps for Nokia X and Nokia Asha
Healthcare apps for Nokia X and Nokia Asha
 
Push notifications on Nokia X
Push notifications on Nokia XPush notifications on Nokia X
Push notifications on Nokia X
 
DIY Nokia Asha app usability studies
DIY Nokia Asha app usability studiesDIY Nokia Asha app usability studies
DIY Nokia Asha app usability studies
 
Lessons learned from Nokia X UI reviews
Lessons learned from Nokia X UI reviewsLessons learned from Nokia X UI reviews
Lessons learned from Nokia X UI reviews
 
Location based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagLocation based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tag
 
HERE Maps for the Nokia X platform
HERE Maps for the Nokia X platformHERE Maps for the Nokia X platform
HERE Maps for the Nokia X platform
 
Nokia In-App Payment - UX considerations
Nokia In-App Payment - UX considerationsNokia In-App Payment - UX considerations
Nokia In-App Payment - UX considerations
 
Introduction to Nokia Asha SDK 1.2 (beta)
Introduction to Nokia Asha SDK 1.2 (beta)Introduction to Nokia Asha SDK 1.2 (beta)
Introduction to Nokia Asha SDK 1.2 (beta)
 
UX considerations when porting to Nokia X
UX considerations when porting to Nokia XUX considerations when porting to Nokia X
UX considerations when porting to Nokia X
 
Kids' games and educational app design
Kids' games and educational app designKids' games and educational app design
Kids' games and educational app design
 
Nokia X: opportunities for developers
Nokia X: opportunities for developersNokia X: opportunities for developers
Nokia X: opportunities for developers
 
Lumia App Labs: Nokia Imaging SDK 1.1
Lumia App Labs: Nokia Imaging SDK 1.1Lumia App Labs: Nokia Imaging SDK 1.1
Lumia App Labs: Nokia Imaging SDK 1.1
 
Intro to Nokia X software platform and tools
Intro to Nokia X software platform and toolsIntro to Nokia X software platform and tools
Intro to Nokia X software platform and tools
 
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsLumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
 
Windows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appWindows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra app
 
La pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeLa pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo store
 
Il pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoIl pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progetto
 

Recently uploaded

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 

Recently uploaded (20)

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 

LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8

  • 1. LUMIA APP LABS #7 GAMES DEVELOPMENT Lucian Tomuta Chief Engineer
  • 2. AGENDA What’s new on Windows Phone 8? How do I write my game? © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 3. WHAT’S NEW? - New and improved hardware - XNA replaced by a new Windows Phone game platform: - Maintains XNA compatibility - Reduce the cost to target Windows Phone - Allow use of native code (C++) - Share a large set of APIs with Windows 8 - Power of Direct3D (native or with XAML) - Improved monetisation © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 4. - Qualcomm Snapdragon S4 - 1.5 GHz / 1 GHz - Adreno 225 / Adreno 305 - 768x1280 / 480x800 pixels - 1 GB (512 MB) - NFC, sensors, 4G … http://developer.nokia.com/Devices © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 5. GAME ENGINES Havok FMOD Wwise Unity Ogre Cocos2D Scaleform Marmalade © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 6. DIRECT3D APP MODEL C++ only Access to the new Windows Phone 8 APIs • Windows Runtime APIs, COM and Win32 style APIs • Which APIs can I call? http://tinyurl.com/WP8APIQS Reuse your C++ code • Statically linked or a DLL Supports activation and app lifecycle • CoreApplication, CoreWindow, CoreDispatcher © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 7. XAML APP MODEL XAML app model extended C++ code reuse • Your own or other C++ libraries • Call COM / Win32 style APIs from within Windows runtime components Full access to the new Windows 8 shared API surface • Windows phone runtime APIs, COM and Win32 style APIs Direct3D composition • Render into a XAML scene from C++/Direct3D • 2 new XAML elements © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 8. XAML + DIRECT3D DrawingSurface • Place anywhere • Draw to it from C++/Direct3D • Automatic composition with other XAML elements • Uses a Direct3D swap chain © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 9. XAML + DIRECT3D DrawingSurfaceBackgroundGrid • The root element of the xaml page • You render to the from C++/Direct3D • Does not use a Direct3D swap chain • Performs better • Grid children are rendered on top © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 10. XAML OR DIRECT3D APP ? XAML app • You need access to live tiles, notifications, background agents, XAML UI,… Direct3D app • You need the absolute best performance • You don’t need what the XAML app gives you How hard is it to switch? • It is very straightforward © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 11. NATIVE DIRECT3D APPLICATION API: Direct3D 11.1 Hardware capabilities: feature level 9.3 Subset of Windows 8 • No Windows Imaging Component (WIC) • No Direct2D or DWrite DirectXTex: texture processing library Removed legacy features http://codeplex.com/directxtex • No GDI • No D3DX DirectX Tool Kit • No fixed function http://codeplex.com/directxtk • No runtime shader compilation © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 12. INPUT & SENSORS Input Windows.Devices.Sensors • PointerPressed, PointerMoved, Accelerometer PointerReleased Gyrometer • KeyDown, KeyUp, Orientation CharacterRecieved, Show/Hide Onscreen Keyboard Compass Inclinometer Supports Polling and Events © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 13. AUDIO SUPPORT XAudio2 Looping, 3D positioning, DSP effects, etc. Many at once In-memory PCM or ADPCM data IMFMediaEngine One at a time Compressed (MP3, WMA) Asynchronously streamed from the file system or URI © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 14. VIDEO CUTSCENE SUPPORT Use IMFMediaEngine Initialise and set source Control playback Render video • Game retrieves video frame and renders video frame on the texture of an object in the game • Game uses OnVideoStreamTick to find out whether a new video frame is ready • Game uses TransferVideoFrame to copy video frame to DXGI surface • OS can render RGB and YUV(NV12) formats © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 15. MULTIPLAYER GAMES TCP sockets with SSL support using StreamSocket/StreamSocketListener UDP sockets using DatagramSocket C++ HTTP support via XmlHTTPWebRequest2 Winsock Peer Finder API NFC based player discovery Play via WLAN or Bluetooth http://projects.developer.nokia.com/nfctalk © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 16. GAME CLOUD Nokia Premium Developer Program and Buddy.com User account management Scoreboards and achievements Push Notifications Cross-platfom 1.000.000 API calls/month for a year © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 17. HOW DO I MAKE MONEY - Ads - Cross-platform advertising solution offered by Nokia Ad Exchange - Try and buy - In-app purchase - Support for durable (game levels) and consumable (coins) items - Can be used from XNA games as well, see http://tinyurl.Com/iaplightup © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 18. TIP! Test your application on low memory devices! Test your application on high resolution devices! © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 19. TIP! Your app can use up to 150 MB of available memory (up from 90 MB) If you need more, add the following capability to the app manifest: <App> … <FunctionalCapabilities> <FunctionalCapability Name="ID_FUNCCAP_EXTEND_MEM"/> </FunctionalCapabilities> </App> This will allow your app to use up to 180 MB on low spec devices or even 380 MB on devices with > 1 GB © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 20. TIP! If your application cannot run at all on low memory devices, use ID_REQ_MEMORY_300 <App> … <Requirements> <Requirement Name="ID_REQ_FRONTCAMERA" /> <Requirement Name="ID_REQ_MEMORY_300" /> </Requirements> </App> This will make your app visible only to devices with 1GB RAM or more. © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.
  • 21. Thank you! © 2013 Nokia. All rights reserved. 1/23/2013 © 2013 Microsoft. All rights reserved.

Editor's Notes

  1. Adaptive Differential Pulse Code Modulation