Imagine Cup Games Competition 2014


    Imagine Cup Imagine Cup 2014 has launched and if you build a cool game you could end up at the World Finals at Microsoft headquarters in Seattle.

    I have had the opportunity to visit schools across Canada, and I have seen an incredible number of students with a passion for games. Videos games are a thriving industry and Canada is a major player. That’s why I am excited to see the Games competition return as a major competition in the Imagine Cup.

    Canada, I KNOW you have some amazing game ideas and some killer coding skills. Let’s show the world the gaming talent here in Canada!

    Technical Requirements

    The technical requirements are very broad, so if you are working on a game, or have a game idea, chances are you could enter it in Imagine Cup.

    Your game must be developed using at least one product in the Visual Studio family and must be built to require one or more of the following platforms: Windows, Windows Phone, Windows Azure.

    If you want to, you can use other platforms such as Kinect, XNA, Bing Maps, as well as third party game engines, libraries and middleware provided you obey their licenses.

    Judging Criteria

    If you want to know what it takes to win? It pays to read through the judging criteria, but at the same time try not to be intimidated either! Start by coming up with a cool concept and building one or two levels for a cool game. Then come back and look at the judging criteria to find out what you can add or do to improve your chances of winning.

    Fun 50%

    Is the game exciting to play? Is there good player feedback? Is the game appropriately challenging? Does the player want to keep coming back for more? Does the game deliver appealing innovation in gameplay, storytelling, art direction, or other areas?

    Concept  15%

    Does your game have a clear target market or audience? Does the game present a clear and attractive concept of who you are, what you are doing, and why you are doing it? Is the game’s core gameplay understandable and appealing?

    Execution 20%

    Is the game easy to learn and use? Does it have good usability features such as player help, tutorials, and game pause? Does the game have a professional degree of production in terms of user interface, art, music, and sound?

    Does the game perform well and respond crisply to input?

    Does the game make effective and appropriate use of the major features of its chosen platform(s)? Where there significant platform features or event platforms the project could have benefitted from but failed to utilize?

    Feasibility 15%

    Does the team have a credible plan for getting their game to market in terms of business model, any required partnerships or licenses or other factors? Does the team have any form of external validation for their game such as customer surveys, focus group tests, an active beta-test program, recommendations from subject matter experts, or potential investors? Does the game have a reasonable chance of success in its appropriate market given the team’s existing plan?

    Who can enter?

    The Imagine Cup is a contest for students. You can see full eligibility criteria in the official rules and regulations.

    You must be 16 years of age and actively enrolled as a student at any time between 1 January 2013 and 31 July 2014.

    Teams can be up to 4 students.

    Can you get help from friends?

    A team can have a mentor (this is often a professor or someone from industry, or sometimes it is a previous Imagine Cup competitor)

    Your team can also have help from associates. Associates must also be students. They are not eligible for any imagine Cup prizes and may assist the team with their project only within specific disciplines. These disciplines include: Business planning, video production, graphic design, user experience design, music and sound design, testing and quality assurance, marketing and social media. More details on the definition of an associate can be found in the official rules and regulations.

    I think I might be interested, what do I do now?

    Register at www.imaginecup.com . Once you have registered you can create a team and sign up your team for the competition then you are off and running!

  • Go DevMENTAL

    How do you add French to an English Phone app?


    The multilingual toolkit for Windows Phone allows you to support multiple languages and will even help do the translation!


    In Canada we have a specific need to support both French and English with our applications. In fact any phone developer can publish their app to countries around the world. You might be surprised to see where your app takes off. Supporting other languages can open your application to new audiences.

    Chances are you built your app in English.

    Take this simple page on a phone app, it has a button, and a label. All the text is in English


    Strings you can switch from English to French (or any other language) are stored in a resources file.


    If you open this file you will see that the text for my button and my title are not currently listed or read from this file.


    In order to use the multilingual features, I need the app to read all the strings I will want displayed in other languages (titles, labels, buttons, error messages, etc.) from the resource file.

    Step 1 Add strings to the resource file

    Add the strings you will want to translate to the resource file. You can give them any Name you want, but you will probably want some sort of naming convention so you can remember which name goes with which string.


    Step 2 Edit code to read strings from resource file

    Edit the XAML for those controls to indicate I want the text strings read from the Resources file instead of directly from the properties of the control.

    If you have just created a new project, there should be comments at the top of your XAML file showing you how you bind a property to a value from a resource file

                To localize the displayed strings copy their values to appropriately named
                keys in the app's neutral language resource file (AppResources.resx) then
                replace the hard-coded text value between the attributes' quotation marks
                with the binding clause whose path points to that string name.
                For example:
                    Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}"
                This binding points to the template's string resource named "ApplicationTitle".
                Adding supported languages in the Project Properties tab will create a
                new resx file per language that can carry the translated values of your
                UI strings. The binding in these examples will cause the value of the
                attributes to be drawn from the .resx file that matches the
                CurrentUICulture of the app at run time.

    Here is the XAML for my page title and button before

    <TextBlock Text="Welcome" 
          Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
    <Button    Content="Say Hello" HorizontalAlignment="Left" 
          Margin="161,220,0,0" VerticalAlignment="Top" 
          Height="85" Width="191"/>

    and after I change the XAML to read the values from the resources file.

                <TextBlock Text="{Binding Path=LocalizedResources.PageTitle, 
                           Source={StaticResource LocalizedStrings}}"
                           Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
                <Button Content="{Binding Path=LocalizedResources.ButtonHelloLabel, 
                      Source={StaticResource LocalizedStrings}}" HorizontalAlignment="Left" 
                        Margin="161,220,0,0" VerticalAlignment="Top" Height="85" Width="191"/>

    Okay now we have an app with strings read from a resource file, you could just set up resource files for each language with all the translated strings, but WAIT! You might want to consider this alternative

    Step 3 Install the Multilingual App Toolkit

    Download and install the Multilingual App Toolkit. (Note: I installed the English Language toolkit for this example.)

    After you install it, from the menu in Visual Studio select Tools | Enable Multilingual App Toolkit

    Step 4 Add your new language

    In solution explorer, right click your project file and select Add Translation Languages.

    When the windows is displayed select the language you wish to add. Given that I am in Canada, I will choose French Canada. (fr-CA)


    When I click OK, the tool generates a French resources file for me


    If you open that file, you will see that the strings are all listed. The strings are still listed in English.


    Step 5 Have Microsoft Translation Provider translate the strings

    Here’s the cool part of the translation tool! Now I choose Translate | Translate All from the toolbar and the tool goes to the Microsoft translation provider to translate my strings into French. It may not be perfect, but it’s a great start!


    Here’s the list of my strings after the translation is completed. Of course I will still want to proof read the translations, but this could still be a great way to do a first cut of your translation. You can even send the .xlf file to a friend to proof read. They can install the Translation toolkit and use that to view and edit the file.


    Step 6 Test it

    Build your solution

    Run the application in the emulator (it will show up in English)

    In the Emulator choose Settings


    Choose Language + region


    Change the language to French


    At the bottom of the screen you will see a red message saying restart required, so select the button saying restart phone within the emulator. This will also cause your app to stop debugging.

    Launch your app in the emulator again and…


    If you want to know more about the toolkit, I recommend checking out this blog and video by the Windows Phone team “Localization made easy with the Windows Phone Toolkit”

    Happy coding!

  • Go DevMENTAL

    Why update your app to Windows 8.1? Make money with consumables!!!


    Windows-8-Metro-logoWith Windows 8.1 your app can have consumable in app purchases

    If you are looking to make money with your app, there are a few models that can be effective:

    • Time limited trial – this gets users to download your app, get hooked and when the trial expires users pay to continue using it
    • Feature limited trial – this gets users to download and try out the app, but additional features require purchasing the full version
    • Ads – users can download the app for free, but you generate revenue through advertising within the app.
    • Durable in app purchases - the app is free, but once you are in the app you can pay to purchase additional levels for a game or additional features.
    • Consumable in app purchases - the app is free, but you can purchase additional coins for the slot machine game, or additional food for your character, when you run out, you can buy more.

    When you built an app in Windows 8 you could do all the choices listed above, except consumable in app purchases. Developers had to come up with creative workarounds such as durable purchases that expired at the end of the day to try and create a consumable model. Well, good news! In Windows 8.1 consumable in app purchases are now supported, no more workarounds required!

    For a complete explanation of how to implement consumables

    But just to give you an idea of what’s involved, here's the basic flow for Windows Store commerce in-app purchases:

    1. When a user decides to make an in-app purchase, the app calls RequestProductPurchaseAsync to initiate the transaction with the Windows Store.

    2. When the transaction is processed, a PurchaseResults object is returned to your app. This object contains the purchase result, the transaction ID, and the full receipt.

    3. If the returned PurchaseResults indicates that the purchase was successful, your app can provide access to the purchased assets.

    4. For a consumable in-app purchase, the app reports asset-fulfillment status to the Windows Store by passing the specific transactionId to the ReportConsumableFulfillmentAsync method.

    Note  Your app should also use the GetUnfulfilledConsumablesAsync method to check for any unfulfilled consumable in-app purchases. This method is useful for checking for transactions that may not have been fulfilled due to interruptions in connectivity or other issues, so that you can make sure your customers aren't blocked from making additional purchases.

    If you haven’t done it already, update to Windows 8.1 today and make sure your apps are the best that they can be!

    Don’t forget, if you are a student you don’t have to settle for the Express versions. Use Visual Studio Professional to build your apps courtesy of DreamSpark!

  • Go DevMENTAL

    Windows 8.1 is now available!


    Windows 8.1 is here and it brings with it some amazing new features


    If you haven't heard already some really big news for Windows users was announced this past week. Windows 8.1 has officially launched. When Windows 8 launched last year, it brought with it a new, modern OS that was a big change from the way users interacted with their PCs. With that kind of major change comes areas for improvement. Windows 8.1 helps with this improvement and adds a lot of value to users and incorporates feedback from people who have being using Windows 8. 


    Some examples of these improvements include:

    • The Start Button is back! That’s right the often missed button is back
    • Customizable start screen with new tile sizes, new background designs and even more colors to choose from
    • Even more multi-tasking, you can now have up to four apps side by side with flexible sizing for each app on the screen
    • Great new Bing apps like the Food & Drink and Health & Fitness apps
    • More Cloud! Windows 8.1 has even deeper cloud integration with SkyDrive smart files, an easy way to create, edit, save and share your files anywhere, anytime both online and offline
    • Internet Explorer 11, which has been optimized for touch, comes built in. It brings with it speed boosts and synchronizes browsing history, favorites and settings across all of your Windows 8.1 devices
    • And much more!

    If you already have device running Windows 8, you can now download the free update to Windows 8.1 online through the Windows Store*. Visit Windows.com for everything you need to know including how to get the update. If you have a device running Windows 7, Windows Vista, Windows XP, or the Windows 8.1 Preview – this page on Windows.com will detect your OS and provide you with all the information you need in order to get Windows 8.1 on your device. I also highly recommend reading the FAQ which answers many of the most common questions about getting Windows 8.1.

    So go ahead start updating your devices today and enjoy all the benefits of Windows 8.1

    Don't have Windows 8 yet? If you are a student with access to DreamSpark Premium you can get it for free!

  • Go DevMENTAL

    Visual Studio Tips: Selection shortcuts for lazy coders


    VisualStudioLogoHere are a couple of tricks you may not know for selecting and editing text with as few keystrokes as possible.

    Don’t forget students can get Visual Studio Professional for free through DreamSpark!

    Find more Visual Studio tips and tricks here

    Cut, Copy, Paste: Three commands programmers use every day. Let’s face it, all coders are basically lazy: The less keystrokes the better. That’s why it’s nice to know the fastest way to select the text you want to cut, copy & paste. In this post I’ll share a few different techniques for selecting code. You probably know a couple of the tricks listed below, but did you know all of them? If you have any tricks of your own, please share!

    • How do I select one word at a time?
    • How do I select to end of line?
    • How do I select an entire line of code as quickly as possible?
    • How do I select multiple lines of code starting from a particular column?
    • Two Bonus tips (You have to scroll down to find them)

    How do I select one word at a time?

    You can select text using the keyboard as well as the mouse. If you put the cursor anywhere in the code and hold down the <SHIFT> key and then use the right or left arrow key, you can make a selection one letter at a time.


    If you hold down the <SHIFT> and <CTRL> keys then using the arrow keys will select one word at a time.

    selecting one word at a time

    How do I select to end of line?

    If you hold down the <SHIFT> key and then press the <END> key you select from the cursor location to the end of the line

    select to end of line

    How do I select an entire line of code as quickly as possible?

    I discovered this trick by accident, and fell in love with it. If you want to select an entire line of code, all you need to do is put the cursor anywhere on the line, do not make any selection at all and then do the desired command (Cut, copy, or paste). When there is no text selected, cut, copy and paste default to selecting the entire line. Try it!

    How do I select multiple lines of code starting from a particular column?

    Have you ever tried to select code on multiple lines? If you just start in the middle of a line of code and select multiple lines of code you end up with a selection like this:

    select multiple lines of code

    Now try holding down the <ALT> key as you make a multiple line selection. This works if you are selecting with the keyboard or the mouse.

    box select

    When you use the <ALT> key you get something called a box select. This can be useful if you are trying to copy a list of variable names, comments, or namespaces without the entire line of code.


    Okay if you actually scrolled down this far, here are the two bonus tips I promised.

    Not only can you select code over multiple lines with the <ALT> key, you can actually edit code on multiple lines as well. Let’s say you have a list of variables declared as private and you decide they need to be public. Use the <ALT> key to do a multiple line selection of the keyword private across all the declarations.

    box edit

    Now start typing the word public, as you type it will replace the selected text on each line with the new text you type

    box editing


    Last but not least, you can actually insert text on multiple lines of code using the box select technique as well. Let’s say I wanted to add some similar comment text after each variable declaration above. Use the <ALT> key to do a multiple line selection, but make your selection at the position in the line where you want to add the comments.

    box insert

    Now start typing the text you want to insert, as you type it will be added to all the lines.

    box insert

    If you like that multi-edit feature, you may also want to check out this neat little add-on for Visual Studio called MultiEdit Extension for Visual Studio. After you install the extension, if you hold down <ALT> while mouseclicking in the editor it will add multiple selection points wherever you clicked. Then you just type and your text is added to all the selected positions. Scott Hanselman wrote a blog post about it here. Thanks Andrew for pointing out this neat little extension.

    Happy coding!

Page 1 of 2 (6 items) 12