Faculty Connection is an online set of real-world resources and shared peer knowledge, the goal of the Faculty Connection site is to put relevant and applicable tools and information at the fingertips of technology educators.
The UK Academic Team is responsible for offering IT students and faculty members free access to software, for enhancing knowledge and skills by providing curriculum materials and other learning opportunities, for helping students achieve their dreams by organizing an international competition, and finally for assisting last year students through career resources and job opportunities at our customers and partners.
With this blog we want to inform you on our latest initiatives.
Enjoy reading and stay tuned!
With the release of Unity 4.2, you can now take your Unity games and quickly port them to Windows Phone 8 and extend your reach to Windows users.
Getting started building a Windows Phone 8 game with Unity
To develop, compile and submit a Unity game to the Windows Phone store, you will need:
• Unity 4.2 . Either the Unity free version or Unity Pro will work. The add-ons to publish to Windows and Windows Store are free, even for Unity Pro users.
• Windows Phone SDK 8.0 The WP8 SDK includes a stand-alone version of Visual Studio Express 2012 - if you already have Visual Studio Premium or Ultimate, the SDK will work as an addin and you can continue to use your version-.
• Windows 8.0 or later. If you do not own a Windows 8 license, you can get a 90-day evaluation version. If you are running Mac OS X or will install on Apple hardware, check different options for installing using Boot Camp, VMWare , or Parallels.
• Windows Phone developer account. This is needed to “unlock” your phone so you can side load your game for developing and testing. It will also be needed to submit your game to the Windows Phone store.
• Windows Phone 8 device. In Unity 4.2, deploying and debugging to the Windows Phone emulator is not supported, so you will need a phone. Once you have a phone and your developer account, follow these instructions to register your phone for development.
Targeting a new platform always requires a few tweaks, such as using a few platform specific APIs (e.g. in-app purchase or application life cycle) and tailoring the game to the device’s hardware capabilities (e.g. a back button).
To create your game, you will still be using the Unity IDE. This will feel very familiar and keep your productivity high. That said, there is a significant difference that you should keep in mind: When running the game within Unity, it will run using the Mono run-time; however, once you build for Windows Phone platform and deploy to the phone, you will be running in the .NET for Windows Phone run-time.
Here are a few tips for dealing with this “dual run-time” environment:
1. If including script files that will run in Unity, use the #if UNITY_WP8 pre-processor directive to refer to code that should not run inside Unity.
2. For plugins, include Unity plugins to be used in the Unity editor in the Assets/Plugins directory and include the run-time plugins for Windows Phone in the Assets/Plugins/WP8 folder.
3. Make sure you test your game thoroughly on a device. If you are referencing a Mono API that is not on Windows Phone, it will work fine in the Unity player, and throw an exception on the phone.
4. Unity uses the Mono compiler to generate phone assemblies, as such you may find that once in a while you will call a Mono API that is not in phone and even the compiler (when you build for phone) will not catch it. These errors will lead to exceptions when running on the phone. A good tool to validate an assembly’s portability to Windows Phone is http://scan.xamarin.com. You should extend this practice of validating your assemblies to compiled plugins. If you purchase a plugin that ships as a binary, validate it to make sure it uses only Windows Phone APIs.
If you find errors or missing Mono APIs that you are using in your game, you should look at the .NET API for Windows Phone reference site to find alternates.
Windows Phone renders their UI using XAML. This infrastructure can be useful if you want to have UI that is not in your Unity game (such as a splash screen or ads). XAML UI and Unity UI can compose seamlessly. The way this composition works is via the DrawingSurfaceBackgroundGrid control. This control uses Direct3D to render what is effectively the background to the whole screen. Unity renders your game against this surface using hardware accelerated Direct3D. For more details on XAML + Direct3D composition, refer to the XAML and Direct3D apps for Windows Phone 8 write-up on MSDN.
The graphics composition with via the Unity engine will all be transparent to you. It is where you mix and match that you will need to remember these four details:
1. Within your app, you can include XAML UI controls and widgets (such as an ad control, buttons, etc.) that compose visually with your game.
2. If you add XAML UI, this will be in front of your game since your game is rendered as the background of the scene.
3. To maximize compatibility across screen sizes, XAML content is scaled. XAML content is 480 wide, and then scaled. [So on devices with 1280x768 resolution, Unity will see this resolution and XAML content will be 480x800, scaled 1.6 times. If you are trying to align a pixel-perfect composite of a scene that uses XAML and Unity content, you will need to scale down your Unity content. You can get the scale from the Appication.Current.Host.Content.ScaleFactor property.
4. XAML UI runs on a different thread than Unity, so you will need to dispatch messages to the right thread in order to access the respective UI components for each technology:
To tweak XAML UI from a Unity callback, use this:
1: Dispatcher.BeginInvoke(() =>
3: //access XAML UI elements here..
To call from within XAML UI thread onto the Unity thread, use:
1: UnityApp.BeginInvoke(() =>
3: //access Unity objets here..
Windows Phone games must declare some of the resources or APIs they will consume.
This is done via declarations in the application manifest (WMAppManifest.xml). If you are making network requests, accessing sensors, using push notifications, etc. you will need to declare these, else your app with get exceptions or failures with access denied.
Everything you need to know about capabilities is in the capabilities documentation page. Review that page and double click on the WMAppManifest.xml document in your Visual Studio project to declare the resources you will need; there is no coding required for any of these.
Process Lifecycle Management
The Windows Phone application model has one foreground app (the one that is visible) that has access to most of the OS resources (memory, CPU, networking); to enable fast app switching, the OS does keep recently used apps that the user has not explicitly closed in memory. All of this app model is explained to great detail in the “App activation and deactivation for Windows Phone” documentation.
For games where you are saving state as early as possible, the default mappings to Unity events should work well. If you want to optimize further, all these events are in App.xaml.cs and the default Unity generated code is subscribing to them, you can add extra logic in the event handlers on the C# side, and use a plugin to communicate with your game code.
Windows Phone 8 has a detailed minimum hardware spec that all devices must meet; you should expect high-degree of consistency across the devices.
Hardware acceleration with programmable GPU. Windows phone uses Direct3D with feature level set to 9_3. MSDN has a great table of the supported features by level. The two biggest take-aways to notice are shader model level 2 and max texture size of 4096.
Windows phone 8 devices come in three resolutions: 480x800(WVGA), 768x1280 (WXGA) and 720x1280(720p). To find the resolution of your device, you can query the Screen.width and Screen.height properties within your Unity scripts; you can then scale appropriately within the game. For static assets outside the game (tiles, splash image, etc.) supplying assets for the WXGA resolution often suffices, Windows Phone will scale these.
Memory comes in multiple configurations: 512 MB of RAM for the WVGA devices, and minimum of 1GB RAM for the 720p devices. The newest phones such as Nokia 1020 are up to 2GB.
The OS limits how much memory a single application can consume; for lower memory phones this is around 150MB for a single app, and it goes up to around 380MB for higher memory phones. There are capabilities you can declare in your manifest to opt into specific memory behaviours and to opt out of running on low-end devices.
The default Unity projects opt into the ID_FUNC_EXTENDED_MEM capability, which says your game will run in a lower memory device, getting up to 180 MB. You can opt out of lower memory devices by using the ID_REQ_MEMORY_300 capability; learn more about the limits and the capabilities from the App Memory Limits documentation.
Accelerometer is available on all phones and directly accessible from Unity APIs.
Magnetometer and gyroscope are optional on the hardware on the phone. Compass APIs are not implemented in 4.2, but they are in the upcoming 4.3 release.
Hardware Back button. All Windows Phones have a dedicated back button and there are specific guidelines on what an app should do when the back button is pressed:
• If you have implemented navigation within your app, pressing the back button should go back to the previous step in your navigation.
• If you are inside a modal dialog (e.g. settings or achievements, etc.) pressing back button should dismiss the dialog.
• If you are not in a dialog and you are at the root of the navigation game (or you do not have navigation in your game), pressing the back button should exit the game.
To handle the back button, use the same mechanism as android: listen for the Escape key.
Note that proper handling of the back button is a certification requirement. If you do not handle it, you will fail certification. The default code exported from Unity does not handle it, they do the work to suppress it, and expect you to handle Escape key. If you do not want to waste cycles on every update listening for the Escape key you have a game with a single screen and no modal dialogs where the back button would always exit the game, you can comment out the e.Cancel assignment from the
1: BackKeyPress event handler in MainPage.xaml.cs
2: private void PhoneApplicationPage_BackKeyPress(object sender,CancelEventArgs e)
4: //e.Cancel = UnityApp.BackButtonPressed();
As any mobile platform, performance is important and you should test for it. Most of the standard Unity guidance on optimizations for mobile devices applies. Most games should not need platform specific optimizations (outside of tweaking visual features to the GPU capabilities on phone). For those looking to get every drop of performance, interop cost on Windows is a bit higher than on Mono. You need to be smart about crossing the boundaries from your script (C# or UnityScript) to the unity engine (which is written in native code).
Unity support for Windows Phone is still growing so not all APIs have been ported, there is only a few missing,
• Compass support is not in Unity 4.2
• Location services is not in Unity 4.2
• Webcam support is not in Unity 4.2
• Microphone support is not in Unity 4.2.
• WWW is implemented but multiplayer networking APIs are missing. You can used .NET APIs or third party libraries (e.g. photon) as an alternative.
• GPU profiling is not available yet.
• Application.OpenURL is not implemented. You can use the Windows Phone WebBrowserTask for this.
Enhancing your game with some of the Windows Phone platform features
The Windows Phone Start screen is a signature and highly praised feature in Windows phone. Tiles are the ‘first impression’ your users will get about your app; when used effectively, tiles can be a differentiator that drives continuous engagement to your game.
Anyone shipping a game for Windows phone should read the introduction to tiles for Windows Phone and the tile design guidelines for Windows Phone.
At a minimum, your game should have beautiful tile that meets the design guidelines on all possible sizes – tiles come in 3 sizes: 159x159 (small), 336x336(medium) and 691x336(wide).
To configure and include the tiles for your app, you must use Visual Studio’s manifest editor and include the images in your VS project.
Once you have a beautiful static tile, consider how to “invite” your users to come and play often. If you have a turn-based game, you can use the tile to notify the user of their turn; if you have a game that can start at any level, let the user create a secondary tile that lets’ them pin their favorite level and start there every time. If you have any server-side features (high scores from peers, special offers, etc.) use Windows phone push notifications to let the user know about your offers or any other relevant data that invites your user to play a game. You can also do local notifications, and scheduled tiles. There is a lot of different options to keep your start screen alive.
Unity does not include APIs for tiles and since Unity uses the Mono compiler, you can’t just include a script in your project to access tiles (the compiler won’t be able to resolve this), you must do a plugin and compile it using Visual Studio. For details on the tile APIs for Windows Phone, refer to the ShellTile class.
A few seconds will pass between a user tapping to launch your game, and the Unity engine rendering it to the screen. Windows Phone allows you to configure an image that the OS will show between the time the user launches your app and when XAML UI is rendered to the screen. This image is a JPG and you can configure different sizes for the different phone resolutions:
Image size in pixels
Filename (you must use)
You can also just include a single image called SphashscreenImage.jpg, this is what the default Unity builds do; if you are shipping a single image, make it the WXGA size, the OS will scale appropriately.
The Unity 4.2 Player Settings dialog does not allow you to override the Splash Image with your own, so you must configure it in Visual Studio. Instructions on where to copy the images to and what resolutions to use are in this How to create a Splash Screen walk-through.
Having a splash screen is a must-do, but it is usually not enough. Windows Phone only shows the splash image while the app is getting started and once it is ready to show XAML UI, it transitions into this XAML UI. For some games, there are still a couple seconds between that and your Unity UI. To get around this, you can just edit your XAML to display your splash image (or any other UI you want to display) until Unity is ready. For details on how to accomplish this, look at the “Extending your splash image” in the common tasks section below.
Windows Phone offers different options for monetizing your game.
Beyond the one-time purchase of your game, Windows Phone offers trials (that you would need to convert to a full purchase), in-app purchase for durables and consumables and advertising.
To access the in-app purchase APIs you will need to write a Unity plugin. MSDN has a great overview of the in-app purchase APIs, most concepts will feel ‘familiar’ for those who have implemented in-app purchase in other platforms. The only ‘quirk’ you will encounter is that Windows Phone does not have a staging environment to test in app purchase. There is a Mock API library that you can use for your development; if you feel that testing the in-app purchase APIs (not just the mock library) is absolutely required before submitting to the store, then do a beta for your game. This would allow you to test inapp purchase using the real APIs before you submit to production.
If you prefer to purchase a plugin instead of writing one, here are vendors that have plugins. RobotoWP for Windows Phone , BitRave and Prime31 have Microsoft Store plugin and lots of other useful Windows Phone and Windows store plugins such as Microsoft ads plugin, and an essential plugins that includes a lot of sharing tasks
Submitting to the store
To submit to the store, you will need your Windows Phone developer account and a licensed version of Unity. The trial version of Unity, will produce a water mark in the build that says “development build” on the bottom right of your game, and this will not pass certification. The Unity addins for Windows Phone are free for Unity basic and even Unity Pro users, so just contact Unity to get your free license.
When you are ready to submit to the store, follow these steps.
1. Check out the App certification requirements for Windows Phone 2. Become familiar with Windows Phone app product submission process.
3. Run your app through the Windows Phone Store Test Kit. The Windows Phone Store test kit is a suite of automated tests and manual tests for your game. The kit will identify and help you fix issues that Microsoft testers will find during certification; by finding them early, you will save a lot of time. The store kit can be executed from within visual studio (under the project tab), this walkthrough gives you step-by step- instructions and details on running the kit.
You will be tempted to just run the automated tests and ignore the manual ones; this is a bad idea; you can learn a lot about the platform and about making your game better from looking at what the Microsoft certification folks are testing for; give the manual tests a try and see how your game fares.
4. We recommend you go through a beta submission. More details at the “Beta testing your app” page , on MSDN
5. Submit your master configuration. Unity will create a debug, release, and master configuration for your visual Studio project. Make sure you submit the master, not the release one.
Other useful references
• Unity’s Windows Phone 8: Getting Started guide is a must read.
• The getting started with Windows Phone will walk you through downloading the tools, registering your phone for development (aka unlocking the phone) and writing a basic app that walks you through Visual studio project structure.
• The Windows Phone SDK samples collection has hundreds of coding samples to accomplish specific tasks.
Unity has instructions on debugging with visual studio.
Unity has instructions on profiling Windows phone apps
Microsoft Research is soliciting proposals for the use of Windows Azure in research.
Microsoft Research welcome research proposals from any branch of scholarly activity. To qualify, applicants must be affiliated with an academic institution or non-profit research laboratory. In addition to individual investigator projects, we are interested in projects that will support access to services and data of value to a collaboration or community. Winning proposals will be awarded large allocations of Windows Azure storage and compute resources for a period of one year.
We will periodically announce additional special-opportunity RFPs on specific cloud research topics. These topics will include community research data services, streaming instrument data to the cloud, machine learning in the cloud, large-scale image analysis, environmental science, astronomy, genomics, and urban science.
Your proposal should not exceed three pages in length. It should include resource requirement estimates (number of core, storage requirements, and so forth) for your project.
Proposals will be evaluated and awards announced six times a year. The first deadline for proposals is October 15, 2013, and results will be announced within two weeks after that date. The next deadline is December 15, 2013, and on the fifteenth of every other month after that.
“Science is at an inflection point where the challenges of dealing with massive amounts of data and the growing requirements of distributed multidisciplinary collaborations make moving to the Windows Azure cloud extremely attractive.”
Windows Azure for Research Microsoft Research is pleased to announce a new initiative to help the research community use the cloud to advance scientific discovery.
Three years ago, Microsoft Research partnered with researchers to experiment with cloud computing on Windows Azure. The results from these early efforts, many of which are described on our website have been outstanding.
These pioneering projects have cut across disciplines, from bioinformatics to ecology, social network analysis, civil engineering, mobile computing, natural language processing, and more. Read More
If your Institution is in interested in teaching Cloud services, in its Under Graduate Programmes. See http://www.windowsazure.com/education for FREE Azure educator and student offerings.
This week I have been at Campus Party in the TheO2 which is pretty specular location for any event. During the week I have been discussing apps and game development with 1000s of students. One of the most popular questions I have had was what are the to main 8.1 changes? This lead into lots of discussions around the fact that the snap view is optional and the default view is 500px. The fact that there are 2 more tiles sizes, and the search capability is in app search and much smarter and finally there are a number of new controls.
So here a quick summary of all the facts and resources if you have questions about any of the above.
· Windows 8.1 Preview http://windows.microsoft.com/preview
· Windows 8.1 Feature Guide http://msdn.microsoft.com/library/windows/apps/bg182410
· Windows 8.1 UX/UI http://msdn.microsoft.com/en-us/library/windows/apps/bg182890.aspx
· Windows 8 UX Design Jump Start (MVA) http://www.microsoftvirtualacademy.com/training-courses/windows-8-ux-design-jump-start
· For further design information http://design.windows.com
Some useful sessions to watch from Build.
· Designing and Building User Interfaces for Windows - http://channel9.msdn.com/Events/Build/2013/2-168
· Upgrading Windows 8 Apps to Windows 8.1 - http://channel9.msdn.com/Events/Build/2013/3-077
· Beautiful Apps at Any Size on Any Screen - http://channel9.msdn.com/Events/Build/2013/2-150
· What's New in XAML - http://channel9.msdn.com/Events/Build/2013/2-164
· What's New in WinJS - http://channel9.msdn.com/Events/Build/2013/2-165
· Building Apps that Work Together - http://channel9.msdn.com/Events/Build/2013/2-010
· Building Apps That Integrate with People and Events - http://channel9.msdn.com/Events/Build/2013/3-007
· Design and Build a Great Search Experience in Your App - http://channel9.msdn.com/Events/Build/2013/3-144
· Alive with Activity: Tiles, Notifications, and Background Tasks - http://channel9.msdn.com/Events/Build/2013/3-159
· Monetization Opportunities for Windows Store Apps in Windows 8.1 - http://channel9.msdn.com/Events/Build/2013/3-121
· First Impressions Matter: Delighting Your User from the Moment They Click “Buy" - http://channel9.msdn.com/Events/Build/2013/2-095
The Windows Azure HDInsight Service Preview has been upgraded and is now integrated with WindowsAzure.com
The HDInsight preview that was hosted on this site (hadooponazure.com) has moved to be a fully integrated, into the windowsazure.com portal. To learn more about the new HDInsight go here.
The service includes a number of enhancements and features ranging from simplified cluster deployment, performance & robustness upgrades, the ability to deploy a cluster of up to 40 nodes and more. A number of tutorials and walkthroughs are available here.
Here is quick walkthrough
1. To sign up, log into your Windows Azure account at http://www.windowsazure.com. At the bottom of the portal, click on New (+).
2. Then click on DATA SERVICES followed by HDInsight. Use the preview program link to navigate to sign up page.
At the Preview features page, also accessible from https://account.windowsazure.com/PreviewFeatures/, click on try it now next to Azure HDInsight Preview. Please be warned that this might take up-to a few days.
Getting Started and more Learning Content
https://github.com/WindowsAzure-TrainingKit/PRESENTATION-WindowsAzureHDInsight download using the zip link.
Getting to Grips with using HDinsight Hands-on Lab
MSDN Channel 9 Online Video Series
Have you joined MVA?
MVA membership is FREE and you have access to over 200 expert-led courses across more than 15 Microsoft technologies, including Windows Server 2012, Windows 8, HTML5, C# App Development, and others.
You can develop a personal learning path and get professional certified and skilled whilst undertaking your school, college or university education or simply keeping up to date or developing your current career.
Get started with your individualized learning path today:
1.Select a topic from the MVA course list, register for an interactive Live Event, or choose one of our most recently added courses: Here a sample of some of the available courses
Windows Server 2012 Training: Technical Overview
System Center 2012: Configuration Manager
2. Take the module self-assessment to test your knowledge and earn points.
3. See how you stack up against other students across the MVA community.
4. Update your MVA profile to receive program updates, including new course availability.
Use MVA to help you stay current on the technologies that are important to you securing your perfect career.
MVA Quick Links:
Find a Course
Register for a Live Event
View My Dashboard
See Top Students
Sign Up for MVA Updates
As a student you get a DreamSpark membership for FREE which give you access to tools like Visual Studio Professional and a membership in the Microsoft Dev Center you can submit applications for publication to all users of Windows Phone.
Windows Phone is the best-designed mobile operating system with the best developer platform and its FREE and easy for student and academics to get started on the platform with FREE Teaching and learning resources at Microsoft Faculty Connection including a complete Windows Phone curriculum.
Windows Phone has seen one of the strongest consumer momentum,growing at a rate 6 times faster than the overall Smartphone market according to our internal analysis of available data.
So if your interested in beginning to develop a portfolio of real apps then here are some outstanding resources to get you started, based on your skill level.
1.Windows Phone App Studio is a great tool that makes developing Windows Phone applications easier for beginners. In fact, some developers have gotten up and running on it in as little as 10 minutes.
2.If you’re new to traditional software development, Windows Phone 8 Development for Absolute Beginners is an easy-to-follow, 35-part course that takes you from beginning to end in building two completely Store-worthy apps.
3. Experienced developers can learn the ropes of Windows Phone development in our fast-paced, demo-rich online course, Windows Phone 8 Jump Start.
You’ll also find ways to have some fun with your app development, in Nokia’s DVLUP program. There, the apps you submit help you complete challenges and earn XP (experience points) you can redeem for rewards — everything from gift cards to the latest Nokia Lumia devices. Terms and Conditions of DVLUP apply. We look forward to seeing your first app so please let us know via the Microsoft UK Student facebook group or if your an academic via our Faculty Connection LinkedIn Group.
So get your DreamSpark subscription and FREE Microsoft Dev Center account, and develop a portfolio of applications on the fastest-growing smartphone platform.
For the past few months I have been having a good play with Project Spark and been really impressed with what can be achieved.
I am really impressed how easy kids can pick this up and make some beautiful games.
The experience and Project Spark got shared more widely at GamesCom Europe and here is a video of a great walkthrough demonstrating the power of Project Spark
If you simply want to inspire your kids? Encouraging them to go into a STEM subjects or to simply get into game development then the release of Project Spark will be a great starting point.
So if your a teacher at school, college or University and are interested in Project Spark join the following linkedin group and keep an eye out for announcements. http://www.linkedin.com/groups/Microsoft-Faculty-Connection-UK-3829706
A well-designed and built Windows Phone 8 app can be a great start for building a Windows 8 app. You can leverage the same programming language skills like C# and XAML, and powerful development tools, such as Visual Studio 2012, to accelerate your development, testing and publication time. By building apps for both platforms, you’ll increase your opportunity to reach more customers in over 190 markets.
We’re making it easy for you to get started with this collection of our best guidance to take advantage of the shared core.
Here are some key Resources and Guidance
Maximize code reuse when building for Windows Phone 8 and Windows 8
Windows 8, Windows Phone 8: Building for Both
It’s the full suite, not a trial version! So start building apps, games and sites right away in HTML, C++, C#, Ruby, Java and more.
No cost. No catch. Start downloading today at dreamspark.com/student
You’ll find everything from student app contests to coding camps, tutorials, expert help and free resources to get your first Windows app built and published.
Want to know more about DreamSpark download these datasheets
DreamSpark Faculty DataSheet
DreamSpark Institution DataSheet
DreamSpark Student DataSheet