Development and Debugging Tools for Windows Phone 7 Series Cullen Waters Software Development Engineer II Advanced Technology Group, Microsoft Corporation.

Slides:



Advertisements
Similar presentations
Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.
Advertisements

Dynamic Analysis of Windows Phone 7 apps Behrang Fouladi, SensePost.
Creating Games For Windows, Xbox 360, and Windows Phone 7 Ryan Plemons
Amanda Silver Director of Program Management Visual Studio Tools for Client Applications Cross-Platform Development using Visual Studio.
.NET IL Obfuscation Presented by: Sarath Chandra Dorbala.
What’s New in ASP.NET 5 and Visual Studio 2015 SPENCER SCHNEIDENBACH GADELLNET CONSULTING SERVICES.
What’s New for Smart Client Developers in Visual Studio 2005? Mike Pelton Systems Engineer Microsoft Ltd
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
Introducing the UWP.
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
There has never been a better time to build a game that targets PC, tablets, phone and Xbox!
Microsoft Evangelist Presentation September 13, 2012.
The PhoneGap History Doncho Minkov Telerik Academy academy.telerik.com Technical Trainer
How to make it work? Doncho Minkov Telerik Academy academy.telerik.com Technical Trainer
A Games Class Using XNA Game Studio Express Art Gittleman California State University Long Beach
Object Oriented Software Development 1. Introduction to C# and Visual Studio.
A tour of Visual Studio 2008 and the.NET Framework v3.5 Daniel Moth Developer & Platform Group Microsoft
OPTIMIZING AND DEBUGGING GRAPHICS APPLICATIONS WITH AMD'S GPU PERFSTUDIO 2.5 GPG Developer Tools Gordon Selley Peter Lohrmann GDC 2011.
Your Interactive Guide to the Digital World Discovering Computers 2012.
Mobile Programming Lecture 1 Getting Started. Today's Agenda About the Eclipse IDE Hello, World! Project Android Project Structure Intro to Activities,
Creating and Running Your First C# Program Telerik Software Academy Telerik School Academy.
McGraw-Hill© 2007 The McGraw-Hill Companies, Inc. All rights reserved. 1-1.
XNA Studio: Introduction to XNA Brian Keller Product Manager Microsoft Corporation.
1 Wednesday, August 6, 2008 ASYNCHRONY SOLUTIONS Making cross-platform Windows/Xbox 360 games in XNA.
An Introduction to. What is XNA?  “A set of tools with a managed runtime environment provided my Microsoft that facilitates computer game development.
Title slide to be used at the start of a module. Developing Mobile Apps Roland Guijt
Introduction to Programming
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
Architecture of.NET Framework .NET Framework ٭ Microsoft.NET (pronounced “dot net”) is a software component that runs on the Windows operating.
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Windows CE 시스템 개발 개요. 임베디드시스템소프트웨어 -Windows CE 2 Overview  Selecting a Windows Embedded Operating System  The Windows CE Platform Development Cycle.
Introduction to Mobile Programming. Slide 2 Overview Fundamentally, it all works the same way You get the SDK for the device (Droid, Windows, Apple) You.
Developing Cross-Platform Applications with Visual Studio 2015
Overview of System Development. Overview Selecting a Windows Embedded Operating System The Windows CE Platform Development Cycle The Application Development.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
C# Game Development with XNA Philip Degarmo. Introduction What is XNA? –Microsoft’s replacement for “Managed DirectX” –“XNA” = “XNA Game Studio” – de.
Rajiv and Shipra Introduction to.NET (asp.net,c#,vb)
ASP.NET &.NET Environment. Overview Part of Microsoft’s.NET environment Used for Development of  Websites  Internet applications  Web Services & XML.
Windows CE 시스템 개발 개요. 모바일운영체제 - Windows CE 2 Overview  Selecting a Windows Embedded Operating System  The Windows CE Platform Development Cycle  The.
Microsoft Visual Basic 2005 BASICS Lesson 1 A First Look at Microsoft Visual Basic.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
The way of hybrid mobile development Hybrid Mobile Applications Telerik Software Academy
11 Computers, C#, XNA, and You Session 1.1. Session Overview  Find out what computers are all about ...and what makes a great programmer  Discover.
“WALK IN” SLIDE. August Taming the CLR: How to Write Really Fast Managed Code Rico Mariani Architect Developer Division Performance Team Microsoft.
Installation of Visual Studio Android emulator and Android Studio
Inspiration  Christine Love  Digital: A Love Story  Don’t Take It Personally Babe.
Barbara Doyle Jacksonville University What’s New with Visual Studio and C#?
The Windows 10 App platform: an introduction to the UWP Andy Wigley b:
Best 5 Mobile App Development Tools for Developer's to think beyond the Limitation.
Understanding Mobile Devices, Interactions, and Tools Lesson 1.
Build Cross-Platform Mobile Apps Using Visual Studio A Telerik webinar by Jeffrey T. Fritz March 27, 2014 AND.
Building Windows Phone 7 Games and Applications Yes, yes! “Games and Applications” and not “Applications and Games” Content is under NDA – please do no.
Moving from Stencyl 2 to Stencyl 3 & beyond
Introduction ITEC 420.
Introduction to Xamarin C# Everywhere
Microsoft Evangelist Presentation
SQL Server Data Tools for Visual Studio Part I: Core SQL Server Tools
1.1. .NET architectural components and .NET Core
MonoGame and Windows 8.
DotnetConf 11/14/2018 3:27 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE.
Microsoft Ignite /14/ :21 AM BRK2101
Windows 10 Preview Andy & Jerry
What's New in Visual Studio 2005
Overview of System Development for Windows CE.NET
Introduction to ASP.NET Parts 1 & 2
Mark Quirk Head of Technology Developer & Platform Group
.Net for Test and Measurement
Presentation transcript:

Development and Debugging Tools for Windows Phone 7 Series Cullen Waters Software Development Engineer II Advanced Technology Group, Microsoft Corporation

Who Should Stay for This Talk? Game Developers working on other mobile platforms interested in branching out to mobile Folks who have not used XNA professionally

Who Might Want to Leave? who have shipped an XNA XBLA title People who are uninterested in Windows Phone 7 Series development Game Developers

Toolset Silverlight 3 (plus) XNA Visual Studio 2010 Visual Phone Developer Express Single, integrated download

Silverlight 3 (Plus) Silverlight 3 with some device-specific additions Accelerometer Touch Location

XNA Framework 4.0 A new version of XNA Full 3D support on the device APIs similar to those we know and love from Windows and Xbox 360

Visual Studio 2010  Full debugging support on the device  Lots of new goodness in Visual Studio 2010

Visual Studio &.NET  Productive development with.NET & C#  High performance IDE  Intellisense makes coding faster  Integrated build/deploy/debug experience  MSBuild engine for build automation

Visual Phone Developer Express New Express SKU for Visual Studio 2010 Supports Silverlight and XNA development Full device debugging support

Windows Phone 7 Series Emulator Supports full application development Reduces costs of test and development Emulator, not a simulator

XNA Project System  C# is the only language for XNA development for Windows Phone 7 Series  All code files are organized into.csproj project files .csproj is an MSBuild-based project system

XNA Content Pipeline Simplify Your Content Usage! Provides build-time modification of source content Customizable, extensible Runs only on Windows Full.NET support p/invoke Managed C++, VB.Net, IronPython, and so on

Content Pipeline Project Changes  Makes for easier parallel development of art and code  Content pipeline is extremely extensible, so integration with existing tools is possible  Content projects no longer appear as child projects of the game project

There are lots of great tools out there, both free and commercial These are my “must-have” tools

Explore, browse, and analyze.NET assemblies Understand relationships between classes Verify code obfuscation.NET Reflector

MSIL disassembler Useful for seeing what code is being generated at build time ildasm

Also known as F1 profiler Performs code performance profiling, using sampling or instrumentation Visual Studio Team System Profiler

Sampling vs. Instrumentation  Sampling takes samples at regular intervals  Generally better for initial investigation  Instrumentation inserts probes into the code  Use for more targeted profiling

Profiles managed memory usage Invaluable for debugging game memory management CLR Profiler

Pix for Windows Graphics debugger GPU performance investigation Semi-transparent view into DirectX 3D Shader debugging Ships with DX SDK

FxCop Static code analysis tool Integrated into Visual Studio Analyzes compiled code Not all rules will likely apply to games

Code Obfuscation  All un-obfuscated code is open source  Dotfuscator Community Edition bundled with Visual Studio

Obfuscation

Wait a Minute!  Most of those tools are Windows tools  I’m developing a game for Windows Phone 7 Series!  How do those tools apply to development for Windows Phone 7 Series?

Debugging NetCF Titles Cross-Platform Solution Develop on Windows Profile on Windows Deploy to Device

Getting Info from the Device  Roll your own on-device tools  Visual information, from the game  Check out Ito’s debugging toolset

Timing on the Phone  No high-precision timer  ≈ 1 ms resolution  How do you get accurate timings from that?  Capture multiple frames of data and calculate an average  Multiple 0 or 1 values, averaged over a bunch of frames, gives you a pretty accurate result  FPS component from Shawn Hargreaves

Heightmap Collision Sample

Build and Run on Windows  Frame rate is good  Iteration time is wonderful  Life is good, ship it™!

But Then We Run on a NetCF Device  Frame rate is poor  Gameplay is affected by unpredictable stalls  What’s going on?  Most likely cause: Garbage collections

Sidebar: NetCF Garbage Collector  Mark and Sweep  Not generational  Halts all managed threads on the device

We’re Allocating During Gameplay?!?  Let’s figure out where  Run the game on PC, under CLR Profiler

CLR Profiler

Kill the Collector!  Remove allocations during gameplay  Pre-allocate  Be careful of hidden allocators  How could this be easier?  Run it again on the device, and we get constant frame rate

Constant FPS != Good FPS  Constant + Low == still bad  Fire up the VSTS profiler, and figure out where we’re spending our time

VSTS Profiler

Sidebar: NetCF Jitter  Non-optimizing jitter  Primarily designed for application development  Apps bound by I/O, not by CPU/GPU  High latency toleration  No inlining

There’s the Culprit!  Make changes to fix the code  Run on the device again  FPS is good, ship it™!

Wrapping It Up  Use Windows to your advantage  Keep your game running on the target platform  Design with the target platform in mind

Additional Resources      CLR Profiler download page CLR Profiler download page  Ito's debugging tools Ito's debugging tools