• Microsoft UK Faculty Connection

    Using Cloud Services to make a Leaderboard for a Unity Game

    • 1 Comments

    As part of the #UnityportingUK http://www.unityportinguk.com one of the most common question we get is how can I take advantage of Azure Cloud Services

    image
    Setting up Azure and Mobile Services

    If you do not have an Azure account, then you should sign up for one.

    image

    The Azure Mobile Services have a free tier that includes up to 500 devices as well as 500k API calls and you can also use the free tier for up to 10 services.  This means that you can test out a few things without having to pay for it.

    Azure Mobile Services

    Azure Mobile Services is a part of Azure that allows access to a database and has connection and sample code to talk to any mobile system that is out there.  This will provide you with the code or library to do the connection to Android, iOS, Windows 8, Windows Phone, HTML5/JavaScript, or even the Xamarin libraries. To get started, if you do not have any Mobile Services defined yet you can click on the Mobile Services tab on the left and then the Create a New Mobile Service link next to it.  You can also click on the New option on the bottom the of the screen and select Compute -> Mobile Service -> Create.

    mobile1

    mobile2

    From here, you will get a popup to fill in to finish up the creation.  The first field is the name of the Mobile Service.  This name will also be the address for the service.  It must be unique. For this example, I named mine “unityleaderboard”.  The next field is the database to use as a back end for the service.  You can choice from “Use an existing SQL database“, “Create a free 20 MB SQL database“, or “Create a new SQL database instance“. 

    createmobile

    The database will now need to be configured.  You need to setup the username and password and also the region for making the database.

    mobiledbsettings

    mobiledbsetup

    Now For Some Data

    So up to now we have the Mobile Service setup, but there is no data yet.  Go into your new Mobile Service and then click on the Data link at the top.  You can now add a new Table to the database that was setup earlier.

    mobiletablesetup

    mobilecreatetable

    The next step is to add the data fields to the new leaderboard table.  This will allow us to save the data for the UserName and the Score that is saved.  This is going to be a basic sample and not an optimized database, so I will be adding the UserName as just a string field to the table.  If this was a bigger system supporting multiple games, I would probably make a Player table with all of the players info there and then a leaderboard table that cross referenced that player table.  Since this is just a quick and simple leaderboard for a single game, keeping the raw text in the table is not that bad.  The Score field is going to be added as a Number so that we do not have to change the numbers of the score into a text field back and forth.  After clicking on the table name, you will see and can click on the Columns link to get to add new columns.  To add a new column, use the Add Column link at the bottom of the page.

    mobilecolumnlistmobileAddScore

    mobileallfields

    At this point the new leaderboard service is up and running.

    unity
    Unity GameDev

    Unity Plugin for Azure by BitRave provides a Mobile Services plugin for Unity 3D. Their GitHub repo includes cross-platform APIs (currently supporting Windows Store and Windows Phone) and example code. 

    bitrave

    Plugin Instructions

    Contents
    Before You Start

    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 below is a guide to using the Azure Mobile Services plugin for Unity 3D.

    Overview

    A suite of Azure Mobile Services plugins for Unity3D, cross platform with common interfaces, with examples.

    The goal is simple. “Just hit build”. That means 1 API, no platform dependent code. The plugin should hide platform intracacies, not surface them.

    Runs across:

    • UnityEditor – Lightweight support in Unity so you don’t need to build to test your app. No more stubbing data locally.
    • Windows 8 Store – Uses the underlying native DLL for consistent and robust integration
    • Windows Phone 8 – Uses the underlying native DLL for consistent and robust integration

    Coming soon:

    • iOS
    • Android
    5 Second Guide

    Put the plugin binaries in your Assets/Plugins folder.  These get built into an Output folder in the root of the solution in the right folder structure.  And it’s as simple as…

    var data = new LevelSaveData() { SaveData = “some data here“, Id = 1 };

    var azure = new AzureMobileServices(_azureEndPoint, _applicationKey);

    azure.Update<LevelSaveData>(data);

    or

    var azure = new AzureMobileServices(_azureEndPoint, _applicationKey);

    azure.Lookup<LevelSaveData>(1, azureResponse =>

    {

    if (azureResponse.Status == AzureResponseStatus.Success)

    {

    var ourObject = azureReponse.ResponseData;

    }

    }

    Data comes back via callbacks and response objects.  Unity doesn’t support await/async, but when it does it will move to that model.

    API
    Initialise

    Initialisation is just as simple as you’d expect.

    var service = new AzureMobileServices(“url”, “token”);

    Insert

    Insert an item into your Azure database in a single line of code from Unity.

    service.Insert<ToDoItem>(myItem);

    Update

    Update items in the Azure databsae with just one line of code from Unity.

    service.Update<ToDoItem>(myItem);

    Delete

    Remove items from the Azure database in 1 line of code from Unity.

    service.Delete<ToDoItem>(myItem);

    Query

    Query items in your Azure Mobile Services from Unity.

    service.Where<ToDoItem>(p => p.Category == “Exercise”, azureResponse =>

    {

    List<ToDoItem> exerciseItems = azureRepsonse.ResponseData;

    NOTE: await / async will be available when supported by Unity.  Until then we are using callbacks.

    Lookup

    Lookup items in your Azure Mobile Services from Unity.

    service.Lookup<ToDoItem>(myItem, azureResponse =>

    {

    ToDoItem myToDoItem = azureResponse.ResponseData;

    NOTE: await / async will be available when supported by Unity.  Until then we are using callbacks.

    Login

    On supported platforms, LoginAsync can be called for authenticated services.

    azure.LoginAsync(AuthenticationProvider.Facebook, loginResponse =>

    {

    var token = loginResponse.ResponseData.MobileServiceAuthenticationToken;

    });

    NOTE: await / async will be available when supported by Unity.  Until then we are using callbacks.

    Visual Studio Solution
    The Projects

    There are multiple projects in the solution.

    • Bitrave.Azure.Editor – This provides Azure support directly from within the Unity Editor, it’s not currently fully featured, but offers a way to test against real data in the cloud rather than stubbed local data.
    • Bitrave.Azure.Stub – This is a stub class for assisting with building projects out of Unity.  It assists with hiding complex dependencies that cause issues with Unity.
    • Bitrave.Azure.Windows8 – The Windows 8 Azure Mobile Services plugin for Unity 3D.
    • Bitrave.Azure.Windows8.TestApp – A test app to help debug the plugin behaviours since the plugins can’t be debugged in Unity 3D.
    • Bitrave.Azure.WindowsPhone8 - The Windows 8 Azure Mobile Services plugin for Unity 3D.
    • Bitrave.Azure.WindowsPhone8.TestApp - A test app to help debug the plugin behaviours since the plugins can’t be debugged in Unity 3D.
    • RestSharp.Stub - This is a stub class that assists with building out of Unity for the specific platforms.
    Building

    Make sure you have the latest version of Nuget, then get the dependencies such as RestSharp, JSON.NET, and Azure Mobile Services.  You will need to also add a reference to the UnityEngine.dll for the respective platform.  If you can’t find these UnityEngine DLLs, just build out of Unity a blank WP8 project or a blank W8 project, and the respective DLLs will end up in the generated project.  If you want to use the PM command line for Azure, here it is:

    Install-Package WindowsAzure.MobileServices

    Once you have the DLLs all configured, hit build.

    Once built your solution directory should have an output folder.  Within this is a Plugins folder structure with DLLs that you copy directly into your Unity project’s Assets folder.  It should look something like this:

    c:\Projects\MyGame\Assets\Plugins\

    c:\Projects\MyGame\Assets\Plugins\Metro\

    c:\Projects\MyGame\Assets\Plugins\WP8\

    When you build for a specific platform, the plugins from the root Plugins folder get replaced by DLLs with identical names in the platform folder.  This is why the RestSharp.Stub gets copied into WP8 and Metro since it’s only used for the Unity editor.  Metro and WP8 leverage the Azure Mobile Services SDK DLLs for their specific platform.

    The Windows8 DLL gets copied into the Plugins/Metro folder since Windows 8 projects build nicely out of Unity.

    The WindowsPhone8 DLL does not get copied into Plugins/WP8.  The Bitrave.Azure.Stub DLL gets copied due to dependency issues when building.  WP8 builds are still in early beta so this need may go away.

    Next step, make sure you copy the right versions of Newtonsoft.Json DLL into the Plugins, Plugins\Metro, and Plugins\WP8 folders.  Also copy RestSharp into the Plugins folder.   It should look something like this:

    pllugin_folders

    And that’s how you get everything into Unity, and you should be good to start using it.  How to build for each platform is below.

    Building For Platforms
    Windows 8 Store Apps
    1. From Unity
    2. Select File->Build Settings (Ctrl-Shift-B)
    3. Select “Windows Store Apps”
    4. Select “Build”
    5. Pick a folder to build into
    6. Wait for it to build
    7. Open the generated solution in Visual Studio
    8. Check the references to the project, we’ll need to update some references.
    9. Remove RestSharp from the references
    10. Remove Boo.Lang.dll if it is there, it won’t pass WACK
    11. Make sure that Newtonsoft.Json.dll is the right version for Windows 8
    12. Open up Package.appxmanifest.  Ensure Capabilities->Internet Client is enabled
    13. Manage Nuget packages for the project, add the Windows Azure Mobile Services SDK
    14. You should be good to go!
    15. Build and Run
    Windows Phone 8 Apps
    1. From Unity
    2. Select File->Build Settings (Ctrl-Shift-B)
    3. Select “Windows Phone 8″
    4. Select “Build”
    5. Pick a folder to build into
    6. Wait for it to build
    7. Open the generated solution in Visual Studio
    8. Check the references to the project, we’ll need to update some references
    9. Remove Bitrave.Azure and add a reference to the Bitrave.Azure.WindowsPhone8 project’s Bitrave.Azure.dll in it’s bin/Release folder.
    10. Remove RestSharp.dll, it’s not needed
    11. Manage Nuget packages for the project, add the Windows Azure Mobile Services SDK
    12. You should be good to go!
    13. Build and Run
    14. PS – You need to deploy to a WP8 phone

    Creating a simply 2D Unity Game

    When Unity is launched, a dialog pops up with two tabs Open Project and Create New Project.  Select the Create New Project tab and enter in a name for the project.  In the bottom left of the dialog, there is a dropdown for selecting 3D or 2D for the project.  Select 2D and then hit the Create button to make the project.

    unitysetup

    unitydefault

    In the project pane, there is a folder names Assets. Create three folders, Plugins, Scenes, and Scripts.  This creates these folders under the Asset folder in the project’s folder.

    mobileunityorganize

    Saving the Scene

    One thing that helps at this point is to manually save the scene.  Select the File -> Save Scene menu option and then select the Scenes folder and save the scene, for this tutorial I named it MainScene.  This will create a MainScene.unity file in the Scenes folder.

    mobilesavescene

    Adding the Plugin

    Next, let’s take the plugin from the GitHub repro and take all of the files from the Asset folder in the AzureMobileServicesUniversalPlugin project and save them into the same folder as our scene. 

    mobilesaveplugin

    From here we will follow the second instruction line and drag the AzureUI script file onto the Main Camera object to attach the script.  From here we are going to be making some changes to this script to remove the Facebook login and to point it at the new leaderboard service that we made earlier.  At this point the project will not compile or run because we are missing the Newtonsoft Json.Net DLL.

    JSON Library

    As I said above, the plugin from Bit Rave suggests getting a Json library from the asset store. 

    Leaderboard Class

    The sample from BitRave is great but it just ties to the standard sample ToDo list that mobile services will make for you to test with.

    I would suggest the following to make a more robust leaderboard, the suggestion is have a leaderboard table getting called and used.  In the Scripts folder, you will see a ToDoItem.cs script file with the following class defined.
    TodoScript
    In the Scripts folder, right click and go to Create -> C# Script and name it LeaderBoard.  This will create a new class that is derived from MonoBehavior.  This is the default for any script that is added.  What we can do here is to delete the class and actually just make one for our leaderboard table that is in our Mobile Service.  Originally in Mobile Services the tables had an Id field of an int.  The current system makes the Id field a string instead.  To fit into the sample from BitRave, I am also going to create a ToString method for the class to use for displaying. So creating a class for our leaderboard will give us a class that looks like this.  Please keep in mind that the name of the class should match the name of your table.

    mobileleaderboarditem

    AzureUI.cs

    This is the file that is doing all of the GUI in this sample game and also calling the leaderboard service.

    So what is the experience?

    The free version of Azure mobile Services can get you going on a simple service.  It is limited to the number of devices and number of transactions per month, but when you hit those limited you should be able to move the service up to the next level for more resources and abilities. Another option is using a dedicated third party gaming services such as http://www.gamesparks.com/ who offer a free services for FREE services for  upto 10,000 user per month

    image

    Other Resources

    Stacey Mulcahy, making a leaderboard using Azure Mobile Services.  She showed how to add the leaderboard to your HTML5/JS game.   

    Steve Maier Azure Mobile Services to make a Leaderboard for a Unity Game Steve shows how to create a leaderboard in Unity  

  • Microsoft UK Faculty Connection

    The Microsoft Windows Phone Camps – Powered by UK Tech.Days Fun, Free & Open to all!

    • 8 Comments

    1012_1a_Mango_Start_Phone_English_Red_061011_jpg

    Want to start developing for Windows Phone, but not yet taken the plunge?

    Then this free day of training is the quickest way to find out all you need to know.

    The Windows Phone Camps will show you how to learn and build Windows Phone apps from scratch. You'll be guided through the development process with a series of hands-on workshops and short tutorials, with some seasoned experts to give you one on one help when you need it. There'll be topics like; Introduction to Windows Phone Development, Controls & Control Toolkit, Execution Model, Storing Data, Launchers & Choosers, Accessing Cloud Services, Marketplace & Submission. Also, there will be informal Mango tutorial sessions on offer covering topics such as Multi-tasking, Debugging & Profiling, Motion API, Advertising SDK and Sockets. There's even an introductory design session to help you make your app look its best. Just pick the workshops that are most useful for you and work at your own pace.

    Once you've got the basics, you’ll be off and running and ready to develop your own apps. You can work on your own projects with assistance from our Windows Phone MVPs, and of course there's the all-important opportunity to meet up with likeminded devs.

    The camp kicks off at 9am and finish at 6pm. By registering and attending, you will receive (fanfare please) an exclusive Windows Phone Design Guide Sketch Pad as well as your own customized Hit & Run Windows Phone Camp T-shirt.

    Spaces are limited, so register your place in the Windows Phone Camp today!

    Got a question? You might find the answer below...

    How much do I need to know about Windows Phone to attend this camp?

    You don't need any prior experience or knowledge about Windows Phone or app development to attend. The purpose of the camp is to provide you with the basic skills and knowledge to get started with learning about Windows Phone app development.

    Who can attend these camps?

    Academics, Students, developers, hobbyist, technology enthusiasts. Everyone is welcome! All we ask is that you are ready and keen to learn about developing apps for Windows Phone.

    How much does it cost to attend this camp?

    Your luck's in - it's FREE.

    What do I need to prepare in advance to make the most of this camp?

    There are a basic set of things you should prepare before attending the camp. This includes bringing your own suitable laptop with the Windows Phone Developer tools installed (these are free), preferably the latest version of the tools.

    It would also be useful if you could read the following documentation:

    If you have a Windows Phone please bring it with you.

    Are you holding these camps elsewhere in the country?

    Yes, this is a series of Windows Phone Camps kicking off around the country. Follow us on Twitter (@ukmsdn) to see where we’re visiting next.

    What if I've registered already and can't make it on the day?

    Please let us know as soon as you can if you can't make the camp as there will be plenty of people who are keen to take your spot. Please respect the trainers and your fellow delegates by turning up if you've registered and committed. Thanks!

    Who are Hit & Run?

    They're do cool live on-site event screen-printing. You'll get the chance to create your very own t-shirt with your unique design at the end of the camp.

    What’s the Windows Phone Design Sketch Pad?

    In the spirit of highlighting good design, we intend to provide each attendee with an exclusive Windows Phone design sketch pad with Windows Phone design guidelines as well as open spaces and templates to sketch your next big Windows Phone app idea. Great stuff!

    Register at the event of your choice below. Go on. You know you want to.

    London - Saturday 17 September

    Manchester - Saturday 24 September

  • Microsoft UK Faculty Connection

    HTML5 and Streaming Media Content

    • 1 Comments

    The following is a quick guide on HTML5 Video and the Microsoft Media Platform, I have recently had a number of question and interest from a  number of UK universities whom are looking at providing streamed media content both on and off campus.

    Microsoft has developed the IE Test Drive Video Format support page to see some examples of how various codecs work across the different browsers.

    Testdrive

    What this means?

    Web developers are generally happy to leave their existing solution in place to play their pre-existing video/audio content using plugins. However many are now supplementing these plugins with the HTML5 Video and Audio tag if the browser is able to play their particular codec of choice natively. This is ideal as the most popular mobile platforms H.264, AAC and MP3 are generally well supported using the HTML5 video and audio tags.

    How Do You Get Started?

    clip_image004

    The Microsoft Media Platform (MMP) frameworks are the glue that holds together individual pieces of the Microsoft end-to-end media solution.

    Are the services scalable?

    Microsoft MMP  is the the video platform that sits behind the Rugby World Cup 2011 event.

    The Microsoft Media Platform: Player Framework (that is licensed for commercial use under the Microsoft Public License Ms-PL) has recently added a preview of support for HTML5 (API Documentation) that enables you as web developers to compliment the Silverlight player framework with a HTML5 video experience that enables you to reach additional mobile platforms.

    Commercial Software offerings

    There are a number of commercial solutions available that do all the work for you.

    Example of these include

    JW Player™ (licensed for commercial use)

    SublimeVideo® (Player as a Service).

    What if You Want to use your Own Player or existing solution?

    It is surprisingly easy to utilise your own video solution using the default browser controls and codecs that the browser supports. The markup below shows what you need to play a video in HTML5 with a “Fall Back” to an unlisted video on YouTube.

    image

    Configuration considerations

    1. Video MIME types supported

    Cross Browser HTML5 video running under IIS

      Video Formats supported -

      • m4v,
      • mp4,
      • webm,
      • ogg,
      • wmv,
      • swf fallover.

    The order of your markup does matter please list them as above

    Add in the MIME Types support to IIS.

      Under IIS 7+ this is found under Website -> IIS -> MIME Types, and you’ll want to add:

      File name extension / MIME type:

      • .webm – “video/webm”
      • .ogg - “application/ogg”
      • .ogv - “video/ogg”
      • .mp4- “video/mp4″
      • .m4v - “video/m4v”

    Turn off Compression under Website -> IIS -> Compression, and unchecking “Enable dynamic content compression”, and “Enable static content compression

    Using Microsoft Azure Service

    Azure Storage Explorer also allows you to do this on individual files. of one of the following formats:

    • .mp4 - “video/mp4″
    • .m4v - “video/m4v”
    • .webm - “video/webm”
    • .ogg - “application/ogg”
    • .ogv - “video/ogg”
    • Set these in the web.config

    Video Fall-back settings

    • Fall-back content (like the YouTube example above) is only displayed by browsers that do not support the <video> tag.
    • If the browser supports the video tag but cannot play any of the media types that you have requested the fall-back code won’t fire. In this case you need to use JavaScript to detect this scenario using the canPlayType() method and provide fall-back content as shown in the example below.

    image

    3. Byte Range Requests (seeking)

    • Content should be served from a HTTP 1.1-compatible web server to enable seek ahead to the end of the video.
    • If you server is not HTTP 1.1-compatible (e.g. Azure Storage) you must encode the video with key index frames in the file & not at the end so that seek ahead still works. The “H.264 YouTube HD” profile in Expression Encoder 4 Pro does this.
    • Also note that if the video file is gzipped seeking won’t work. Since with most codecs the video/audio data is already compressed, gzip/deflate won't actually save you much bandwidth anyway.
    • IIS also supports Bit Rate Throttling to save you bandwidth on the server side when delivering video content.

    What’s next for HTML5 Video?

    There are currently a few key areas not addressed by the current W3C Video Standard (full screen support, live streaming, real time communication, content protection, metadata and accessibility). Recently the W3C Web and TV Workshop discussed some of these areas and offered some early thinking on how they may be adopted as web standards in the future.

    A real issues is the lack of a solution for live and adaptive streaming. Currently there are three proprietary solutions that support live and adaptive streaming.

    Dynamic Adaptive Streaming over HTTP (DASH) is currently in Draft International Standard. It looks likely that it will get W3C support if it is offered royalty free.

    DASH supports:

    • Live, on-demand and time-shifted content delivery and trick modes
    • Splicing and ad insertion
    • Byte-range requests
    • Content descriptors for protection, accessibility and rating

    Access to beta test and learn more about HTML5 media services?

    HTML5Labs is where Microsoft prototypes early and unstable specifications from web standards bodies such as W3C. Sharing these prototypes helps Microsoft have informed discussions with developer communities to provide better feedback on draft specifications based on this implementation experience.

    On the labs site Microsoft has released a Media Capture Audio Prototype that implements the audio portion of this W3C specification. The next prototype will support Speech recognition and will implement the Microsoft proposal available on the W3C website.

    Overall Conclusion

    If you are hosting progressive download video and audio on the web you should be looking to support HTML5 video and audio today to extend the reach of your content.

    Useful Resources

  • Microsoft UK Faculty Connection

    Channel 9 Windows 8 Application

    • 6 Comments

    Channel 9 is home base online for technical know how, how to’s and tips and tricks.

    Channel 9 is used by millions of Developers worldwide each month through videos, how to articles and events.

    We are excited to announce that the team has just released a Channel 9 application in the Windows 8 App Store. 

    So Install the application today on the Windows 8 Consumer Preview and easily browse the latest content on Channel 9, share content with your friends and view content on any of your Play To Enabled devices. 

    To find the app, Search the Windows 8 App store for Channel 9.

    clip_image002

  • Microsoft UK Faculty Connection

    FREE Ebooks from Microsoft Press

    • 1 Comments

    Microsoft Press have a number of FREE Ebooks now available covering topics from SQL Server 2012, Office 2010 and Windows Phone, there is something here for everyone. 

    Many of our free ebooks are offered in three formats - PDF, Mobi (Kindle) and epub. Hope you find them useful!

    clip_image002 clip_image003 clip_image004 clip_image005clip_image007

    clip_image008 clip_image009 clip_image010Moving to Visual Studio 2010Programming Windows Phone 7

  • Microsoft UK Faculty Connection

    Windows 8 Training camp in a box

    • 0 Comments

    Win8CampInABox

    The Windows 8 Camp in a Box is now available for download.  It includes all of the presentations, code samples, and hands on labs ideal for you getting your curricula up to date with Windows8. The content is available in both XAML/C# and HTML/JavaScript versions.  

    If you have been looking for an opportunity to develop curricula, work books, assessments or simply a walkthrough of a XAML/C# or HTML5/JS application step by step this it!  Full source code and instructions are provided in both html and docx formats. 

    Labs

  • Microsoft UK Faculty Connection

    Improvements to DreamSpark and FREE store access for Windows 8 student developers

    • 0 Comments

    Today we are announcing the following changes to www.dreamspark.com

    1. An new site design which is the result of improvements to the user experience based on internal and external feedback. Notably creating more clarity around the fact that the DreamSpark program is both a direct to student program and a subscription based program for academic institutions. As a result we have created two hubs with distinctive colour branding through the site to direct users to the right information and software access depending on their role:

    a. DreamSpark for Students – direct access to the individual students experience (www.dreamspark.com/Student/default.aspx )

    b. DreamSpark for Academic Institutions – information about the DreamSpark subscription such as program benefits, EULAs, usage guidelines, and the steps to purchase a subscription etc. (www.dreamspark.com/Institution/Subscription.aspx )

    The site today is going live in English only. Customers selecting other languages will fall back to English UI. The DreamSpark team are working as fast as we can to launch the localized versions. They should become available in the week of 24th of Sept.

    clip_image002

    As part of this site redesign we are rebranding the DreamSpark subscription to DreamSpark Standard in response to the feedback received by customers and to avoid confusion with DreamSpark for students.

    2. The new site has shifted from focusing purely on software downloads to bringing tools and resources related to development on our platforms (Windows 8, Windows Phone and Games) and most importantly a new section under Student dedicated to App Development) also accessible from the Student sub-navigation .

    clip_image004

    3. A page dedicated to Windows 8 App Development where students can find the resources and tools they need to start developing Windows 8 apps, including a pointer to downloading the getting started guide. .

    clip_image006 clip_image008

    4. Free access for students to the Windows Store: From the Windows 8 App Development page, users will be direct to the Windows Store Access Page on DreamSpark where they can verify their user status and then get a Registration code to use in the Windows Store to register for FREE.

    clip_image010 clip_image012

     

    Additional Resources

     

    a. Overview of the DreamSpark program explaining what it is? www.dreamspark.com/what-is-dreamspark.aspx

    b. New Software Deployment guide for institutions, www.dreamspark.com/Institution/Software-Deployment-Guide-en-us.pdf , detailing step by step how administrators can provide software access to students, faculty and labs via a DreamSpark MSDN Subscriber Portal and ELMS Webstores

    c. ELMS overview: www.dreamspark.com/Institution/ELMS-Overview.aspx

    d. DreamSpark Standard usage guidelines page added to academic institution overview section, www.dreamspark.com/Institution/DS-Usage-Guidelines.aspx

    e. DreamSpark Premium usage guidelines page added to academic institution overview section, www.dreamspark.com/Institution/DSP-Usage-Guidelines.aspx

    f. STEM definition page, www.dreamspark.com/Institution/STEM.aspx

    g. New DreamSpark Standard EULA:www.dreamspark.com/Institution/DS-EULA.aspx

    h. DreamSpark Premium EULA page to www.dreamspark.com/Institution/DSP-EULA.aspx

    i. Revised FAQ’s; more information, more relevant to each audience (student, educator, and institution) accessible from top nav bar.

    j. Separation of Student support from Subscription support with two dedicated pages: www.dreamspark.com/student/support.aspx and www.dreamspark.com/Institution/Support.aspx

    k.  DreamSpark for Academic Institution, and the Academic Institution Hub nav bar explaining how access an existing subscription:

    clip_image016

  • Microsoft UK Faculty Connection

    Microsoft announces Windows Azure Toolkits for Mobile Devices including iPhone and Android

    • 0 Comments

    Today, Microsoft announced Windows Azure Toolkits for Devices, consisting of assets for Windows Phone, iOS and a preview of tools for Android.

    Using the toolkits, developers can use the cloud to accelerate the creation of applications on the major mobile platforms.

    Today announcement and the release of the API is a key goal to allowing developers to quickly develop and build apps that work with unique devices across a dozen platforms.

    The toolkits leverage the Microsoft Azure cloud resources to simplify the complexity of supporting multiple devices. As a common back-end, developers can use cloud services to share common requirements like device notifications, authentication, storage and even higher-level services like leaderboards.

    Developers can maximize the performance of each mobile device by writing client code that exploits each platform. As more and more mobile applications rely on back-end services, the Microsoft Azure cloud can become increasingly useful and strategic for developers.

    A huge opportunity of the Windows Azure Toolkits for Devices to create applications on the major mobile platforms, specifically:

    Windows Azure Toolkit for iPhone (v1.0). Developers can download the package and quickly get started writing iPhone apps on the Windows Azure platform without having to have intimate knowledge of Microsoft tools, such as Visual Studio. Compiled iPhone code libraries to interact with Windows Azure, a sample iOS application, documentation, and a “Cloud Ready” Windows Azure deployment package are included.

    Links to access the free toolkits are below:

    iOS:

    https://github.com/microsoft-dpe/watoolkitios-lib
    https://github.com/microsoft-dpe/watoolkitios-samples
    https://github.com/microsoft-dpe/watoolkitios-doc

    Windows Azure Toolkit for Windows Phone (v1.2). Originally released last month, new developer features available in the next two weeks include integration with the Windows Azure Access Control Service (e.g., a wizard, automatic setup, tooling and code), full support for Windows Azure Storage Queues and an updated user interface for the supporting Web application.

    Links to access the free toolkits are below:  

    Windows Phone 7:

    http://watoolkitwp7.codeplex.com

    Windows Azure Toolkit for Android (Prototype Preview). With the forthcoming release this summer, developers will be able to extend the functionality now available for iOS and Windows Phone to the Android platform with the Windows Azure Toolkit for Android.

     

    To simplify the process of setting up services in Windows Azure, we are also releasing a “Cloud Ready” package for the toolkit. This package is designed to allow someone to quickly get started using Windows Azure without having to open and modify the services.

    Screencasts are available for developers seeking additional information: Getting Started with the iOS Toolkit and Deploying the Cloud Ready Package for Devices.  Windows Azure Technical Evangelist Wade Wegner’s blog contains a more detailed technical review of the iOS toolkit.

    By providing toolkits for Windows Phone 7, iOS, and Android, we are making it faster and easier for developers to use Windows Azure to provide services across device platforms

  • Microsoft UK Faculty Connection

    What kind of Phone Developer are you?

    • 0 Comments

    WinPhone8logo

    One great thing about academia is that its always important to understand your skills, particular situation, objectives and what you are trying to achieve.

    So thanks to Joel Citzen and his blog The following guidance will help you get started to being the most effective developer.

    What type of developer are you?

    New to the Platform
    Typically you would have no existing apps and can’t wait to build and ship your app to Windows Phone Store or Windows Store. In this case the suggestion is that as a beginner you grab the free tools and start exploring building for either platform. You can explore:

    Windows Phone

    Seasoned in Windows Phone App    
    You already built Windows Phone Apps and now want to build apps for Windows Phone 8 and Windows 8. You will find a lot of similarities when you develop your apps for both platforms. To get started explore:

    Win8_logo WinPhone8logo

    Seasoned in Windows Store App
    You already built Windows Store apps and now want to build apps for Windows Phone 8 and Windows 8. You will find a lot of similarities when you develop your apps for both platforms. You can get started by exploring these sources:

    apple-ipad 

    Seasoned in another Platform
    You’ve built apps for other platforms, and want to ship them or port them to Windows Phone 8 and Windows 8. Many of the programming concepts will be familiar. Both platforms support C++, and the tools have templates to help you get started. To learn more explore:

    Games Creator from another Platform
    You’ve built games for another platforms and want to port them to Windows Phone 8 and Windows 8. We’ve invested significantly in native gaming support on Windows Phone 8 and this will make it possible for you to port your existing games to both Windows Phone 8 and Windows 8. Check these resources:

      Maximising Code Reuse.

      After choosing your approach, based on what type of developer you fall under, you can now decide what choices to make to maximize code reuse in your apps. As a developer, you want to streamline your development and make maintaining your app efficient. When building an app for Windows Phone 8 and Windows 8, you should look for opportunities to share code, designs, and assets as much as possible so that you maximize the return on your investment.

      imageimage

    • Microsoft UK Faculty Connection

      Cloud Gaming Architecture–A walkthrough of how to get started

      • 3 Comments

      Architecture

      The architecture has a logical layout (below). It looks complex, but the blog will hopefully explain it.

      image

      The Pieces of the Puzzle for a great cloud gaming experience.

      When architecting our game your need to consider what the  components, described below. Some are apps (the clients), and the rest are cloud services.

      Clients

      The clients are the apps that game players download to their devices. Each app must be developed for the particular device, but they must all have behave the same. The game is the same, just the UI changes.

      clip_image004

      When building a game today you want it to be played on the most number of devices so, ideally it should be capable of being  played on Windows Phone 7 and 8, Windows 8.0 and 8.1, iOS, Android, and Kindle.

      To enable maximum platform support communication is enabled using REST APIs. The experience of playing the game should be smooth and seamless. A key factor is to ensure that the client app makes the minimal number of calls (after authentication).

      When developing your client its key to ensure that each of the client has a thin hardware abstraction layer (HAL). the HAL must contains the code necessary to display and process the UI controls, along with the code that initiates contact with the Visitor Center and the code that interacts with a Game Room.

      Visitor Center (VC)

      The first stop for a player is the Visitor Center. So think of the Visitor Center as the landing page for your game i,e.  you’ll find the leaderboard results and a directory of the gamer IDs. You can also find a friend on the system through the leaderboard.

      clip_image005

      Identify Yourself

      When the player starts the game, the client app authenticates the player with either Facebook or another authentication services (using a username and password). The client app then sends the Visitor Center the identity of the player (via a token). The Visitor center confirms the identity by contacting Facebook or other authentication services to verify the token (and thus the player). Once confirmed, the Visitor Center sends the client app a new URL that goes to the Game Room where the user will be playing.

      Note that if the user does not sign I, you may want them to allow them to play as a Guest (guests may be simply unranked or wouldn't be issued persistent stats or friends).

      Game Room (GR)

      clip_image006

      The Game Room consists of 3 APIs that interact with the client.

      1) Game: Sends the current puzzle to the client.

      2) Post: Receives the user’s individual results from the client.

      3) Results: Sends the leader scores and relative ranking of user to the client, along with the next puzzle.

      Game Room Services and Locations

      You may want to geo locate each of your games rooms, best practice is to locate each Game Room on the continent with the greatest player base – so European languages are housed in European data centers, for example. The hard cases are English, Spanish, and Portuguese, which have broad, world-wide audiences. English is played from everywhere, but is most concentrated in the US, UK, India, and Australia. Spanish is split between Spain and Latin America. Portuguese is most heavily played from Brazil, but there are still plenty of players from Portugal and other parts of the world.

      The Aggregator

      When a game ends, each client sends the player’s results to the Game Room. The Game Room has an Azure load balancer in front of it that distributes the results to one of its three web roles. Because the results are randomly scattered, they must be gathered into one central spot—the aggregator.

      clip_image007

      The inner working of the aggregator is an Azure Cache. Caches are used in computing because they take the pressure off a system by holding recently stored data in memory and letting many operations access the data. Because the data is in memory, it can be instantaneously returned to any operation. The cache operates instead of a database engine that would otherwise query for a particular result. Multiply the queries and the database quickly reaches its capacity to respond. Caches are tried and true time savers.

      Here’s what happens between the GR and the aggregator.

      clip_image009

      After a game ends, each Game Room web role receives the individual client results. The web role then sends all of its accumulated results to the aggregator. Note that due to retries, there may be duplicate client results received by the Game Room and received by the aggregator. (Two people sharing the same Gamertag while simultaneously playing using different devices also causes duplicate client results to be received.) Then, the aggregator sends all of the Game Room web role results back to each Game Room web role, as shown in Panel 3 of the diagram above.

      Each Game Room web role removes duplicates and sorts the results, and sends the top results and individual results with peer ranking back to the client. After the next round starts, each Game Room writes its buffer of unsorted results to blob storage. Each blob is named in the form <puzzle language id>-<game id>-<instance number>.txt, and consists of Comma Separated Values (CSV) data.

      Leader Board Orchestrator (LBO)

      The LBO does the heavy lifting for the app. It works in close partnership with the two database stores that conceptually flank it to create the “best of” lists (best of right now, best of the hour, best of the day, best of the week).

      clip_image010

      When the Game Room and the aggregator have finished the results reporting work, the LOB starts.

      It first gets the results of the game from the newly written blob storage. It then processes the data to create in-memory tables that are inserted into an instance of Azure SQL Database. Once the data is inserted into the database, a large number of queries, in the form of stored procedures can be run against the data. To preserve the integrity of the data, stored procedures are the only way used to determine stats. The integrity of the data can also be checked during the process. The LBO can use more than one worker role to process the data. The results can also be compared. If any discrepancies arise, then the worker can be immediately stopped, and a new worker started to retry the processing.

      Headquarters

      There is another component, although it is more of an infrastructure piece. The “Headquarters” service is used to run tests against the various other parts of the game. For example, it runs the test-bot that makes sure the game rooms (in all languages) are working. It also checks the integrity of the database operations. If a worker role running an operation creates a result that is different from others, the worker is terminated and a new one started. The headquarters handles those administrative and quality assurance duties.

      clip_image013

      Deployment

      And finally, a server that is on-premises builds and deploys the whole system, every night. The build system is automated, and Azure REST APIs enable deployment. The function is key in protecting the integrity of the system by only allowing only the build scripts to perform the tasks. No one physically should have the permission rights to build and deploy manually.

      clip_image014

       

      References

      Azure Blob Storage

      How to use the Windows Azure Blob Storage Service in .NET

      Azure Caching

      Cache

      Azure Cloud Services

      Cloud Services

      InstanceInputEndpoint

      WorkerRole Schema

      Azure PowerShell

      Windows Azure PowerShell

      Azure table storage

      What is a Storage Account?

      Azure SQL Database

      SQL Database

      TFS Online

      Visual Studio Online

      Visual Studio

      Visual Studio

      Table-valued parameters

      Batching Techniques for SQL Database Applications in Windows Azure

    Page 6 of 99 (990 items) «45678»