Build a 2D Top Down Game - Part 9 - Publishing

Hi Everybody,

I'll eventually move all of the articles over from my website, but for now I am bringing over only a few articles and especially the ones with the links.  To find the alternate version of this post, go here:

Welcome to part 9!  I can’t believe we are here already.  Up to this point you should have a fully functioning basic game!  You should have spiders being generated on a timer along with a way to destroy the spider webs, when enough webs are destroyed you should load the next level or the win level.  When you take too much damage, you should be respawned at the start of the level.

In this article, we are going to cover publishing to Windows Store 8 and Windows Phone 8 Store!

If you need to reference any of the previous parts for any reason, they  can be found below:

Part 1:  Getting Started

Part 2: Animations

Part 3: Prefabs

Part 4: Enemies

Part 5: Modular Scripting

Part 6: Timed Prefab Instantiation

Part 7: Health Bars

Part 8: Finishing Touches

Part 9: Publishing


30,000 foot view

  • Switch platform in Unity
  • Set player settings (images, icons, etc)
  • Build from Unity which creates a Visual Studio solution
  • Open solution in Visual Studio
  • Test the project and deploy to devices or local system
  • Upload to the Windows Store and Windows Phone Store

Switch Platform to Target Platform (Windows 8 and Windows Phone 8)

  • Select Windows Store
  • Select Switch Platform
  • Select SDK as 8.0
  • Select Player Preferences to explore those settings (these can all be set later in visual studio)
  • Click Build
  • Create a new folder in you structure called “BuildOutput”
  • Create a new folder in “BuildOutput” called “WindowsStore8″
  • Create a new folder in “BuildOutput” called “WindowsStore8.1″
  • Select “WindowsStore8″ as your folder
  • Click build.
  • Go back to your platform and set the SDK as 8.1
  • Select “WindowsStore8.1″ as your folder
  • Click build
  • Repeat the process for WindowsPhone



Open and Test with Visual Studio

  • Navigate to each build output folder
  • Double click the .sln file
  • buildoutput
  • This will open the solution in Visual Studio
  • From here if you need to, you can perform any Native Platform to Unity Interop.
  • Test on each device,
  • For windows phone, see how to test with this article.
  • For windows 8 local, just use the f5 key.
  • For windows 8 remote devices, see this article for installing remote debugging tools.

Set up required assets and declarations

  • For Windows 8, open the appxmanifest file.
  • Ensure you have the following assets:
  • RequiredAssets
  • Switch out all of the provided assets with these assets.  This will be your branding and logos for your game once it is installed.
  • Also, make sure if you are using networking or other features such as file pickers, you make those declarations from within the declarations section.

Create and Test your App Packages

  • First create your app packages. (Project -> Store -> Create App Packages)
  • createPackages
  • Test with the WACK kit (Windows App Certification Kit)
  • wackKit
  • This can take a variable amount of time, just make sure you don’t touch your computer once this starts.  Also it might help to turn off background applications.  This test will do all sorts of things to your application and requires accurate timings.




Submit your Game to the Store


App Name

For your app name, this reservation can last up to 1 year.  This is your primary branding.

Selling Details

What is your cost structure for your game, is there a trial version etc.


Do you use Azure Push Notifications?  Do you have in-app purchases?  Make those declarations here.

Age Rating and Certifications

This is an area that usually causes a lot of greif.  Basically if you want to get your game out ASAP what you want to do first is to set your age rating to 12+ and deploy to just the U.S.  After that gets out the door you will want to add every other country except: Korea, South Africa, Brazil, Taiwan and Russia.  These 5 countries require additional certifications.  Once you clear these first requirements, then you can start adding new countries.  Also note that if your game is in fact 18+, set it to that and also do not deploy to Germany.

On this note, make sure you consider the content of your game.  We have actually had scenarios where a group submitted a game with a Flaming Buddha as the main character to be deployed to China.  This did not fly well with China.  Remember the various cultures of where you are deploying to and be sensitive to those as if you are not, you will not be able to deploy there.  I discover most of these fine tuned cultural differences through actual deployment.  You can select to go through certification and deploy at a separate time if you so wish to test your cultural concerns for each market.


Are you using cryptography.  I never use this section personally, so have at it :).


This is where you upload your appxupload files.  These files are found inside your build output folder.  Below is an image capture of what they look like:


Select both.


This is where you get to pitch your game.  You have 7,000 words.  Some tips for this are to make any mentions to features you do or do not support, a good pitch on your game etc.  Make sure you are honest here.  I released Skeleton Dude (which is not a good game), but you can see my reviews are all 5 stars because my description is honest.  Another good story here is there is a game called “Catch the Bear Princess”.  This game has thousands of downloads and 5 stars because it has a really elegant 7,000 word back story, even though the game itself is very simple.

Notes to Testers

At the end of the day, your game will actually be played by a real human being.  Make sure you provide some instructions for them.  How to win, how to lose, what are the controls, what is the purpose of the game.  These notes can greatly expedite your certification process.


Click submit and wait.  The current SLA as of this writing is 1 week to pass or fail your game.  Just check up on your dashboard for progress.  If you fail, give a few days for the detail report to come through and make sure you drill through to find out exactly what you failed for and why.  The testers usually include screen shots and other debug information.  Several groups I have worked with discovered all sorts of things through this process such as memory leaks, non support for scaled down devices etc.  Fix those problems (hint: or your description and notes to testers) and resubmit.

Additional Notes

My game won’t deploy locally!

This is probably because you have a normal desktop like the rest of the world.  In the alphabet, A comes way before X, so when Unity does a build for a platform, it automatically targets ARM, not x86.  Most likely you can resolve this problem by going to the properties of your project (right click your project file and then go to properties).  Once there, navigate to configuration and change your master from ARM to x86.

My Game won’t build or acts funny!

Again this is probably another configuration problem.  Some students I work with think x64 is the best thing since sliced  bread, unfortunately it doesn’t work with Unity or x86 systems, while x86 works both ways.  Since x64 is not supported by Unity, you can get funky behavior if this is set.  Go and make sure your configuration is either x86 or ARM.

Touch Support

Now I know many of you don’t want to worry about touch yet, but you really should support it from the beginning.  There are literally 100′s of millions of touch devices out in the world.  Supporting touch really should be a requirement.  You will reach a significantly larger market by supporting touch.  To learn how to implement touch so you can reach those devices, see the following two articles:  Getting Started3D Touch Input.


WOW!  This was the last article for the zero to published series.  In this series we have covered everything it takes to build a top down 2D game and publish it to windows.

What Next?

Download the full version of the dungeon assets maybe and start using the skills you learned in this series to do dungeon navigation, interact with more interesting enemies, add story lines etc.  learn particle effects and create spells!  Welcome to the world of video game development.  Don’t forget that if you are reading my article series to check out my promotions tab and look for the latest promotions I am running that you can possibly win some great devices.