Following the announcement of Microsoft Mesh, our Cloud Advocacy team received an abundance of requests for more information on how to get started with Mixed Reality. Fortunately, this is an area our Cloud Advocacy team specializes in helping the community! But for starters, what is Mixed Reality?
Mixed Reality is a blend of physical and digital worlds, unlocking the links between human, computer, and environment interaction. We think of Mixed Reality as a spectrum -- with the physical world on one end and the digital world on the other.
Image: Mixed Reality is the result of blending the physical world with the digital world.
You may often associate Mixed Reality with HoloLens. Although yes, you could use a HoloLens for Mixed Reality development, Microsoft Mesh is a device agnostic solution. This means that you have far more options as it relates to which device can be used to create your own Mixed Reality experiences. And as it relates to getting started with Mixed Reality, there's no device requirement beyond your computer! You can complete most simulations within the Unity editor.
So, where should you get started? Follow the concepts in the order presented for a major impact in how you learn. The concepts are presented in a manner which builds upon prior learned concepts. Already familiar with a concept listed below? Feel free to skip ahead!
Mixed Reality
For the true beginner, I'd first suggest getting started with our Introduction to Mixed Reality Learn module. This module provides you with a foundation in the core concepts, terminology, and design processes that are unique to mixed reality development.
Mixed Reality Design Principles
There's a wealth of design principles which you should become familiar with prior to creating any experience. Understanding how to design for Mixed Reality is a concept that shouldn't be taken for granted. You'll want to ensure that you're creating a comfortable, accessible, and inclusive experience. To get started with design principles, check out our Design documentation.
Language
Are you already familiar with C#? If not, then no worry! We have a Take Your First Steps with C# Learn module designed to help you establish a foundation of the C# programming language. Learning C# comes in handy when it's time to start Unity scripting. What's Unity? Don't worry, I'll cover that next.
Development Platform
What's this Unity thing I spoke of? Unity is a real-time development platform that's great for creating 2D, 3D, AR & VR experiences. Like learning any new technology platform, the learning curve can be relatively steep if you've never used the platform for development. Fortunately, Unity provides a Learn platform that's pretty helpful for getting familiar with the interface as well as Unity Scripting. You can also choose to focus on specific areas of Unity development if you're already familiar with the platform. My advice would be to start with learning how to create for 2D first and then transition to 3D. C# knowledge comes in handy here given that you'll use C# for Unity scripting.
P.S. I cover additional platforms in a post I wrote on Dev.to for Development Platforms for XR. Check it out to learn more about other platform options.
Windows Mixed Reality Development with Unity
At this stage, you're ready to dive into Windows Mixed Reality Development! However, there's a bit of set-up involved before you can start doing cool things with 3D models. Fortunately, we break down the steps for you in our Set up a Mixed Reality Project in Unity with the Mixed Reality Toolkit Learn module. This is a crucial step to getting started given that you must have your environment properly configured prior to working with our tools.
Mixed Reality Toolkit
The aforementioned Learn module leaves off with a brief introduction to the Mixed Reality Toolkit (MRTK). MRTK is an open-source, cross-platform development kit that provides a set of components and features used to accelerate mixed reality app development. You can sort of think of MRTK as a low code/no code tool for adding UX features to your experiences. Check out the MRTK documentation to learn more about its UX building blocks and most important, Spatial Awareness. Spatial Awareness is how you can make your holograms aware of what’s in your real-world environment.
Another P.S.: I created a YouTube video series on getting started with Spatial Awareness. Check out the GitHub repository for more information about getting started.
From here, the journey is wherever you'd like for your experience to go! We have two dedicated Azure mixed reality cloud services available if you'd like to try your hand at integrating these services into your apps:
- Azure Remote Rendering - Create an Azure Remote rendering session and render a 3D model
- Azure Spatial Anchors - Create a mixed reality experience with objects that persist their location across devices over time.
In addition, you could integrate many other Azure cloud services into your Unity project. For example, if you're interested in Azure Speech, we created a Learn module to help you get started with integrating speech translation into your app. I also created a video series that guides you through the steps of integrating a Bot created with the QnA Maker into your mixed reality app. To learn more about services support, check out our Azure mixed reality Cloud Services Overview.
And if you're ahead of the curve and want to get started with Microsoft Mesh, check out our Microsoft Mesh documentation -- and check back often for more updates!
As you continue your learning journey, you'll likely come across many more resources to help you get started with mixed reality. The best advice I could give you is to take your time and enjoy the journey.
Have any questions about getting started? Feel free to leave a comment below or come find me on Twitter @VogueandCode.
Happy Learning!