Today was my last day at Microsoft

October 31st, 2013 2 comments

Today was my last day at Microsoft. It was a great 8-year run. My job as a Technical Evangelist had me traveling all over to meet with software developers to help them understand how to build great software solutions on the Microsoft platform, or to listen to their feedback about Microsoft’s products and relay that back to the product teams. I met some amazing people along the way and made countless new friends. It was the greatest job ever! I was always very proud to say I work at Microsoft. Fortunately, I was presented with an opportunity that I couldn’t pass up.

As a really good friend shared with me, “I’m kind of tired of always talking about it, I want to go back to doing it.” That statement hit me like a ton of bricks. I decided it was time to go back and do it!

Tomorrow I start a new journey as the CTO of KeyLimeTie. I will be working with the talented folks at KeyLimeTie to build bleeding-edge web and mobile applications. In addition, I’ll be helping drive the engineering efforts for MojoBistro. MojoBistro is a self-service app production tool for Restaurants to actively engage with their loyal customers and extend their reach into the Social web.

The last 8-years was a tremendous learning experience for me. If you are contemplating an opportunity to go work for Microsoft – do it! You will have the chance of a lifetime to work alongside hard-working, super-smart, talented people.  There’s so much to learn and experience with a company like Microsoft. You owe it to yourself to give it a shot.

I do truly believe Microsoft is on an upward trajectory and I will be rooting on their success from the sidelines. 

Good luck to you all!

Categories: Announcements, Personal

Find Windows 8 Apps with App Enthusiasts

September 30th, 2013 No comments

imageAre you a developer yearning for ideas and inspiration for an app to build for Windows 8? Do you want to download, test, and review apps written by your peers? If you so, you need to download App Enthusiasts for Windows 8!

App Enthusiasts is a curated collection of Apps, updated monthly, that showcases the talents of Students, Developers and Companies in your area. It can filter apps by region, country, state and even City! App Enthusiasts can also keep track of the apps you’ve seen across devices!

App Enthusiasts is a tool our team uses to help promote some of the developers we work with on a day to day basis. It’s an opportunity for us to highlight the work your peers are doing while at the same time getting their apps in front of everyone in the hopes that you will download and review their apps.

Screen shot 1

The showcase apps change monthly. This provides a great way to learn about new apps your peers are submitting to the store, so be sure to check App Enthusiasts often. If you would like to have your app highlighted in App Enthusiasts, please submit your nomination to

The Windows 8 Developer community is only as strong as its members. Please help one another. Download each other’s apps. Provide detailed and helpful feedback. Motivate each other to do great work. Be an inspiration to one another.

Categories: Windows 8

Creating a Unity Game for Windows 8

August 30th, 2013 4 comments

UnityWindowsThe recent release of Unity 4.2 brings with it full-support for deploying Unity games to both Windows 8 and Windows Phone. Unity 4.2 is a powerful game development tool that comes in a free version and a Pro edition. The great news that comes along with the release of 4.2 is the ability to deploy your games to the Windows Store and Windows Phone Store free of charge! The Unity Windows Store Add-on is included in both the free version of Unity and Unity Pro.

To celebrate this announcement, Unity and Microsoft have teamed up to sponsor a Windows Build Competition with over $100,000 in prizes!!!

To get you well on your way to potentially winning a piece of that $100,000 prize pool, I’m going to walk you through the steps to build a Unity game for Windows 8.

Sign up with App Builder for access to additional resources, training and help building your Windows 8 game.


Let’s start simple

The purpose of this article is show you the steps to build your game for Windows 8. Not how to build the next Temple Run 2 – unfortunately. With that in mind, let’s start simple.

First download and install Unity. Unity comes in a free version and a Pro edition. The Pro edition provides more advanced game development capabilities. However, you can create some amazing games with the free version and I know several people who have done just that.

Once Unity is installed, open Unity and select File | New Project. Select a project location and choose not to import any packages at this time.


You should now have a blank canvas to create your masterpiece. Fortunately for us, our masterpiece shouldn’t take us longer than 10 minutes to create.


In the Hierarchy window, select the Create dropdown and select Cube.



In the Inspector window, change the Scale and Rotation values to the following:


Your cube should look like the following. Slightly bigger than the default, turned to the left and tilted downwards.


If you click on the Game tab, you can see what your Cube will look like during runtime. Unfortunately, it’s a little dull and a little dark. Let’s add some lighting. In the Hierarchy window, select Create | Directional Light.



It doesn’t matter where the directional light is placed, what does matter is the angle it’s “shining” at. The Directional Light gives you the effect of a light shining from above at a specific angle that will highlight and generate shadows on the objects below.


You can switch to the Game window to see how your cube looks or even click the play button to see what your Cube looks like when your game is running. Although our cube is lit nice, its still pretty boring. Let’s add some animation to our cube.

To add an animation effect, we need to write some code. Unity supports your custom code to be written in JavaScript, Boo, or C#. At this time, JavaScript and Boo scripts won’t pass the Windows 8 Store certification. In addition, you can’t access C# classes from JavaScript and Boo, but you should be able to access JavaScript and Boo from C#. With all of that in mind, we’ll select C# as our script language of choice.

To create the C# script, select your Cube object in the Hierarchy window, and in the Inspector window, scroll all the way down and click the Add Component button and select New Script. Feel free to change the name of the script but be sure to select CSharp as the language. Click Create and Add. The will create a new Script object and place it in your Assets folder in the Project window. Also, with the Cube object selected in your Hierarchy window, you should see the script attached (checked) in the Inspector window.


To edit the script, you can double-click the script in your Assets folder (in the Project window) or double-click the script name in the Inspector window. The Update() method is called for every ‘Tick’ of game time. Essentially for every frame of your game.  In the Update() method, use the transform.Rotate() method to apply our animation.


You can control the speed of rotation through the multiplication value. The larger the value, the faster the rotation.

Save the script and switch back to Unity. To test your work of art, click the Play button. Congratulations, you have a spinning cube!


Click the play button again to stop the game from running. It’s important to stop before making any more changes to your project.

If you’re really adventurous, we could add a little more pizazz to our cube. In the Project window, right-click the Assets folder and select Import Package | Particles.


In the Importing Package window, leave everything selected and click the Import button. In the Project window, open the Smoke folder (Assets/Standard Assets/Particles/Smoke). Drag and drop Fluffy smoke onto the Cube in the Hierarchy window. Now, navigate to the Fire folder in the Project window and drag and drop Flame onto the Cube in the Hierarchy window.

Now when you press Play you should see a SPINNING CUBE OF FIRE!!!


Click the Play button to stop your – SPINNING CUBE OF FIRE! – and return back to the Unity editor. At this point, save your changes by selecting File | Save Scene (or CTRL-S). Now we’re ready to deploy our game to Windows 8.

Building for Windows 8

Open the File menu and select Build Settings. With Unity 4.2, we now have the ability to export our games to Windows 8 and Windows Phone. In the Build Settings windows, select Windows Store Apps and click the Switch Platform button. If your Scene isn’t already listed in the Scenes In Build list, click Add Current button.

Unity has the ability export your game into the following Visual Studio project types:

  • Direct 3D/C++
  • Direct 3D/C#
  • XAML/C++
  • XAML/C#

Which type you export to is more of a personal choice. Choosing XAML does add a slight performance hit to your game, but it does give you the capability to take advantage of rich UI and GUI elements for your game as well as easily take advantage of handling some Windows 8 scenarios such as Extended Splash Screens and Snapped View.

For our purposes, we’re going to select XAML/C# as our build type.


Unity gives us the capability to define the required Artwork for a Windows 8 app. Click on Player Settings… in the Build Settings dialog. In the Inspector window, you can specify elements such as Logo, Wide logo, Small logo, Splash screen, etc. If your game requires additional capabilities such as Internet Client connectivity or Location, you can specify these in the Player Settings as well. These settings are translated over to the Visual Studio project’s package manifest file (Package.appxmanifest).



Once you’ve completed setting your Player Settings and you’re ready to build your game, open the Build Settings window again (File | Build Settings), verify your scene is listed and the XAML/C# type is selected, and click the Build button.

If this is the first time you are building your game, Unity will prompt you for a build location. For my project, I created a ‘Export/Win8’ folder structure in my Unity project directory and selected the ‘Win8’ folder as my build directory.

Once the build is complete, open the generated solution file (.SLN) in Visual Studio.


If you’re a Windows 8 C# developer, this solution should look very familiar. Your Unity game and all of its assets are compiled and stored in the Data folder. Everything else is the Windows 8 application code that will host the Unity game. This structure preserves your Windows 8 application specific code from any changes made in Unity. When you make changes to your Unity game and re-export the build, those changes will only overwrite the contents in the Data folder. Everything else is preserved.

A Look Inside the Code

If you open the App.Xaml.cs file, you can examine how the Unity player is integrated into this XAML/C# application.

At the beginning of the App class declaration, there are two class variables declared:

private WinRTBridge.WinRTBridge _bridge;
private AppCallbacks appCallbacks;

WinRTBridge is a Unity internal-only class that provides Unity the integration between the managed and unmanaged world. It is not intended to be used by developers.

AppCallbacks is a very important class. This class provides the developer’s bridge between the Windows 8 application and your Unity game. The AppCallbacks class is used to initialize your Unity game at start-up time as well as handle events between the Windows 8 application and your Unity game. More details can be found in the Documentation for AppCallbacks.

In the MainPage.xaml file, the Unity player is hosted in a SwapChainBackgroundPanel control. This controlled is initialized and loaded in the OnLaunched() event defined in App.xaml.cs.

Other than those custom elements required by Unity, this is just a standard XAML Windows 8 application. The Unity documentation does contain several samples on how to integrate your Unity game with your Windows 8 application. Included in those samples, is the XAMLUnityConnectionV4 sample that shows how to integrate event-handling between Unity and your Windows application. This is necessary to handle events such as the user switching your game to snapped view as well as any GUI related events triggered by XAML that need to be sent to Unity. Another sample worth noting is the MetroSettingsMenuV1 sample that shows how to integrate the use of the Settings menu in Windows 8 with your Unity game.

At this point, you can test your game as a Windows 8 app by clicking the Run button (or hitting F5) in Visual Studio.

Note: Your app may fail deployment because of…

Error: DEP0700: Registration of the app failed. Windows cannot install package MyWindows8Game because the package requires architecture ARM, but this computer has architecture x64 (0x80073cf3).

The Unity exported project contains a build configuration definition for ARM, x64 and x86. Your most likely not developing on an ARM based machine, therefore you need to change the current building configuration to test your game on your development machine. To do this, open the Build menu in Visual Studio and select Configuration Manager. In the Configuration Manager window, select appropriate architecture under Active solution platform.


Close the Configuration Manager window and re-run your application by clicking the Run button (or F5).


Congratulations! You’ve built a Unity game for Windows 8!

Here is my completed project in-case you missed a step along the way:


Bringing it Home

There are some additional elements you’ll need to be aware of to get your Unity game through the Windows Store certification process. Much of this guidance is available from the Building Windows Games with Unity event held last spring. Here experts from Unity and Microsoft share insight, guidance and lessons learned to bring your Unity games to Windows 8 and Windows Phone.

Jodon Karlik, of CodingJar, has an invaluable session on the lessons he learned when building Fling Theory for the Windows Store. These lessons include implementing an Extended Splash Screen, conditional compiling, Ad integration and handling snapped view. Also recommended is the session from Vladimir Kolesnikov on Differentiate: Integrate your game with Windows 8 Platform Features, which delves into topics such as contracts, notifications and live title integration. Also, be sure to read through the Windows Store and Windows Phone sections of the Unity documentation for all the latest in support and capabilities.

The last step is to package up your game using Visual Studio and to follow the publishing guidance.

The time is right for success in the Windows 8 Store. Unity provides every budding and professional game developer the high quality tools to build amazing games. With the latest release of Unity 4.2 you now have the power to bring those games to the Windows Store and Windows Phone Store.

ANN: Upcoming Developer Events – Fall 2013

August 23rd, 2013 No comments

My team has just put the final touches on a series of events covering everything from development to monetization that will help you become a serious app developer and entrepreneur. All the dates and registrations links for each of the following events are posted up on the Event Calendar.

Build 2013 Highlights – The Best of Build!

Were you unable to attend Build 2013 and hear about the latest Microsoft product announcements for software developers? Never fear! In this session, we will give you the best of Build, covering the major announcements and technology innovations you need to know as a developer. We will show code and demos to get you up to speed on the latest with Windows 8.1, XAML, WinJS, Bing, Windows Azure, and Visual Studio.


Monetization of Real-World Windows Apps

Often, as developers, we think of our pet software projects as a hobby. As it turns out, we have one of the most profitable hobbies in the history of hobbies! Billions of dollars have already been made by developers just like you that built an app for a mobile platform, and monetized it effectively. In this one-day event, we will share with you some modest and extreme success stories, some strategies for making money from your apps, and some technical instruction on exactly how to make that happen in your code. We will also demonstrate how easy it is to build one unified codebase that can used on Windows 8, Windows 8.1, and Windows Phone.

Windows 8 + Windows Phone: Better Together

Trying to wrap your head around app development across multiple platforms? Trying to capitalize on the opportunities in both the Windows 8 and Windows Phone 8 marketplaces? Want to maximize your design and development resources and get to market better, faster, and stronger? Then come to this session and learn some real world techniques to maximize your efficiency of developing for both Windows 8 and Windows Phone 8. See how you can minimize your development costs by maximizing sharing and reuse between the two platforms.


Hands-on Labs: Windows 8 & Windows Phone

Build your first Windows 8 apps with an accompanying app on Windows Phone! We will start from scratch to create a Windows 8 app that is powered by the cloud AND includes a Windows Phone version too!

Categories: Announcements, training

Indie Game Development on Xbox retools with ID@Xbox

August 20th, 2013 No comments

I’ve become a huge fan of the Indie Game developer community in the past few years. I am blown away by the creativity this community comes up with and the relentless release cycle we see with new and innovative games that come to services like Steam and the various mobile platforms.

I’m extremely excited about the news that the Xbox team announced today at Gamescom in Cologne, Germany, for the new ID@Xbox program. ID@Xbox (Independent Developers @ Xbox) is a new publishing program that allows independent game developers to self-publish games to Xbox One as well as gain access to all of the great gaming features that publisher-supported games have had access to.

Games that come through this program will be able to access the exact same features as any other large game company on Xbox One: Achievements, Gamerscore, Kinect, Xbox SmartGlass, Xbox cloud services and more. What’s also exciting is that these games will be available in the exact same marketplace (Xbox One Store) as every other game on Xbox One, making discovery for players easier by using all the curation and discovery tools that Xbox One will offer, including Spotlight, Trending, Recommendations and great social discovery with features like Game DVR and Upload.

I’ve talked to a number of independent game developers who’ve always had a sour taste with the opportunities for Independent Game Developers on Xbox in the past. It’s been a steep uphill battle for any independent game developer to land a publishing deal and get access to the full toolset that Xbox has to offer. This program brings together a level playing field for game developers at all levels. ALL GAMES ARE NOW EQUAL!

The ID@Xbox program is now open for registration.

…we can get you the tools you need to create great content on Xbox One. It starts with us providing you two Xbox One development kits, as well as access to a full suite of developer documentation, developer forums, etc.

In addition, we’re going to be developing documentation for registered ID@Xbox developers that explains some details you’ll need for console publishing, such as getting ratings, addressing geopolitical policies, etc. We’re also going to be providing some best practices for things like promotion and marketing – things that aren’t directly related to coding games, but that can have a big effect on your success. Our goal is to give you the tools your studio needs to maximize your success on Xbox One.

Right now the team is looking to add game developers who have a track record of shipping games on Console, PC, mobile or tablet. This is most likely to fine tune the program. The program does state that the long term plan is that anyone with a retail Xbox One will be able to develop, publish, and sell their game on Xbox Live.


This program looks very promising and I can’t wait to see what innovative games the indie game community brings to Xbox One.

Categories: Game Development, XBox