Home

Awesome

GitHub license GitHub contributors GitHub issues GitHub pull-requests PRs Welcome

GitHub watchers GitHub forks GitHub stars

XR Development for Beginners

Azure Cloud Advocates at Microsoft are pleased to offer a 8-week, 25-lesson curriculum all about Extended Reality (XR) development. Each lesson includes a written lecture, a post-lesson quiz, supplemental resources, and an assignment. Our project-based pedagogy allows you to learn while building, a proven way for new skills to 'stick'.

Teachers, we have included some suggestions on how to use this curriculum. If you would like to create your own lessons, we have also included a lesson template. We'd love your feedback via this form!

Students, to use this curriculum on your own, fork the entire repo and complete the lessons and activities. Another idea would be to form a study group with friends and go through the content together.

Find our Code of Conduct, Contributing, and Translation guidelines.

We welcome your constructive feedback!

A generous thanks to our authors Gustavo Cordido, Htet Htet June Han, and April Speight.

Unit 1: Introduction to Realities

This unit explains the differences between each of the realities that XR encompasses, which devices support each of the realities and how to make the choice as to which reality will work best based on the necessities of a project.

Objectives

Lessons

Assignment

Try and Review an XR App

Unit 2: Core Concepts

This unit covers foundational concepts necessary to understand developing for an immersive 3-dimensional environment. Some of these concepts include how to make digital objects behave like real ones and how to ensure that users are comfortable while interacting with an XR application.

Objectives

Lessons

Unit 3: Spatial Design

This unit explores the design process for creating XR apps and introduces the benefit of creating spatially aware objects.

Objectives

Lessons

Assignment

Design a Basketball Game App

Unit 4: Interactions

This unit introduces the basics of user-application interaction in XR. From hands and controller-enabled operation to gaze functions, XR offers a wide array of possibilities when it comes to interacting with digital objects and applications.

Objectives

Lessons

Assignment

Interactions for a Basketball Game App

Unit 5: C# Foundations

This unit serves as an introduction to programming using the C# (C Sharp) language. Although there are multiple languages that can be used in XR development, C# is one of the most commonly used due to its prevalence in the Unity Engine (which is the chosen engine for this curriculum).

Objectives

Lessons

Assignment

Create C# Logic for a Basketball Game App

Unit 6: Unity Fundamentals

This unit introduces the fundamentals of Unity development. Unity is a cross-platform development engine, which provides different avenues to develop XR applications and games. The Unit Activity starts the creation of the basketball game app.

Objectives

Lessons

Assignment

Create a Basketball Game App in Unity: Part 1

Unit 7: Create App Logic

This unit introduces how to use scripting to create logic for an app. This unit also explores additional Unity features such as the input system, the physics engine, and creating UI. The Unit Activity continues the creation of the basketball game app.

Objectives

Lessons

Assignment

Create a Basketball Game App in Unity: Part 2

Unit 8: Capstone Project

This capstone project serves as an opportunity to demonstrate what you’ve learned over the course of the curriculum. For your capstone project, develop an XR application to be deployed to your XR device of choice.

Assignment

Capstone Project

Offline access

You can run this documentation offline by using Docsify. Fork this repo, install Docsify on your local machine, and then in the root folder of this repo, type docsify serve. The website will be served on port 3000 on your localhost: localhost:3000.