So You Wanna Make a Game?

WindowsCyan_Web_2There’s a new kid in town, maybe you’ve heard of him…Windows 8? Or maybe you’ve heard about his sibling, Windows RT. Maybe you’ve heard that over 60 million licenses for Windows 8 have been sold as of January, and recognize what that means in terms of a large and growing potential customer base.

Or maybe you’ve heard about the Keep the Cash offer, which provides $100 per eligible app published to either the Windows Store or the Windows Phone Store between March 8th and June 30th, 2013 (for up to $2000 per developer), and want to take advantage.

Or maybe you’re a student, and you’ve heard about the Windows 8 App Madness Challenge, in which students can receive $100 per app (up to 5) they successfully submit to the Windows Store.

However you got here, you may have the question…how do I get started? I’m here to walk you through, step-by-step.

The 30,000 Foot View

To publish an app or game in the Windows Store, you’ll need the following:

  1. A PC running Windows 8 (or a Mac with the appropriate tools to run Windows 8)
    • A copy of Visual Studio 2012 Express for Windows 8
      • A valid Windows Store account

        • (optional) Third-party game framework of choice
The first three are required, and I’ll cover them in the next section.

Prerequisites

Let’s walk through the process of getting the necessary prerequisites, step-by-step

Step 1: Get Windows 8

You can get Windows 8 in a variety of ways…pre-installed on a new PC is probably the easiest, but you can also buy a retail copy in a box, or purchase a Windows 8 upgrade and download it immediately. And students may qualify to get Windows 8 Pro for a discounted price of $69.99.

Students may also have access to Windows 8 through their school’s DreamSpark Premium account. To find out if your school participates in DreamSpark Premium, click here and click on the “More Software Through Your School” tab, then search for your school using the search box, and follow the instructions.

But if your budget won’t accommodate purchasing an upgrade at the moment, and you don’t have access via DreamSpark, you’re not out of luck. On the Downloads page for Windows Store app developers, there’s a link to the evaluation version of Windows 8. NOTE: this is a 90-day trial version which will expire and cannot be upgraded. So keep that in mind when considering using it, and make sure you back up any important data prior to the expiration.

Summary

<td valign="top" width="261">
  <strong>Students</strong>
</td>

<td valign="top" width="263">
  <strong>Eval</strong>
</td>
<td valign="top" width="261">
  <a href="https://www.dreamspark.com/Student/Default.aspx" target="_blank">Check if your school has DreamSpark Premium</a><br />or <a href="http://www.microsoftstore.com/store/msstore/pd/productID.265725200" target="_blank">buy a copy at a discount</a>
</td>

<td valign="top" width="263">
  <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200125101" target="_blank">Get a Windows 8 90-day eval</a>
</td>
Pro Devs
Get Windows 8 on a new PC
or buy online 

Step 2: Install Windows 8

Once you’ve obtained a copy of Windows 8, assuming you didn’t get it on a new PC, you’ll need to install it. There are several options for how you can install and run Windows 8, and which you choose depends on your particular circumstance:

<td valign="top" width="263">
  <strong>Full Upgrade</strong>
</td>

<td valign="top" width="263">
  <strong>Virtual Machine</strong>
</td>
<td valign="top" width="264">
  Pros: fresh start, less disk space required<br />Cons: Requires migration from old OS
</td>

<td valign="top" width="264">
  Pros: Isolated from host OS, easy to remove/restore, etc.<br />Cons: Requires additional disk space, may have performance impact, depending on virtualization software, etc.
</td>
<td valign="top" width="264">
  How-to: <br /><a href="http://www.techrepublic.com/blog/window-on-windows/transfer-a-windows-8-iso-to-a-bootable-usb-flash-drive/6672" target="_blank">Create a bootable USB drive from a Windows 8 ISO</a>
</td>

<td valign="top" width="264">
  How-to: <br /><a href="http://techathena.com/windowsos/install-windows-8-virtual-machine/" target="_blank">Install Windows 8 in a Virtual Machine</a></p> 

  <p>
    <a href="http://blogs.technet.com/b/keithmayer/archive/2013/01/14/step-by-step-building-a-free-windows-8-app-dev-lab-in-the-cloud-with-windows-azure-virtual-machines.aspx" target="_blank">Create a Cloud-based Windows 8 app lab – for free</a></td> </tr> </tbody> </table> 

    <p>
      One nice thing, for folks who haven&#8217;t installed Windows in a while…the Windows 8 installer is FAST! In fact, I decided to test how quickly I could get a virtual machine with Windows 8 and Visual Studio 2012 up and running, and I was able to go from VM creation to running my first Windows Store app project in around 35 minutes flat. And that&#8217;s on a machine with a CPU that&#8217;s several generations old (Core 2 Quad) with 6GB of RAM and the VM on a rotational HDD.
    </p>

    <p>
      NOTE FOR MAC USERS: There are likewise many options for running Windows 8 on a Mac, <a href="http://aka.ms/WindowsOnMac" target="_blank">including dual-boot with Bootcamp, or in a virtual machine using Parallels Desktop,VirtualBox, or VMWare Fusion</a>.
    </p>

    <h3>
      Step 3: Install Visual Studio 2012
    </h3>

    <p>
      This step is pretty straightforward, with the only real questions being which version you want, and where to get it.
    </p>

    <p>
      In order to develop Windows Store apps, at a minimum, you need Visual Studio 2012 Express for Windows 8, which is free (note that to use the Express edition for more than 30 days, you do need to register the product). You can also use Visual Studio 2012 Professional, Premium, or Ultimate, as well.
    </p>

    <table cellspacing="2" cellpadding="5" width="801" border="0">
      <tr>
        <td valign="top" width="265">
          <strong>Express (Free)</strong>
        </td>

        <td valign="top" width="263">
          <strong>Professional</strong>
        </td>

        <td valign="top" width="263">
          <strong>Premium / Ultimate</strong>
        </td>
      </tr>

      <tr>
        <td valign="top" width="265">
          <em>Good For</em>: <br />Students<br />Indie Devs on a budget*
        </td>

        <td valign="top" width="264">
          <em>Good For</em>:<br />Pro Devs<br />Indie Devs
        </td>

        <td valign="top" width="264">
          <em>Good For</em>:<br />Pro Devs wanting integrated ALM<br />Development Teams / Studios
        </td>
      </tr>

      <tr>
        <td valign="top" width="265">
          Get It: <br /><a href="http://www.microsoft.com/visualstudio/eng/downloads" target="_blank">Visual Studio 2012 downloads</a>
        </td>

        <td valign="top" width="264">
          Get-it:<br /><a href="http://www.microsoft.com/visualstudio/eng/downloads" target="_blank">Visual Studio 2012 downloads</a><br /><a href="http://www.microsoft.com/visualstudio/eng/buy" target="_blank">Purchase Visual Studio 2012</a>&nbsp;
        </td>

        <td valign="top" width="264">
          Get-it:<br /><a href="http://www.microsoft.com/visualstudio/eng/buy" target="_blank">Purchase Visual Studio 2012</a>
        </td>
      </tr>
    </table>

    <p>
      Installing Visual Studio is pretty straightforward. If the version you downloaded includes Setup.exe, you simply run the setup program and follow the instructions. If you download a version that&#8217;s distributed as an ISO image (file ends with .iso), you can simply copy this to your Windows 8 machine, right-click it, and select Mount, and Windows will show the contents of the ISO as a virtual drive. Once mounted, look in the root of the virtual drive for the Setup.exe file and run it. Again, just follow the instructions.
    </p>

    <h2>
      Developing a Game
    </h2>

    <p>
      Games can be developed using a variety of tools and technologies. You can write code from scratch in Visual Studio, HTML5 Canvas, C++, etc., or leverage frameworks and tools, as detailed below.
    </p>

    <h3>
      Step 4: Choose your Game Development Tool or Framework
    </h3>

    <p>
      One of the beauties of building games for the Windows Store is that there are a wealth of frameworks and tools available to build games, whether you&#8217;re an HTML geek building games on top of Canvas, a hard-core C++ dev wanting to build on top of DirectX, or just someone with a great idea for a game, but not a lot of coding experience.
    </p>

    <p>
      <a href="http://createjs.com/#!/CreateJS" target="_blank"><img data-recalc-dims="1" loading="lazy" decoding="async" title="image" border="0" alt="image" src="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-99-metablogapi/4011.image6_5F00_0D5EAABE.png?resize=286%2C50" width="286" height="50" /></a>&nbsp;<a href="http://impactjs.com/" target="_blank"><img data-recalc-dims="1" loading="lazy" decoding="async" title="image" border="0" alt="image" src="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-99-metablogapi/5706.image41_5F00_65E1FB4A.png?resize=129%2C50" width="129" align="right" height="50" /></a>&nbsp;<a href="http://www.yoyogames.com/" target="_blank"><img data-recalc-dims="1" loading="lazy" decoding="async" title="image" border="0" alt="image" src="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-99-metablogapi/1108.image_5F00_thumb_5F00_39B85348.png?resize=267%2C50" width="267" align="right" height="50" /></a>&nbsp;<a href="http://www.scirra.com/" target="_blank"><img data-recalc-dims="1" loading="lazy" decoding="async" title="image" border="0" alt="image" src="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-99-metablogapi/7220.image_5F00_thumb_5F00_01419052.png?resize=182%2C50" width="182" align="right" height="50" /></a><a href="http://gamesalad.com/" target="_blank"><img data-recalc-dims="1" loading="lazy" decoding="async" title="image" border="0" alt="image" src="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-99-metablogapi/6355.image_5F00_thumb_5F00_4C698524.png?resize=308%2C50" width="308" height="50" /></a>&nbsp;<a href="http://msdn.microsoft.com/en-US/library/windows/apps/hh452744" target="_blank"><img data-recalc-dims="1" loading="lazy" decoding="async" title="image" border="0" alt="image" src="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-99-metablogapi/7713.image_5F00_37460F5F.png?resize=207%2C50" width="207" height="50" /></a>&nbsp;<a href="http://unity3d.com/" target="_blank"><img data-recalc-dims="1" loading="lazy" decoding="async" title="image" border="0" alt="image" src="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-99-metablogapi/5824.image_5F00_1A542B14.png?resize=124%2C50" width="124" align="right" height="50" /></a>
    </p>

    <p>
      Bob Familiar, one of the managers for our east region evangelism team, has a great post outlining the many choices available for game development on Windows 8, from canvas gaming frameworks like <a href="http://createjs.com/#!/CreateJS" target="_blank">CreateJS</a> and <a href="http://impactjs.com/" target="_blank">ImpactJS</a>, which are great for writing HTML5 Canvas games, tools like YoYo Games <a href="http://www.yoyogames.com/" target="_blank">GameMaker</a>, Scirra&#8217;s <a href="http://www.scirra.com/" target="_blank">Construct 2</a>, and <a href="http://gamesalad.com/" target="_blank">GameSalad</a>, which make it easy for even non-developers to create and publish cool games, and of course the tools and languages built into Visual Studio, C# (and VB) and XAML, C++ and DirectX (along with game engines like <a href="http://epicgames.com/technology/" target="_blank">Unreal</a>), and for 3D gaming made easy, there&#8217;s <a href="http://unity3d.com/" target="_blank">Unity3D</a>.
    </p>

    <p>
      Be sure to <a href="http://blogs.msdn.com/b/bobfamiliar/archive/2012/09/04/windows-8-game-development-for-the-win.aspx" target="_blank">read Bob&#8217;s post in full</a>…there are a ton of great resources there, so I won&#8217;t steal them all.
    </p>

    <h3>
      Step 5: Publish
    </h3>

    <p>
      To get your app in the hands of Windows 8 users, you&#8217;ll need to publish it to the <a href="http://www.windowsstore.com/" target="_blank">Windows Store</a>. Here&#8217;s how:
    </p>

    <ol>
      <li>
        <a href="https://appdev.microsoft.com/StorePortals/en-us/Account/Signup/Start/" target="_blank">Create a Windows Store developer account</a> <li>
          Open the <a href="https://appdev.microsoft.com/StorePortals/en-US/Home/LoginLandingPage" target="_blank">Windows Store developer dashboard</a> (log in with your Microsoft Account, if not logged in) <li>
            Click the <a href="https://appdev.microsoft.com/StorePortals/en-US/Developer/Catalog/ReleaseAnchor" target="_blank">Submit an App link</a> (as seen below) to create a new release and reserve a name for your app<br /><a href="https://dhcontent.blob.core.windows.net/images/2015/06/StartAppSubmit_2.png"><img data-recalc-dims="1" loading="lazy" decoding="async" title="StartAppSubmit_2" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 10px 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="StartAppSubmit_2" src="https://dhcontent.blob.core.windows.net/images/2015/06/StartAppSubmit_2_thumb.png?resize=660%2C365" width="660" height="365" /></a> <li>
              Click App name to start the process, and give your app a unique name. You should plan to do this as soon as you know the name you want, to ensure that you can reserve that name. <li>
                Follow the remaining steps, up to the Packages step…each step has help if you need it. <li>
                  Package your app, using the Store menu in Visual Studio 2012 for Windows 8 (in the Express edition, you&#8217;ll find the store menu as a top-level menu, and in Pro and higher editions, you&#8217;ll find it as a submenu of the Project menu, as shown below), by clicking Create App Packages…<br /><a href="https://dhcontent.blob.core.windows.net/images/2015/06/StoreMenu_2.png"><img data-recalc-dims="1" loading="lazy" decoding="async" title="StoreMenu_2" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 10px 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="StoreMenu_2" src="https://dhcontent.blob.core.windows.net/images/2015/06/StoreMenu_2_thumb.png?resize=660%2C385" width="660" height="385" /></a> <li>
                    As a part of the step-by-step process for creating the package for the store, you&#8217;ll be prompted to run the Windows App Certification Kit (WACK), as shown below. DO NOT SKIP THIS STEP! The certification kit is a great way to find issues with your app before you submit it, from performance and startup issues, to other things that will cause your app to fail certification.<br /><a href="https://dhcontent.blob.core.windows.net/images/2015/06/CreateAppPackages_Leader_2.png"><img data-recalc-dims="1" loading="lazy" decoding="async" title="CreateAppPackages_Leader_2" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 10px 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="CreateAppPackages_Leader_2" src="https://dhcontent.blob.core.windows.net/images/2015/06/CreateAppPackages_Leader_2_thumb.png?resize=660%2C536" width="660" height="536" /></a> <li>
                      Once you&#8217;ve successfully passed the certification kit tests (and, for a bonus, get yourself a Surface RT or other ARM-based Windows RT device, and download the <a href="http://msdn.microsoft.com/en-US/windows/apps/jj572486" target="_blank">Windows App Certification Kit for ARM</a>, and install your package on that device and test it there, to ensure no surprises when on a lower-power device), you can upload your package (the .appxupload file) in your store account dashboard. <li>
                        Once you&#8217;ve uploaded the desired package, you can add the description, logos, etc. needed to list your app in the store. A quick tip is that you should ensure that you include both keywords and terms in your description that users are apt to search on, to make it easier for them to find your app. <li>
                          Once you&#8217;ve filled in all the required information, the &#8220;Submit for certification&#8221; button on the Submit an app page will be enabled. Click it, and you&#8217;re on your way!
                        </li></ol> 
                        <h3>
                          Additional Resources:
                        </h3>

                        <p>
                          Make sure that you sign up for the <a href="http://bit.ly/gd30tolaunch" target="_blank">new App Builder site</a> (formerly <a href="http://bit.ly/gd30tolaunch" target="_blank">Generation App</a>) for great resources, tips, and inspiration. You can also find information there on the <a href="http://aka.ms/KeepTheCashApps" target="_blank">Keep the Cash offer</a>, which provides $100 per eligible app (up to 10) per developer, for both the Windows Store and Windows Phone Store.
                        </p>

                        <p>
                          When approaching a game idea, you might be looking for resources from graphics to sounds, and even perhaps design inspiration. Here are some resources that may help:
                        </p>

                        <ul>
                          <li>
                            <a href="http://www.dummies.com/how-to/content/designing-video-games.html" target="_blank">Designing Video Games</a> – tips and tricks for developing your game idea, storyboarding, etc. <li>
                              <a href="https://www.scirra.com/tutorials/278/how-to-think-of-a-good-game-idea" target="_blank">How to Think of a Good Game Idea</a> <li>
                                <a href="http://www.scirra.com/arcade/addicting-example-games" target="_blank">Construct 2 Game Examples</a> <li>
                                  <a href="http://www.scirra.com/tutorials/37/beginners-guide-to-construct-2" target="_blank">Construct 2 Beginner Tutorial</a> <li>
                                    <a href="http://hasgraphics.com/free-sprites/" target="_blank">HasGraphics Sprites</a> – set of 10 free sprite sheets <li>
                                      <a href="http://hasgraphics.com/category/textures/" target="_blank">HasGraphics Textures</a> – free tilesets for background textures <li>
                                        <a href="http://www.drpetter.se/files/sfxr.zip" target="_blank">Sfxr 8-bit Sound Generator</a> – great fun app to create old-school game sounds <li>
                                          <a href="http://www.bfxr.net/" target="_blank">Bfxr</a> – Enhanced, online app inspired by Sfxr, generate and save old-school game sounds <li>
                                            <a href="http://www.freesound.org/home/" target="_blank">FreeSound.org</a> – music and sounds, many with licenses friendly for game devs <li>
                                              <a href="http://opengameart.org/latest" target="_blank">Open Game Art</a> – Textures, objects, sprites, and more <li>
                                                <a href="http://letsmakegames.org/resources/art-assets-for-game-developers/" target="_blank">More Game Resources</a> – Graphics, Music, Sound, and more <li>
                                                  <a href="http://www.funplosion.com/free-assets.html" target="_blank">Additional Free Game Assets</a> <li>
                                                    <a href="http://www.indiegamedesigner.com/category/free/" target="_blank">Free Stuff from IndieGameDesigner</a>
                                                  </li></ul> 
                                                  <p>
                                                    Last, but not least, there&#8217;s a nice step-by-step <a href="http://aka.ms/gamedevguide" target="_blank">PDF walkthrough for preparing to develop a game</a> that was put together for the <a href="http://aka.ms/AppMadnessFacebook" target="_blank">App Madness Challenge</a>, with additional resources beyond those listed here.
                                                  </p>

Comments

Comment by Lyx on 2013-05-22 12:19:00 +0000

Hi Andre, how do you configure and run Windows Phone 8.0 SDK emulator on Windows 8 in Virtualbox?

Comment by devhammer on 2013-05-22 13:33:00 +0000

Unfortunately, the answer is you probably can’t. The Windows Phone 8 emulator relies on Hyper-V, which cannot be run inside another virtualized environment. Your best bet is to either get a Windows Phone and dev unlock it, and test on the hardware, or use Windows 8 in a non-virtualized environment.

Comment by Lyx on 2013-05-23 22:26:00 +0000

Thanks, I finally run the emulator flawlessly using vmplayer.

Code, Community, and Coffee
Built with Hugo
Theme Stack designed by Jimmy
Dual-boot
Pros: Existing OS preserved
Cons: Requires additional disk space
How-to:
Install Windows 8 to dual-boot
Dual-boot using VHD