SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Living the dream: make the video game
you’ve always wanted and get paid for it!

                                        Dave Isbitski
                     Sr. Developer Evangelist, Microsoft
                         http://blogs.msdn.com/davedev
                                         @TheDaveDev

                                 Level: Intermediate
Agenda

•   Windows Phone
    – A new world of opportunity
•   XNA Game Studio 4.0
    – Xbox and Windows Phone
•   XNA Framework for Phone
    – Game Loop, Touch, Accelerometer, Sound,
      Graphics
•   Making $ Money $ in the Marketplace
Large and         40,000+ certified applications and games
   Growing          Growing at over 100 new apps per day
 Selection of       61% Paid, 39% Free
                    70+ exclusive Xbox LIVE games
Apps & Games

                  38,000+ developers registered
    From Many     7,300+ developers have submitted one or more
    Developers     apps
                  1,200 new developers every week

      Loved       12 Downloads per User per Month
                  10% Conversion rate from Trial to Paid Purchase
     by Users     Daily Merchandising drives 500% download uplift

                  MO Billing now available to over 50% of Windows
    Generating     Phone users
                  % Paid Downloads: 3.2%
5   High ARPU     Paid Apps Average Selling Price: $2.93; High ad
                   monetization rate
Promoting Your App

                  Merchandizing Placements
                  Merchandizing Placements
PlacementType
Placement Type    Panorama
                   Panorama     Featured Icon
                                 Featured Icon   Featured List
                                                  Featured List
Download Uplift
DownloadUplift     2000%
                    2000%          800%
                                    800%              150%




6
Gamer?
xbox.com/phone
xbox.com/phone
Xbox Live on Windows Phone
Gamertag

Friends

Achievements
                    Windows Phone will extend the
                    Xbox LIVE brand beyond the
Merchandising       console for the first time
Premium Placement
                    Windows Phone is the first step
                    towards our vision of a
                    ubiquitous gaming service
                    Differentiates your title from the
                    rest
Portable Gaming Perfection
Powerful



Productive



Portable
Makes game development easier

XNA Framework provides robust APIs for games

C#, .NET and Visual Studio tooling

Solutions for game content processing

Not an engine solution


                                               Creating
                                                Games
Develop                                                Enhanced
     exciting                                                 audio
     games                                                   support
                Simplified                  Visual Studio
                graphics                        2010
                  API’s                      integration
                                New
                             configurable
                               effects
16
Content Pipeline

Simplify Your Content Usage
XNA          Polling
not Events
Typical Game Loop



 Load content when they start   Initialize
                                Initialize()          Load
                                                  LoadContent()    Get User
                                 Engine            Resources        Input
 Update the game world                                             Update()
 Draw the game world                                               Calculate


                                                                  Test Criteria
                                                                    Draw()
                                               UnloadContent()       Give
                                               Free Resources      FeedBack




20
Start simple and customize!                           XNA Framework Game Loop Example
                                    protected override void Update(GameTime gameTime)
                                    {
                                      // Allows the game to exit
Traditional update/draw/              if
present frame loop                  (GamePad.GetState(PlayerIndex.One).Buttons.Back ==
                                          ButtonState.Pressed)
Core programming model                       this.Exit();
consistent with previous releases
                                        // TODO: Add your update logic here
Changes implemented yield
better                                  base.Update(gameTime);
power performance on devices        }

System integration with             protected override void Draw(GameTime gameTime)
                                    {
Windows Phone 7 best practices        GraphicsDevice.Clear(Color.CornflowerBlue);

Translated to existing                  // TODO: Add your drawing code here
XNA Framework concepts
                                        base.Draw(gameTime);
                                    }
Scaler
Write your game without worrying about native resolution or orientation
  Automatic rotation between portrait and landscape
  Touch automatically supports both scale and orientation changes


Scaler can drastically improve performance
  Trade off performance for “crispness” and shade fewer pixels
  800x480 = 384,000 pixels, 480x320 = 153,600 pixels


Upsample an arbitrary back buffer to native device resolution
  Far higher quality than bilinear filtering
  Allows for easier porting from other platforms




Scaling/Rotation comes for “free” from Hardware
Input Overview
  Cross Platform Input API
Xbox 360 Controllers
(Xbox/Windows)
                                                        Touch Input Handling
Keyboard
(Xbox/Windows/Windows Phone 7)     var touchCollection = TouchPanel.GetState();

  Touch API                        //...

Available across platforms for     foreach (var touchLocation in touchCollection)
portability                        {
(fewer #ifdefs)                      if (touchLocation.State ==
                                       TouchLocationState.Released)
Multipoint on Windows Phone 7        {
and Windows                            //...
                                     }
Orientation and resolution aware   }
Developer can override
Touch gestures

•   The touch panel can detect a number of different
    gestures including

    – Tap
    – DoubleTap
    – Hold
    – HorizontalDrag, VerticalDrag and FreeDrag
    – Pinch
    – Flick
TouchPanel.EnabledGestures = GestureType.Flick;
Audio Capture Example

 Audio                                          public void EventDrivenCapture()
                                                {
                                                  mic = Microphone.Default;
                                                  buffer = new byte[mic.GetSampleSizeInBytes(mic.BufferDuration)];
    Audio Capture and                             mic.BufferReady += new EventHandler(OnBufferReady);
                                                  DynamicPlayback = new DynamicSoundEffectInstance(mic.SampleRate,
    Playback                                    }
                                                                                               AudioChannels.Mono);


                                                public void OnBufferReady(object sender, EventArgs args)
Simple API to play back WAV data                {
                                                  // Get the latest captured audio.
                                                  int duration = mic.GetData(buffer);
Modify pitch, volume, pan audio
                                                    // Do some post-capture processing and playback.
Ability to play synthesized/buffered audio          MakeMeSoundLikeARobot(buffer, duration);
                                                    DynamicPlayback.SubmitBuffer(buffer);
Serialize captured data                         }

Provides more control over
System.Media
types on Windows Phone 7                                                  Audio Playback Example
                                          // Load a sound effect from a raw stream
                                          SoundEffect effect1 =
         Microphone/Bluetooth
         Support                          SoundEffect.FromStream(GetStreamFromTheWeb("http://url.wav"));
                                          effect1.Play();
         Playback through headset
                                          // Create dynamic audio on the fly
         Capture through mic or headset   byte[] fluteSound = GetFluteNote();
                                          effect2 = new SoundEffect(fluteSound, SampleRate,
                                          AudioChannels.Stereo);
                                          SoundEffectInstance instance = effect2.CreateInstance();
                                          instance.Pan = -1; instance.Pitch = 1.5f;
                                          instance.Play();
Media – Music/Photos/Video
Music Enumeration and                              URI Song Playback Example
                                            // Constructs a song from a URI
Playback                                    Uri mediaStreamUri = new
Control and enumerate users’                Uri("http://song.asx");
                                            Song streamedSong =
media within a game
                                            Song.FromUri("Song",
Ability to play songs from URI/URL                     mediaStreamUri);
(i.e. music app)                            // Play the song
                                            MediaPlayer.Play(streamedSong);
Picture Enumeration and
Playback
Supports photo                                          Retrieve Image Data
picking/editing/publishing

Video Playback                       MediaLibrary media = new MediaLibrary();

                                     // Get the JPEG image data
Uses standard video player API       Stream myJpegImage =
                                     ReadAndModifyPicture(somePicture);
Show/Hide controls
                                     // Save texture to Media Library
                                     media.SavePicture("Awesome", myJpegImage);
Adding a Menu System
XNA Framework Shared Graphics

•



•
    –Application class
    –

•
    –SetSharingMode(bool enableXna)
    –
XNA Framework Shared Graphics
•   XNA SharedGraphicsDeviceManager
    –Manages Direct3D device sharing with
     Silverlight

•   GPU resource management
    –Silverlight evicts resources when using XNA
     Graphics
    –XNA APIs allow manual resource
     management
    –Maximize free memory, minimize repeat
     loading of content
What About “Game”?

•   Microsoft.Xna.Framework.Game
    –XNA cross-platform application abstraction
    –Game “Heartbeat” methods
    –Application lifetime events
    –ContentManager

•

    –
    –

•
Render Silverlight over XNA Graphics


•   Silverlight Page is still active when using XNA
    Shared Rendering

•



•
    – UI, controls, and input
    – Texture models
    – Imposters/Billboards

•   Text input, Storyboards, and Animations all available
Ads and Trial Mode
Trial Mode

 Simple check
 Simulate for testing
 Send user to your Marketplace offer

                                       Trial Mode
Guide.SimulateTrialMode = true;

// if we are in trial mode, show a marketplace offering
if (Guide.IsTrialMode)
{
     PlayerIndex playerIndex =
     Gamer.SignedInGamers[0].PlayerIndex;
     Guide.ShowMarketplace(playerIndex);
}
PubCenter Advertising SDK
•       Very easy to incorporate ads into XNA
        games

•       Download the Ad-Control SDK
    •    AdManager added as a game component – easy to
         retro-fit to an existing game


•       Players can click through an advertisement
        to a web site or call the advertiser from within
        your game
    •    Advertisements are specifically targeted at each player
         demographic


•       You get 70% of the revenue
•   Sign up here so that you can incorporate ads in your
    games: http://pubcenter.microsoft.com

•   Find out more about Windows Phone Advertising
           http://advertising.microsoft.com/mobile-apps
•   The Advertising SDK is now part of the Windows
    Phone SDK
•   You can include a n XNA Drawable Ad into a game
•   This is very easy to do – full code example on my
    Blog
     • http://blogs.msdn.com/b/davedev/p/events.aspx
Demo - PubCenter
Think Global
Today (16)

Publish Apps to More Places                            + 19 New (35)




                                                 Hong Kong




                                     Singapore




             1.8 Billion more potential users
49
Call to Action
Download the Windows Phone Developer Tools

http://create.msdn.com

http://creators.xna.com

wpgames@microsoft.com

Fun First. Test on a device if possible!
Living the dream: make the video game
you’ve always wanted and get paid for it!

                                        Dave Isbitski
                     Sr. Developer Evangelist, Microsoft
                         http://blogs.msdn.com/davedev
                                         @TheDaveDev

                                 Level: Intermediate

Weitere ähnliche Inhalte

Was ist angesagt?

Staying ahead of the multi-core revolution with CDT debug
Staying ahead of the multi-core revolution with CDT debugStaying ahead of the multi-core revolution with CDT debug
Staying ahead of the multi-core revolution with CDT debugmarckhouzam
 
Poser pro reference manual
Poser pro reference manualPoser pro reference manual
Poser pro reference manualSykrayo
 
3 d platformtutorial unity
3 d platformtutorial unity3 d platformtutorial unity
3 d platformtutorial unityunityshare
 
Wakka Monkey - Game Development
Wakka Monkey - Game DevelopmentWakka Monkey - Game Development
Wakka Monkey - Game DevelopmentWakka Monkey
 
Getting Started with iPhone Game Development
Getting Started with iPhone Game DevelopmentGetting Started with iPhone Game Development
Getting Started with iPhone Game DevelopmentJohn Wilker
 
Android on IA devices and Intel Tools
Android on IA devices and Intel ToolsAndroid on IA devices and Intel Tools
Android on IA devices and Intel ToolsXavier Hallade
 

Was ist angesagt? (10)

Hd7800 series
Hd7800 seriesHd7800 series
Hd7800 series
 
Staying ahead of the multi-core revolution with CDT debug
Staying ahead of the multi-core revolution with CDT debugStaying ahead of the multi-core revolution with CDT debug
Staying ahead of the multi-core revolution with CDT debug
 
Poser pro reference manual
Poser pro reference manualPoser pro reference manual
Poser pro reference manual
 
Haptics for android
Haptics for androidHaptics for android
Haptics for android
 
3 d platformtutorial unity
3 d platformtutorial unity3 d platformtutorial unity
3 d platformtutorial unity
 
Wakka Monkey - Game Development
Wakka Monkey - Game DevelopmentWakka Monkey - Game Development
Wakka Monkey - Game Development
 
Getting Started with iPhone Game Development
Getting Started with iPhone Game DevelopmentGetting Started with iPhone Game Development
Getting Started with iPhone Game Development
 
Dukane 8930
Dukane 8930Dukane 8930
Dukane 8930
 
Android on IA devices and Intel Tools
Android on IA devices and Intel ToolsAndroid on IA devices and Intel Tools
Android on IA devices and Intel Tools
 
Dukane 8928
Dukane 8928Dukane 8928
Dukane 8928
 

Ähnlich wie Living the Dream: Make the Video Game You’ve Always Wanted and Get Paid For It!

Criando jogos para o windows 8
Criando jogos para o windows 8Criando jogos para o windows 8
Criando jogos para o windows 8José Farias
 
Prasentation Managed DirectX
Prasentation Managed DirectXPrasentation Managed DirectX
Prasentation Managed DirectXA. LE
 
Game programming with Groovy
Game programming with GroovyGame programming with Groovy
Game programming with GroovyJames Williams
 
Flash for Mobile Devices
Flash for Mobile DevicesFlash for Mobile Devices
Flash for Mobile Devicespaultrani
 
Creating Flash Content for Multiple Screens
Creating Flash Content for Multiple ScreensCreating Flash Content for Multiple Screens
Creating Flash Content for Multiple Screenspaultrani
 
Game software development trends presentation
Game software development trends   presentationGame software development trends   presentation
Game software development trends presentation_veronika_
 
A lap around mango
A lap around mangoA lap around mango
A lap around mangoAndy Chiang
 
Enrique Duvós: Adobe Gaming Solutions
 Enrique Duvós: Adobe Gaming Solutions Enrique Duvós: Adobe Gaming Solutions
Enrique Duvós: Adobe Gaming SolutionsDevGAMM Conference
 
XNA And Silverlight
XNA And SilverlightXNA And Silverlight
XNA And SilverlightAaron King
 
Shape12 6
Shape12 6Shape12 6
Shape12 6pslulli
 
Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Jeff Sipko
 
BitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven rendererBitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven renderertobias_persson
 
Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009David Fox
 
Beginning Game Development in XNA
Beginning Game Development in XNABeginning Game Development in XNA
Beginning Game Development in XNAguest9e9355e
 
Beginning Game Development in XNA
Beginning Game Development in XNABeginning Game Development in XNA
Beginning Game Development in XNAguest9e9355e
 
Desenvolvimento de Jogos em XNA para Windows Phone 7
Desenvolvimento de Jogos em XNA para Windows Phone 7Desenvolvimento de Jogos em XNA para Windows Phone 7
Desenvolvimento de Jogos em XNA para Windows Phone 7Comunidade NetPonto
 
I phone app develoment ppt
I phone app develoment   pptI phone app develoment   ppt
I phone app develoment pptsagaroceanic11
 

Ähnlich wie Living the Dream: Make the Video Game You’ve Always Wanted and Get Paid For It! (20)

Criando jogos para o windows 8
Criando jogos para o windows 8Criando jogos para o windows 8
Criando jogos para o windows 8
 
Xna game development
Xna game developmentXna game development
Xna game development
 
Prasentation Managed DirectX
Prasentation Managed DirectXPrasentation Managed DirectX
Prasentation Managed DirectX
 
Game programming with Groovy
Game programming with GroovyGame programming with Groovy
Game programming with Groovy
 
Xna for wp7
Xna for wp7Xna for wp7
Xna for wp7
 
Flash for Mobile Devices
Flash for Mobile DevicesFlash for Mobile Devices
Flash for Mobile Devices
 
Creating Flash Content for Multiple Screens
Creating Flash Content for Multiple ScreensCreating Flash Content for Multiple Screens
Creating Flash Content for Multiple Screens
 
Game software development trends presentation
Game software development trends   presentationGame software development trends   presentation
Game software development trends presentation
 
A lap around mango
A lap around mangoA lap around mango
A lap around mango
 
XNA Intro Workshop
XNA Intro WorkshopXNA Intro Workshop
XNA Intro Workshop
 
Enrique Duvós: Adobe Gaming Solutions
 Enrique Duvós: Adobe Gaming Solutions Enrique Duvós: Adobe Gaming Solutions
Enrique Duvós: Adobe Gaming Solutions
 
XNA And Silverlight
XNA And SilverlightXNA And Silverlight
XNA And Silverlight
 
Shape12 6
Shape12 6Shape12 6
Shape12 6
 
Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2Becoming a kinect hacker innovator v2
Becoming a kinect hacker innovator v2
 
BitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven rendererBitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven renderer
 
Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009
 
Beginning Game Development in XNA
Beginning Game Development in XNABeginning Game Development in XNA
Beginning Game Development in XNA
 
Beginning Game Development in XNA
Beginning Game Development in XNABeginning Game Development in XNA
Beginning Game Development in XNA
 
Desenvolvimento de Jogos em XNA para Windows Phone 7
Desenvolvimento de Jogos em XNA para Windows Phone 7Desenvolvimento de Jogos em XNA para Windows Phone 7
Desenvolvimento de Jogos em XNA para Windows Phone 7
 
I phone app develoment ppt
I phone app develoment   pptI phone app develoment   ppt
I phone app develoment ppt
 

Mehr von David Isbitski

Screencast dave dev-introtoask-andecho-july2015
Screencast dave dev-introtoask-andecho-july2015Screencast dave dev-introtoask-andecho-july2015
Screencast dave dev-introtoask-andecho-july2015David Isbitski
 
Lap Around Azure Build Updates
Lap Around Azure Build UpdatesLap Around Azure Build Updates
Lap Around Azure Build UpdatesDavid Isbitski
 
Hosting a WordPress Blog on Azure Websites
Hosting a WordPress Blog on Azure WebsitesHosting a WordPress Blog on Azure Websites
Hosting a WordPress Blog on Azure WebsitesDavid Isbitski
 
Azure Mobile Services for iOS
Azure Mobile Services for iOSAzure Mobile Services for iOS
Azure Mobile Services for iOSDavid Isbitski
 
Building Apps for the new Windows Store
Building Apps for the new Windows Store Building Apps for the new Windows Store
Building Apps for the new Windows Store David Isbitski
 
Windows Phone 8 Sensors
Windows Phone 8 SensorsWindows Phone 8 Sensors
Windows Phone 8 SensorsDavid Isbitski
 
Designing for Windows Phone 8
Designing for Windows Phone 8Designing for Windows Phone 8
Designing for Windows Phone 8David Isbitski
 
A Developer Lap Around Windows Phone 8
A Developer Lap Around Windows Phone 8 A Developer Lap Around Windows Phone 8
A Developer Lap Around Windows Phone 8 David Isbitski
 
Windows Azure Mobile Services
Windows Azure Mobile ServicesWindows Azure Mobile Services
Windows Azure Mobile ServicesDavid Isbitski
 
Windows Store Apps with HTML and JavaScript
Windows Store Apps with HTML and JavaScriptWindows Store Apps with HTML and JavaScript
Windows Store Apps with HTML and JavaScriptDavid Isbitski
 
Designing a Windows Store App
Designing a Windows Store AppDesigning a Windows Store App
Designing a Windows Store AppDavid Isbitski
 
Playing music and sound effects in a windows 8 metro style app using html5 an...
Playing music and sound effects in a windows 8 metro style app using html5 an...Playing music and sound effects in a windows 8 metro style app using html5 an...
Playing music and sound effects in a windows 8 metro style app using html5 an...David Isbitski
 
Windows Phone App Development
Windows Phone App DevelopmentWindows Phone App Development
Windows Phone App DevelopmentDavid Isbitski
 
HTML5 Graphics - Canvas and SVG
HTML5 Graphics - Canvas and SVGHTML5 Graphics - Canvas and SVG
HTML5 Graphics - Canvas and SVGDavid Isbitski
 
Building Windows 8 Metro Style casual games using HTML5 and JavaScript
Building Windows 8 Metro Style casual games using HTML5 and JavaScriptBuilding Windows 8 Metro Style casual games using HTML5 and JavaScript
Building Windows 8 Metro Style casual games using HTML5 and JavaScriptDavid Isbitski
 

Mehr von David Isbitski (17)

Screencast dave dev-introtoask-andecho-july2015
Screencast dave dev-introtoask-andecho-july2015Screencast dave dev-introtoask-andecho-july2015
Screencast dave dev-introtoask-andecho-july2015
 
Lap Around Azure Build Updates
Lap Around Azure Build UpdatesLap Around Azure Build Updates
Lap Around Azure Build Updates
 
Hosting a WordPress Blog on Azure Websites
Hosting a WordPress Blog on Azure WebsitesHosting a WordPress Blog on Azure Websites
Hosting a WordPress Blog on Azure Websites
 
Azure Mobile Services for iOS
Azure Mobile Services for iOSAzure Mobile Services for iOS
Azure Mobile Services for iOS
 
Building Apps for the new Windows Store
Building Apps for the new Windows Store Building Apps for the new Windows Store
Building Apps for the new Windows Store
 
Windows Phone 8 Sensors
Windows Phone 8 SensorsWindows Phone 8 Sensors
Windows Phone 8 Sensors
 
More Than An App
More Than An AppMore Than An App
More Than An App
 
Designing for Windows Phone 8
Designing for Windows Phone 8Designing for Windows Phone 8
Designing for Windows Phone 8
 
A Developer Lap Around Windows Phone 8
A Developer Lap Around Windows Phone 8 A Developer Lap Around Windows Phone 8
A Developer Lap Around Windows Phone 8
 
Windows Azure Mobile Services
Windows Azure Mobile ServicesWindows Azure Mobile Services
Windows Azure Mobile Services
 
Windows Store Apps with HTML and JavaScript
Windows Store Apps with HTML and JavaScriptWindows Store Apps with HTML and JavaScript
Windows Store Apps with HTML and JavaScript
 
Designing a Windows Store App
Designing a Windows Store AppDesigning a Windows Store App
Designing a Windows Store App
 
Playing music and sound effects in a windows 8 metro style app using html5 an...
Playing music and sound effects in a windows 8 metro style app using html5 an...Playing music and sound effects in a windows 8 metro style app using html5 an...
Playing music and sound effects in a windows 8 metro style app using html5 an...
 
Windows Phone App Development
Windows Phone App DevelopmentWindows Phone App Development
Windows Phone App Development
 
HTML5 Graphics - Canvas and SVG
HTML5 Graphics - Canvas and SVGHTML5 Graphics - Canvas and SVG
HTML5 Graphics - Canvas and SVG
 
HTML5 Gaming
HTML5 GamingHTML5 Gaming
HTML5 Gaming
 
Building Windows 8 Metro Style casual games using HTML5 and JavaScript
Building Windows 8 Metro Style casual games using HTML5 and JavaScriptBuilding Windows 8 Metro Style casual games using HTML5 and JavaScript
Building Windows 8 Metro Style casual games using HTML5 and JavaScript
 

Kürzlich hochgeladen

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Kürzlich hochgeladen (20)

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

Living the Dream: Make the Video Game You’ve Always Wanted and Get Paid For It!

  • 1. Living the dream: make the video game you’ve always wanted and get paid for it! Dave Isbitski Sr. Developer Evangelist, Microsoft http://blogs.msdn.com/davedev @TheDaveDev Level: Intermediate
  • 2. Agenda • Windows Phone – A new world of opportunity • XNA Game Studio 4.0 – Xbox and Windows Phone • XNA Framework for Phone – Game Loop, Touch, Accelerometer, Sound, Graphics • Making $ Money $ in the Marketplace
  • 3.
  • 4.
  • 5. Large and  40,000+ certified applications and games Growing  Growing at over 100 new apps per day Selection of  61% Paid, 39% Free  70+ exclusive Xbox LIVE games Apps & Games  38,000+ developers registered From Many  7,300+ developers have submitted one or more Developers apps  1,200 new developers every week Loved  12 Downloads per User per Month  10% Conversion rate from Trial to Paid Purchase by Users  Daily Merchandising drives 500% download uplift  MO Billing now available to over 50% of Windows Generating Phone users  % Paid Downloads: 3.2% 5 High ARPU  Paid Apps Average Selling Price: $2.93; High ad monetization rate
  • 6. Promoting Your App Merchandizing Placements Merchandizing Placements PlacementType Placement Type Panorama Panorama Featured Icon Featured Icon Featured List Featured List Download Uplift DownloadUplift 2000% 2000% 800% 800% 150% 6
  • 10. Xbox Live on Windows Phone
  • 11. Gamertag Friends Achievements Windows Phone will extend the Xbox LIVE brand beyond the Merchandising console for the first time Premium Placement Windows Phone is the first step towards our vision of a ubiquitous gaming service Differentiates your title from the rest
  • 14. Makes game development easier XNA Framework provides robust APIs for games C#, .NET and Visual Studio tooling Solutions for game content processing Not an engine solution Creating Games
  • 15.
  • 16. Develop Enhanced exciting audio games support Simplified Visual Studio graphics 2010 API’s integration New configurable effects 16
  • 18.
  • 19. XNA Polling not Events
  • 20. Typical Game Loop Load content when they start Initialize Initialize() Load LoadContent() Get User Engine Resources Input Update the game world Update() Draw the game world Calculate Test Criteria Draw() UnloadContent() Give Free Resources FeedBack 20
  • 21. Start simple and customize! XNA Framework Game Loop Example protected override void Update(GameTime gameTime) { // Allows the game to exit Traditional update/draw/ if present frame loop (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) Core programming model this.Exit(); consistent with previous releases // TODO: Add your update logic here Changes implemented yield better base.Update(gameTime); power performance on devices } System integration with protected override void Draw(GameTime gameTime) { Windows Phone 7 best practices GraphicsDevice.Clear(Color.CornflowerBlue); Translated to existing // TODO: Add your drawing code here XNA Framework concepts base.Draw(gameTime); }
  • 22.
  • 23. Scaler Write your game without worrying about native resolution or orientation Automatic rotation between portrait and landscape Touch automatically supports both scale and orientation changes Scaler can drastically improve performance Trade off performance for “crispness” and shade fewer pixels 800x480 = 384,000 pixels, 480x320 = 153,600 pixels Upsample an arbitrary back buffer to native device resolution Far higher quality than bilinear filtering Allows for easier porting from other platforms Scaling/Rotation comes for “free” from Hardware
  • 24.
  • 25. Input Overview Cross Platform Input API Xbox 360 Controllers (Xbox/Windows) Touch Input Handling Keyboard (Xbox/Windows/Windows Phone 7) var touchCollection = TouchPanel.GetState(); Touch API //... Available across platforms for foreach (var touchLocation in touchCollection) portability { (fewer #ifdefs) if (touchLocation.State == TouchLocationState.Released) Multipoint on Windows Phone 7 { and Windows //... } Orientation and resolution aware } Developer can override
  • 26. Touch gestures • The touch panel can detect a number of different gestures including – Tap – DoubleTap – Hold – HorizontalDrag, VerticalDrag and FreeDrag – Pinch – Flick TouchPanel.EnabledGestures = GestureType.Flick;
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32. Audio Capture Example Audio public void EventDrivenCapture() { mic = Microphone.Default; buffer = new byte[mic.GetSampleSizeInBytes(mic.BufferDuration)]; Audio Capture and mic.BufferReady += new EventHandler(OnBufferReady); DynamicPlayback = new DynamicSoundEffectInstance(mic.SampleRate, Playback } AudioChannels.Mono); public void OnBufferReady(object sender, EventArgs args) Simple API to play back WAV data { // Get the latest captured audio. int duration = mic.GetData(buffer); Modify pitch, volume, pan audio // Do some post-capture processing and playback. Ability to play synthesized/buffered audio MakeMeSoundLikeARobot(buffer, duration); DynamicPlayback.SubmitBuffer(buffer); Serialize captured data } Provides more control over System.Media types on Windows Phone 7 Audio Playback Example // Load a sound effect from a raw stream SoundEffect effect1 = Microphone/Bluetooth Support SoundEffect.FromStream(GetStreamFromTheWeb("http://url.wav")); effect1.Play(); Playback through headset // Create dynamic audio on the fly Capture through mic or headset byte[] fluteSound = GetFluteNote(); effect2 = new SoundEffect(fluteSound, SampleRate, AudioChannels.Stereo); SoundEffectInstance instance = effect2.CreateInstance(); instance.Pan = -1; instance.Pitch = 1.5f; instance.Play();
  • 33. Media – Music/Photos/Video Music Enumeration and URI Song Playback Example // Constructs a song from a URI Playback Uri mediaStreamUri = new Control and enumerate users’ Uri("http://song.asx"); Song streamedSong = media within a game Song.FromUri("Song", Ability to play songs from URI/URL mediaStreamUri); (i.e. music app) // Play the song MediaPlayer.Play(streamedSong); Picture Enumeration and Playback Supports photo Retrieve Image Data picking/editing/publishing Video Playback MediaLibrary media = new MediaLibrary(); // Get the JPEG image data Uses standard video player API Stream myJpegImage = ReadAndModifyPicture(somePicture); Show/Hide controls // Save texture to Media Library media.SavePicture("Awesome", myJpegImage);
  • 34.
  • 35. Adding a Menu System
  • 36. XNA Framework Shared Graphics • • –Application class – • –SetSharingMode(bool enableXna) –
  • 37. XNA Framework Shared Graphics • XNA SharedGraphicsDeviceManager –Manages Direct3D device sharing with Silverlight • GPU resource management –Silverlight evicts resources when using XNA Graphics –XNA APIs allow manual resource management –Maximize free memory, minimize repeat loading of content
  • 38. What About “Game”? • Microsoft.Xna.Framework.Game –XNA cross-platform application abstraction –Game “Heartbeat” methods –Application lifetime events –ContentManager • – – •
  • 39. Render Silverlight over XNA Graphics • Silverlight Page is still active when using XNA Shared Rendering • • – UI, controls, and input – Texture models – Imposters/Billboards • Text input, Storyboards, and Animations all available
  • 40.
  • 41.
  • 43. Trial Mode  Simple check  Simulate for testing  Send user to your Marketplace offer Trial Mode Guide.SimulateTrialMode = true; // if we are in trial mode, show a marketplace offering if (Guide.IsTrialMode) { PlayerIndex playerIndex = Gamer.SignedInGamers[0].PlayerIndex; Guide.ShowMarketplace(playerIndex); }
  • 44. PubCenter Advertising SDK • Very easy to incorporate ads into XNA games • Download the Ad-Control SDK • AdManager added as a game component – easy to retro-fit to an existing game • Players can click through an advertisement to a web site or call the advertiser from within your game • Advertisements are specifically targeted at each player demographic • You get 70% of the revenue
  • 45. Sign up here so that you can incorporate ads in your games: http://pubcenter.microsoft.com • Find out more about Windows Phone Advertising http://advertising.microsoft.com/mobile-apps
  • 46. The Advertising SDK is now part of the Windows Phone SDK • You can include a n XNA Drawable Ad into a game • This is very easy to do – full code example on my Blog • http://blogs.msdn.com/b/davedev/p/events.aspx
  • 49. Today (16) Publish Apps to More Places + 19 New (35) Hong Kong Singapore 1.8 Billion more potential users 49
  • 50. Call to Action Download the Windows Phone Developer Tools http://create.msdn.com http://creators.xna.com wpgames@microsoft.com Fun First. Test on a device if possible!
  • 51. Living the dream: make the video game you’ve always wanted and get paid for it! Dave Isbitski Sr. Developer Evangelist, Microsoft http://blogs.msdn.com/davedev @TheDaveDev Level: Intermediate