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!
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
There are three great plugin and Unity3d Asset available today
Check the release notes page for up to the minute information about each release.
Microsoft Store Plugin
The Microsoft Store Plugin lets you offer your app as a free trial and sell in app purchases. Get full access to the available license information for your app and all of your products. Includes Windows 8 and Windows 8.1 support. This plugin requires Unity 4.5+.Download Now
Metro Essentials Plugin
There is something here for everyone. The Metro Essentials Plugin exposes RoamingSettings (similar to Apples iCloud), live tiles, toasts, the settings charm, the share charm and snap events. All the goodies you need to metro-ize your game are here! This plugin requires Unity 4.5+.Download Now
Social Networking Plugin (Twitter and Facebook) $75
Let word of mouth sell your game for you with this plugin! Post high score updates and achievements to the biggest social networking sites out there with just a couple lines of code. It's all here. For those who want to dig deeper into the Graph API with it's wealth of information, we support that too. Twitter integration includes all the usual suspects including posting updates, getting a users followers and full access to the entire Twitter API! This plugin requires Unity 4.5+.Buy Now
Microsoft Ads Plugin
Access the Microsoft Advertising SDK to display ad banners and monetize your app. With over 15 banner variants to choose from you are guaranteed to find one that fits your game without ruining the experience for your users. This plugin requires Unity 4.5+.Download Now
Microsoft Azure Plugin
The Azure web services are a powerful way to store data. Accessing them from a Unity game has never been easier. One line of code is all it takes to store any object remotely and securely on Azure. Retriving and deleting objects is just as easy.Download Now
Flurry Analytics Plugin
Use Flurry to learn the habits of your users! Collect valuable data like which devices they're using, if your game levels have appropriate difficulty and if anyone's bothering to read your tutorial. Sprinkle calls to log events throughout your code and watch the statistics roll in! This plugin requires Unity 4.5+.
Check the release notes page for up to the minute information about each release.
The Microsoft Store Plugin lets you offer your app as a free trial and sell in app purchases. Get full access to the available license information for your app and all of your products.Download Now
Let word of mouth sell your game for you with this plugin! Post high score updates and achievements to the biggest social networking sites out there with just a couple lines of code. It's all here. For those who want to dig deeper into Facebook's Graph API with it's wealth of information, we support that too. Twitter integration includes all the usual suspects including posting updates, getting a users followers and full access to the entire Twitter API! Buy Now
AdMob Plugin $40
AdMob has finally made its way to Windows Phone 8! Create and display a banner with one line of code. Full interstitial support is also included for ultra high CPM adverts. This plugin requires Unity 4.5+. Buy Now
Access the Microsoft Advertising SDK to display ad banners and monetize your app. Monetize your free apps with Microsofts high CPM ad banner solution today! This plugin requires Unity 4.5+. Download Now
Windows Phone Essentials Plugin
There is something here for everyone. The Windows Phone Essentials Plugin exposes live tiles and push notifications to Unity. A host of Windows Phone sharing tasks are also exposed including the SMS composer, email composer, web browser, link sharing, status update sharing, rate this app, photo chooser and more! All the goodies you need to metro-ize your game are here! Download Now
Flurry Analytics Plugin $45
Use Flurry to learn the habits of your users! Collect valuable data like which devices they're using, if your game levels have appropriate difficulty and if anyone's bothering to read your tutorial. Sprinkle calls to log events throughout your code and watch the statistics roll in! Buy Now
Bit Rave have extensive experience working with the Windows 8 platform capabilities, and as part of that we decided to build a library for Unity to make Windows 8 integration easier for everyone.
Azure plugins are now separate. Information can be found here: http://www.bitrave.com/azure-mobile-services-for-unity-3d/
Azure plugins are now separate. Information can be found here: http://www.bitrave.com/azure-mobile-services-for-unity-3d/
Find out just how easy it is for each of the Windows 8 capabilities.
The Azure Mobile Services plugin for Unity 3D is available open source at github. That’s the place to go if you want to contribute or look at the source. It’s on github here: https://github.com/bitrave/azure-mobile-services-for-unity3d . However, if you don’t care about the source, and just use it, head to github as there is an example project with built binaries in it so you can just grab it and use it.
The WinBridge is a plugin for Unity that enables easier command of native controls and features of WinRT (the underlying library behind Windows Store, Windows Phone and Xbox One apps). Currently implemented are: - Windows store (In-app-purchases, trial upgrade, receipt management, Windows store debugging) - Native message dialogs - Native and hardware-accelerated video playback This plugin is an open-source project by Microsoft developer evangelists, aiming to make porting to and development for Windows, Windows Phone and Xbox platforms easier. This plugin ships with compiled DLLs, but the full source is available at https://github.com/ProtossEngineering/WinBridge.
Windows 8 allows you to build trial functionality right into your existing app, using the LicenseInformation class. Using the methods in this class, you wrap key functionality of your app inside conditional statements. You can then decide to time-limit these features in the trial version, disable them totally, or even include advertising until the user buys the full version. This flexibility ensures you never have to write a second version of your app, or worry about in-app purchases – and your app will always be free to download from the Windows Store.
You can also simulate the current status of your app (trial or full) by using the CurrentAppSimulator class, to test how it will appear to the user.
The current license state of your app is stored as properties of the LicenseInformation class. Typically, you put the functions that depend on the license state in a conditional block, as we describe in the next step. When considering these features, make sure you can implement them in a way that will work in all license states.
Also, decide how you want to handle changes to the app's license while the app is running. Your trial app can be full-featured, but have in-app ad banners where the paid-for version doesn't. Or, your trial app can disable certain features, or display regular messages asking the user to buy it.
Think about the type of app you're making and what a good trial or expiration strategy is for it. For a trial version of a game, a good strategy is to limit the amount of game content that a user can play. For a trial version of a utility, you might consider setting an expiration date, or limiting the features that a potential buyer can use.
For most non-gaming apps, setting an expiration date works well, because users can develop a good understanding of the complete app. Here are a few common expiration scenarios and your options for handling them.
Trial license expires while the app is running
If the trial expires while your app is running, your app can:
The best practice is to display a message with a prompt for buying the app, and if the customer buys it, continue with all features enabled. If the user decides not to buy the app, close it or remind them to buy the app at regular intervals.
Trial license expires before the app is launched
If the trial expires before the user launches the app, your app won't launch. Instead, users see a dialog box that gives them the option to purchase your app from the Store.
Customer buys the app while it is running
If the customer buys your app while it is running, here are some actions your app can take.
When your app is initializing, get the LicenseInformation object for your app as shown in this example. We assume that licenseInformation is a global variable or field of type LicenseInformation.
Initialize the CurrentApp or CurrentAppSimulator to access the app's license info. Add an event handler to receive notifications when the license changes while the app is running. The app's license could change if the trial period expires or the customer buys the app through a Store, for example.
When the license change event is raised, your app must call the License API to determine if the trial status has changed. The code in this step shows how to structure your handler for this event. At this point, if a user bought the app, it is a good practice to provide feedback to the user that the licensing status has changed. You might need to ask the user to restart the app if that's how you've coded it. But make this transition as seamless and painless as possible.
Include code to determine the app's trial expiration date.
CurrentAppSimulator gets test-specific licensing info from an XML file called "WindowsStoreProxy.xml", located in <installation_folder>\Microsoft\Windows Store\ApiData. If this path and file don't exist, you must create them, either during installation or at run-time. If you try to access the CurrentAppSimulator.LicenseInformation property without WindowsStoreProxy.xml present in that specific location, you will get an error.
You can edit WindowsStoreProxy.xml to change the simulated expiration dates for your app and for its features. Test all your possible expiration and licensing configurations to make sure everything works as intended.
Be sure to explain how your app will behave during and after the free trial period so your customers won't be surprised by your app's behavior.
For more info about describing your app, see Your app's description
After you test your app with the simulated license server, and before you submit your app to a Store for certification, replace CurrentAppSimulator with CurrentApp, as shown in the next code sample.
Important Your app must use the CurrentApp object when you submit your app to a Store or it will fail certification.
Trial app and in-app purchase sample
This week I was having a discussion with Jon Wetherall from coolgamearcade.com. Jon is one of our Greenshoot teams and wanted to ask how they could target specific windows phone devices for their next title.
So in respect of Windows Phone the two options of devices are
· >1GB or higher RAM based devices
· 512MB RAM (Low memory Windows Phone 8 devices)
Building Specific optimized version for 1Gb & 512mb
You actually have the ability within the Windows Store to build a app specifically tailored for each version Windows Phone and have them displayed in the Windows Phone Store under same app name.
To achieve this you need to follow the guidance below
1. Each Store release will need the same Product ID.
a. To get the product id login to Windows Phone store http://dev.windowsphone.com
b. Click on Dashboard
c. Select the app and then click on details tab
d. Scroll down to get App ID, copy this App ID
e. Replace your product id in WMAppmanifest.xml simply open up your project solution in Visual Studio edit the WMAppManidest.xml and under the file under Packaging Tab replace the Product ID with the copied on from the dashboard.
Once you have both the builds, add these two XAPs you need to submit each to the store for certification and publishing.
The store certification team will test both the XAPs and app will be available on store.
The advantage with this approach is that you can target both low end and 1GB RAM based devices with appropriate quality of graphics content. While the disadvantage is that you will have to maintain two builds.
In this case your app customers will get the appropriate quality of graphics content based on their devices.
Optimising your app/game for support on 512mb devices
To get the maximum performance out of the 512MB RAM based device you can increase the peek memory usage cap from 150MB to 180MB by adding Functional Capability to the WMAppMainfest.xml file
Add the following tag by editing WMAppManifest.xml in Visual Studio
This increases the usage cap from 15mb to 180mb.
3: <FunctionalCapability Name="ID_FUNCCAP_EXTEND_MEM"/>
You can refer to How to modify the app manifest file for Windows Phone 8 for further information.
Supporting only 1GB devices
If your game is pretty intensive on memory you can choose to simply target >1G devices (remember this will limit your downloads as your targeting a specific set of devices which are generally premium in terms of costs to consumers)
2. To build app targeting only 1GB RAM based device, you will need to opt out low memory device
This can be achieved by forcing memory cap requirements in WMAppManifest.xml
This completely opts out of availability for lower-memory phones.
The app won’t appear in the Windows Phone Store for lower-memory phones and it can’t be installed on lower-memory phones.
7: <Requirement Name="ID_REQ_MEMORY_300" />
You can now publish the complied .XAP file to the Windows Phone Store. When users visit the store and search for your game or app it will not be visible to consumers with low memory 512MB RAM based devices.
Some Useful Links
App capabilities and hardware requirements for Windows Phone 8 http://msdn.microsoft.com/en-US/library/windows/apps/jj206936(v=vs.105).aspx
App memory limits for Windows Phone 8 http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681682(v=vs.105).aspx
Developing apps for lower-memory phones for Windows Phone 8 http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh855081(v=vs.105).aspx
The latest tool for debugging shaders now ships as a feature in Microsoft Visual Studio, called Visual Studio Graphics Debugger.
This new tool is a replacement for the PIX for Windows tool. Visual Studio Graphics Debugger has greatly improved usability, support for Windows 8 and Direct3D 11.1, and integration with traditional Visual Studio features such as call stacks and debugging windows for HLSL debugging.
For more info about this new feature, see Debugging DirectX Graphics.
Visual Studio Tool for Unity are Microsoft’s FREE Visual Studio add-on that enables a rich programming and debugging experience for working with the Unity3d gaming tools and platform.
Here are the highlights in today’s 1.9 release:
This will be continual updated so check out the changelog.
If you have any suggestion for Visual Studio Tools for Unity, please post them on UserVoice, and if you encounter any issue please report them through the Visual Studio Connect site.
Last year was amazing! we all watch Colinked (SoundSynk) from the University of Exeter pick up the top prize in the WW finals.
This year, why not finish your week watching live to see if the UK team Vanguard with Ripple - with our very own UK Microsoft Student Partner Danny Brown as the lead developer can win it again for the UK!
It will be broadcast live here at 4pm 1st August 2014 https://www.imaginecup.com/custom/index/worldfinals#?fbid=l1izHbXZVIX on Friday so lets wish the UK team the best of luck!!
For more details on this year finalist see https://www.imaginecup.com/Blog/Details/meet-the-imagine-cup-2014-world-finals-teams#?fbid=W37Oxxp64Ps
Beta3 release of Project Siena. This new release makes it even easier for business experts, business analysts and other app imagineers to create powerful custom mobile apps that are connected to enterprise services, major SaaS, and popular web and social services.
Siena Beta 3
The Beta3 release is a major addition to Project Siena’s empowerment of business experts and analysts. Key new functionality includes:
In Beta2, we introduced the concept, illustrated below, that non-programmers could consume services as easily as using an Excel function. And composing multiple services was just like linking two Excel functions.
Beta3 takes the ability to work with services to another level, where getting started with key services is now as easy as adding a PowerPoint slide layout to a deck.
Please install the latest release of Project Siena from the Windows Store, check out http://microsoft.com/ProjectSiena , watch a tutorial video, download a sample app for inspiration, and then bring your own ideas to life in a Siena