# Getting Started with VR

### Prerequisites

If you are new to Godot, I HIGHLY recommend checking out the resources here to get started to familiarize yourself with the engine or find a short mini series on YouTube.

Godot offers C# as well as their own GDScript and if you are looking to use C#, I would familiarize yourself with the engine first. possibly doing a GDScript to C# conversion for practice.

<p class="callout info">I recommend having a default "World" scene (Node3D) ready to go, with both a **WorldEnvironment** and **DirectionalLight3D** as children.</p>

The SCiL lab staff is always happy to provide guidance on getting started!


### A Simple Rig

To set up a basic VR rig, follow the official guide here:

[https://docs.godotengine.org/en/stable/tutorials/xr/setting\_up\_xr.html](https://docs.godotengine.org/en/stable/tutorials/xr/setting_up_xr.html)


### A Better VR Rig Configuration

I highly recommend updating your VR rig with the following from the official documentation. You will be better suited in the long run:

[https://docs.godotengine.org/en/stable/tutorials/xr/a\_better\_xr\_start\_script.html](https://docs.godotengine.org/en/stable/tutorials/xr/a_better_xr_start_script.html)

### Deploying to Android

Again, follow the documentation here: [https://docs.godotengine.org/en/stable/tutorials/xr/deploying\_to\_android.html](https://docs.godotengine.org/en/stable/tutorials/xr/deploying_to_android.html)

<p class="callout info">Read through available options and always fix warnings as they appear!</p>

### Caution Against Using Godot XR Tools

<p class="callout warning">You may find the following two articles: **Introduction to XR Tools** and **Basic XR Locomotion**. These articles are valid and are great for prototyping but I would caution against using them and consider designing your own implementation and use these articles for reference only.</p>

<p class="callout warning">In my experience, the **Unreal VR template** and **Godot XR Tools** provide resources to get started quickly but are often difficult/time consuming when overriding or creating custom functionality.</p>

### Where to go from here?

My suggestion is implement input for your hands/controllers. You can then begin with a basic grab interaction.

I would then look at considering teleport for locomotion. You can always use smooth locomotion, but there are some considerations when implemented.