Quickstart: Create a Game Development Virtual Machine using an ARM template

Create an instance of the Game Development Virtual Machine using an Azure Resource manager (ARM) template. Game Development Virtual Machines are cloud-based virtual machines preloaded with a suite of software and tools for game development. When deployed on GPU-powered compute resources, all tools are configured to use the GPU.

An ARM template is a JavaScript Object Notation (JSON) file that defines the infrastructure and configuration for your project. The template uses declarative syntax. In declarative syntax, you describe your intended deployment without writing the sequence of programming commands to create the deployment.

If your environment meets the prerequisites and you're familiar with using ARM templates, select the Deploy to Azure button. The template will open in the Azure portal.

Deploy To Azure

Visualize

Prerequisites

  • An Azure account with an active subscription. If you don't have an Azure subscription, create a free account before you begin.
  • To use the CLI commands in this document from your local environment, you need the Azure CLI.

Review the template

The template used in this Quickstart is from Azure Quickstart Templates.

You can view the details of ARM template JSON from this GitHub repository.

The following resources are defined in the template:

  • Microsoft.Network/publicIPAddress
  • Microsoft.Network/networkSecurityGroups
  • Microsoft.Network/virtualNetworks
  • Microsoft.Network/networkInterfaces
  • Microsoft.Compute/virtualMachines

Deploy the template with default parameters

To use the template from the Azure CLI, login in and choose your subscription. Then run the scripts below. This is a basic deployment with default Game Dev VM parameters. It deploys a Windows 10 VM with Unreal Engine 5.0.1 installed which has RDP as the remote connection method.

read -p "Enter the name of the resource group to create:" resourceGroupName && 
read -p "Enter the Azure location (e.g., centralus):" location && 
read -p "Enter the local administrator username:" adminName && 
read -s -p "Enter the local administrator password:" adminPass &&
echo "" && 
osType=win10 && 
engine=unreal && 
version=5_0_1 && 
templateUri="https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/application-workloads/azure-gamedev/gamedev-vm/azuredeploy.json" && 
az vm image terms accept --urn "microsoftcorporation1602274591143:game-dev-vm:$osType"_"$engine"_"$version:latest" && 
az group create --name $resourceGroupName --location "$location" && 
az deployment group create --resource-group $resourceGroupName --template-uri $templateUri --parameters administratorLogin=$adminName -p passwordAdministratorLogin=$adminPass -p osType=$osType -p gameEngine="ue_"$version && 
echo "Press [ENTER] to continue ..." && 
read 

Advanced deployment

For advanced configurations, additional parameters can be set to configure the Virtual Machine Size, Engine Version, or OS type.

read -p "Enter the name of the resource group to create:" resourceGroupName && 
read -p "Enter the Azure location (e.g., centralus):" location && 
read -p "Enter the VM size (e.g., Standard_Nv12s_v3):" vmSize && 
read -p "Enter the local administrator username:" adminName && 
read -s -p "Enter the local administrator password:" adminPass && 
read -p "Enter the OS type (e.g., win10 or ws2019):" osType && 
engine=unreal && 
read -p "Enter the Unreal Engine version (e.g., 4_27_2 or 5_0_1):" version && 
templateUri="https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/application-workloads/azure-gamedev/gamedev-vm/azuredeploy.json" && 
az vm image terms accept --urn "microsoftcorporation1602274591143:game-dev-vm:$osType"_"$engine"_"$version:latest" && 
az group create --name $resourceGroupName --location "$location" && 
az deployment group create --resource-group $resourceGroupName --template-uri $templateUri --parameters administratorLogin=$adminName -p passwordAdministratorLogin=$adminPass -p osType=$osType -p gameEngine="ue_"$version && 
echo "Press [ENTER] to continue ..." && 
read 

When you run the above command, enter:

  1. The name of the resource group you would like to create holds the Game Development Virtual Machine and associated resources.
  2. The Azure region location in which you wish to make the deployment.
  3. The username for the Administrative User.
  4. The password for the Administrative User.
  5. The operating system of the VM.
  6. The game engine (currently only Unreal Engine is supported, but more may be added in the future).
  7. The game engine version.

Review the deployed resources

To see your Game Development Virtual Machine:

  1. Go to the Azure portal.
  2. Sign in.
  3. Choose the resource group you just selected.

You’ll see the resource group’s information:

Screenshot of an Azure resource group containing a Game Development Virtual Machine

Click on the Virtual Machine resource to go to its information page. Here you can find information on the VM, including connection details.

Clean up resources

If you don’t want to use this virtual machine, delete it. Since the Game Development VM is associated with other resources, such as network interfaces, you will probably want to delete the entire resource group. You can delete the resource group in the portal by clicking on the Delete button and confirming. Or you can delete the resource group from the CLI with:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Next steps

In this Quickstart, you created a Game Development Virtual Machine from an ARM template. Now you can access this VM, explore the tools, and start your game development journey on Azure.