The goal of this site is to put relevant and applicable tools and information at the fingertips
With this blog we want to inform you on our latest initiatives.
Enjoy reading and stay tuned!
One of the questions I get from game developers is around debugging of a App/Game after they see reported crashes
Here is a quick guide to how to debug the crash logs from the WP8 dev center
Firstly you need to download and analysis the crash logs
Login to https://dev.windowsphone.com Click Dashboard Click Reports Select Crash Count Click Export Strack Traces This will download a .cab
If you then look up specific error numbers at https://dev.windowsphone.com/ and http://msdn.microsoft.com a specific link to Debugging on Windows Phone http://dev.windowsphone.com/en-US/OEM/docs/Debugging/Debugging_Windows_Phone
To Analyse the log
You need to save the .cab then right click and extract it.
Then double click on the mini dump file and open into VS.
They will see something similar to below.
This gives limited info because the debug symbols are missing.
The symbols are located in two places. To install all available symbols, do the following two steps:
Run the provided symbols installers from the WDK download on the Windows Connect site http://msdn.microsoft.com/en-us/library/windows/hardware/ff557573(v=vs.85).aspx.
Run setup.exe from the Windows Phone download on the Connect site. Check the desired boxes for Debugger Symbols, and click the Next button.
Add the paths of the symbols to the symbol path. For example, you can use .sympath inside the debugger to add folder locations. For more information, see Symbol path.
For a large workgroup, consider creating a symbol server. For more information, see Symbol stores and symbol servers.
You can then load them in using the links on the right.
If you don't install the symbols “Debugging with native only “ gives the limited call stack:
Marmalade is a popular C++ toolkit and gaming engine for 2D and 3D games that is used by a wide range of pro and indie developers to build games such as Lara Croft and the Guardian of Light, Godus, Vector, and Draw Something. In this hands on lab, you will learn how to create a basic game framework, add and use 3D resources, interact with objects and deploy the game to Windows Phone and Store devices.
Download the source code
Wordament is a multiplayer, original word puzzle game and is available cross platform Xbox Live title with over 1,000,000 players which was developed by two indie developers.
To help you understand the opportunity of cloud connected games we have developed a three part series on MSDN,
The series goes into all the details on how the Wordament developers made this happen, using Azure as a backend, and Xamarin to take their native C# projects to other platforms.
Part I. Anywhere, anytime, any device: Wordament’s cloud architecture Part II. Developing a cross platform app Part III. Running a business
As game developers were looking a providing the best experience across all our devices and many of you want to get results from devices which do not have Visual Studio installed.
To enable this we are now shipping a command line tool called DXcap which is a great tool for capturing and playback which is included in the Windows SDK.
If your a Visual Studio user Windows SDK comes with Visual Studio.
You can use this tool to capture frames from desktop apps, store apps, and phone apps.
Once you installed Visual Studio 2013 Update 3 RC (Download) or standalone Windows SDK (Download). You can find dxcap.exe in C:\Windows\System32 and C:\Windows\SysWOW64. Simply pass in -c and the name of the exe to capture and –p to playback the most recent captured log.
A quick example:
DXCap.exe is a command-line tool for graphics diagnostics capture and playback. It supports Direct3D 10 through Direct3D 11.2 across all feature levels.
DXCap.exe [-file filename] [-frame frames | -period periods | -manual] -c app [args...]
DXCap.exe -p [filename] [-debug | -warp | -hw] [-config] [-rawmode]
DXCap.exe –p [filename] –screenshot [-frame frames]
DXCap.exe –p [filename] –toXML [xml_filename]
DXCap.exe –v [–file filename] [-examine events] [-haltonfail | -exitonfail] [-showprogress]
DXCap.exe -e [search_string]
So to capture frame 100 from a desktop app: dxcap.exe –frame 100 -c "C:\TestProjects\MyApp.exe"
To playback: dxcap.exe -p
You can find details in DXCap's help information (Dxcap /?) or MSDN document Command-Line Capture Tool .
We are now exposing a number of options for capture which you can find by opening TOOLS->Options->Graphics Diagnostics page in Visual Studio 2013 Update 3.
Visual Studio 2013 Update 3 has made significant cnages to the shader editing experience.
One of the great new features is that ability to Edit and Apply a new shader as well as a side by side view of shader source code and compiler output.
You can access the new features by simply clicking on the shader file name in the Pipeline Stages window or the Pixel History window.
This will open the shader editor what is cool, is that the pixel shader shows both the source code and disassembly code generated by HLSL Shader Compiler.
This allows you to directly make changes in the source code, and once the tool detects differences in output, the Apply button at the will be enabled.
You simply need to click Apply to apply the changes to the current vsglog file and you can view how the changes impact the rendering result immediately, including..
1. Render Target view 2. Pipeline Stages 3. Pixel History windows
Some additional great resources/features
The source code which you edit will be keep it in a temporary location (the path is underneath the window) and changes are only applied to the vsglog file and does not affect your original source.
Therefore you can use the vsglog file as a "playground" to try out different shader effects and view their impacts.
If your not keen on the changes or they have a detrimental impact to performance the changes can be easily reverted back to when the frame was captured by clicking the Reset button.
However if you like the changes and want to move the changes to the original source, you can use the Copy to… button which brings up a dialog where you can specify the location of the source file we should copy these changes to.
Ability to make live changes during debug
During shader debugging, you can make changes to the shader code, but the Apply button will only be enabled after debugging is stopped which is another nice feature.
With the update to Visual Studio with Update 3 there is a new experience for helping you Analyse your Graphics
Once frames are captured, in the Visual Studio Graphic Diagnostic you can analyse their performance.
To do this simply double click on any frame in the diagsession file you can also save the diagsession file in Visual Studio or save the vsglog file in VSGA for later inspections. By just clicking on the Frame# link. This will open the frame in another instance of Visual Studio 2013 named Visual Studio Graphics Analyser (VSGA).
VSGA is a customized VS environment that only contains the necessary components for analysing frames.
The huge benefit of using VSGA is it's lightweight and has a low memory footprint.
More importantly the VSGA provides within a Visual Studio IDE as is a highly focused environment for analysing frames. You also have access to all the familiar features including..
1. Event List 2. Pixel History 3. Pipeline Stage 4. Objects 5. Event Call Stack 6. Debugging shader code.
You can also configure how VSGA looks so it's easier to distinguish it from your regular VS IDE window by using VIEW->Options page in VSGA.
For example you can simply change the theme as in the screenshot below where the VSGA window is using the dark theme while Visual Studio is using the light theme.
Visual Studio 2013 Update 3 RC (Download)
Visual Studio 2013 Update 3 RC (Download)isual Studio Graphics Analyzer IDE is a new feature of Visual Studio 2013 update 3 which is a dedicated space for analyzing graphics frames
With the updates to Visual Studio 2013 the Graphics Diagnostics tool is now running in the Performance and Diagnostics hub to provide a consistent view with other diagnostics tools you might be familiar with such as CPU Usage and Memory Usage.
To access the Graphics Diagnostics tool you need to select the DEBUG menu
Debug -> Graphics menu.
In the upper part of the session file, there is one swimlane for Frame time and another one for FPS which would give you an idea of how fast your app is running.
You can set a threshold value (Red Line in Screenshot below) which you can configure in the dropdown for each swimlane.
The default threshold value is 60 FPS.
VSGD is a new is a tool to help diagnose graphics rendering and performance issues in DirectX apps which has been made available with Visual Studio 2013 Update 3 RC (Download)
So where do you find VSGD
VSGD is a new option under the DEBUG->Graphics->Start Diagnostics menu or you can quick access the feature by pressing Alt+F5 on the current solution or an exe in VS.
More details on VSGD
A must read for Graphics Enthusiast is Graphics Diagnostics Overview this provides a high level summary of what's new in VSGD in VS 2013 Update 3 RC but here a quick list of new features.
1. New Visual Studio Graphics Analyzer IDE: A dedicated space for analyzing graphics frames
2. Shader Edit and Apply: View the impact of shader code changes in a captured log without re-running the app
If you prefer to watch these features in action, check out the latest Channel9 video I will also be doing some additional blogs about the Visual Studio Graphics Analyser and Visual Studio PixelShader
Universal Apps are the new way to develop Windows Store apps. With a universal project developers are able to share code across Windows 8.1 and Windows Phone solutions. In this challenge you will learn how to create your a XAML/C# Universal app.C# is one of the most popular languages in the industry today. Its managed interface and wide variety of built-in components make developing rapid and efficient. Coupled with XAML, a powerful mark-up language, you can build a great game with very little code! Wordament, from Microsoft Studios is built entirely on-top of C# and XAML!
Try it out
Based on the popular Apache Cordova open source project for hybrid apps development, the extension integrates all the tools you need to extend your reach and build, test and deploy your apps to all major mobile platforms.
In this lab, you will create a simple Hybrid app and test it on multiple platforms to discover how easy it is!
If you’re building a game, one of the main decisions you will have to make is how you’ll monetize your app. With the Freemium economic strategy continuing to grow, a simple way to make some money is to display ads in your application. You can display ads in your Windows 8.1 app using the Microsoft Advertising SDK for Windows 8.1. Get started by integrating the Microsoft Advertising SDK for Windows 8.1 from within Visual Studio 2013, design ads into your apps, and stay up-to-date with the latest developments. For more information, you can visit this site. Roughly 50% of the revenue brought in on the Windows platform is through the Microsoft Ads SDK!
The goal of this challenge is to create a small game using a 3D framework called Babylon.js (and Cannon.js for the physics code).
Try it out
Unity is a game development ecosystem: a powerful rendering engine fully integrated with a complete set of intuitive tools and rapid workflows to create interactive 3D and 2D content; easy multiplatform publishing; thousands of quality, ready-made assets in the Asset Store and a knowledge-sharing community.
Corona Labs has a very simple but powerful cross-platform Game Engine – the Corona SDK. The Corona SDK exposes a Lua interface for developers to use but under the covers it is a C++ engines that can take advantage of native capabilities of multiple platforms. Built-in to Corona are extensive libraries which support a large array of features. Using these APIs and the Lua scripting, developers can use very few lines of code to do complex tasks such as apply physics, load images and even apply sounds. This frees up game developers to focus on implementing their ideas, now how to interact with different graphics engines or even different device form-factors.
Leadbolt is an award winning mobile app discovery, advertising and monetization network focused on delivering innovative solutions for Windows Phone 8, iOS and Android app developers and now for Windows Store apps.
Cocos2D-X is a popular open source C++ mobile gaming engine adopted by 400,000+ developers to build games such as Castle Clash or other top mobile games. In this hands-on lab, you will learn how to add resources to your game, use those resources in the game, and manage object interactions.
CMake is a cross-platform project files generator that enables re-use of shared C++ code across multiple IDEs or project systems. CMake has made cross platform app development much easier.
An early build of CMake that allows you to target your cross-platform code for Windows Store and Windows Phone apps is available on Codeplex here. We are working with Kitware and the CMake community to incorporate feedback and integrate it soon in the public CMake repository.
In this hands-on lab, you will learn how to add touch support to your application using openFramework on WinRT. Following the exercises, you will create a sample application that uses openFramework to respond a touch event and then modify it to respond to multi-touch events.
In this hands-on lab, you will learn how to bind XAML controls so that data is passed from one control to another. You will build on this knowledge to learn how to implement a bindable class that allows you bind an openFramework object to a XAML control.
HTML5 is a very flexible and powerful language that’s continuing to grow in popularity with Game Developers. Part of the reason of the increased interested is the cross-platform ability of the language and the ease in which you can port your game! In this Quick-Start Challenge, we will walk you through how easy it is to port an existing web app to a Windows Store and Windows Phone game.
DirectX on Windows is a suite of technologies to build extremely high performance 3D and 2D games and multimedia applications. In this challenge, you will be implementing a few simple 3D scenarios with DirectX.
Project Spark is the ultimate interactive digital playground for gamers of all ages, delivered as a free digital download with many options for enhancing your creative experience. It’s a powerful, yet simple way to build and play your own worlds, stories, and games. Share all of your creations to a dynamic community, and play what the community makes. “Project Spark” brings creation to life and presents endless opportunities for play.
Find inspiration in creations developed by a global community. Download, play, and even remix games to add new ideas. Enter Crossroads, where players create new games by making simple choices to build their own custom adventures, and then modify them to make them their own. Engage online with a global community of content creators and players, where players can share ideas, and create new ones.
Apache Cordova is an open source platform for mobile cross platform development based on Web technologies. It allows to build an application with HTML5, JS and CSS that is wrapped in native apps to be deployed on mobile platforms (iOS, Android, Windows Phone, Windows Store,&ellipsis;).
Apache Cordova support both Windows Phone 8 and Windows 8. This lab will introduce you to the two main ways of building Cordova apps targeting Windows devices
Microsoft Open Technologies WebSQL and contact plugins for Apache Cordova and PhoneGap
In this hands-on lab, you will learn how to build an Apache Cordova app that will store data in a local database running the same code on Android, iOS, Windows Phone 8 or Windows 8. You will also learn how to use the contacts plugin giving you access to the device’s contacts list in the same way across platforms thanksOpenCV on WPhone Applications to Cordova.
WinJS + Cordova introduction
WinJS also provides styling features in the form of CSS styles and classes that you can use or override.
Initially developed for Windows Web Apps, WinJS has been open sourced by MS Open Tech and can now be used to build Websites.
You can learn more on the open sourcing of WinJS and what you can do with it reading http://aka.ms/winjsopensource, visiting the http://buildwinjs.com and trying things out on http://try.buildwinjs.com
In this lab, you will try out WinJS to build a simple Apache Cordova app that has advanced graphical controls.
OpenCV on Windows Phone Applications
In this hands-on lab, you will learn how to use OpenCV on Windows Phone. In fact you will use an Interop object between C# and C++. C++ for opencv and C# for the windows phone 8.0 project (there is not C++ project on 8.0, only on 8.1)
With this interop component you’ll display the camera frames and applied some opencv filters. In the second part of the lab you’ll modify the interop object itself to enabled a new opencv feature. http://opencv.org/
Python and MongoLab (MongoDB in the Cloud)
In this hands-on lab, you will learn how to create a MongoDB database on Microsoft Azure, as well as adding records to the database and reading the records using PyMongo.
PyMongo is a Python distribution containing tools for working with MongoDB.
Redis on Windows
In this hands-on lab, you will learn how to install Redis on Windows and how to access Redis from a Python script running on Windows, through use of the redis-py module. (Redis-py is a popular Python interface to Redis.) You will write a script that displays a pattern of text on the screen and publishes that pattern to a Redis channel. You will then write a second script that “listens” on the same Redis channel and prints received messages on the screen.
Using Kinect v2 sensor with openFrameworks in WinRT applications
In this hands-on lab, you will learn how to use the Kinect sensor v2 in an openFramework application running on Windows 8. We use an openFramework version available on GitHub, in MSOpenTech repositories
You will build on this knowledge to learn how to implement a C++ modern class that allows you use the Kinect v2 WinRT object.
You will learn how to transpose the sensor data (pixel, depth, Body) into openFrameworks graphic classes.
Ahead of the consumer launch, Windows Phone 8.1 Update has begun rolling out to developers through the Windows Phone Preview Program for Developers.
Phone developers will also receive an updated Windows Phone 8.1 emulator package. The update includes consumer VPN support, Bluetooth connectivity improvements, and Store app live tiles support and Live Folders to help developers get their apps discovered, installed and launched more often.
The update contains no new developer APIs. For more details on Windows Platform Developer August Updates see http://bit.ly/1o6Lm8h