VR Development Software

#TODO - link out to this page from Home, under "VR Development Software"... can be included under to main subheader, in the short summary describing "VR Development Software"

Things to Compare

Martin, optional second deliverable: results of comparison of Hello World implemented in Blender and Unity [table of numbers] 

Jacob, results of comparison of Hello World (Labyrinth) implemented in Unity and MinVR [table of numbers and narrative]

Charles, results of generating a full vr experience. 

Comparison of Labyrinth Project in Unity and MinVR (Jacob)

See the chart and lists below for detailed breakdowns.

If you're a beginner, don't use MinVR. Unity is a fairly powerful tool that is well-documented and easily ported to any HMD. Any programmer should be able to make their own programs in it in a matter of hours, with no installation headaches and few or no unexpected bugs. Any question is probably answered on Stack Exchange or Unity's own forums. Unity is perfect for a fun weekend project.

BUT, if you want to program for the YURT, or are a hardcore graphics programmer, you should use MinVR. MinVR lets you easily port your application to ANY VR experience, from Cardboard to Vive to the YURT with fairly little effort. Installation can be difficult for some people, but it is constantly getting better. People that are familiar with graphics programming won't have an issue writing code for it. But for someone trying to jump into game or VR development, the learning curve is extremely steep. This arguably makes it a more rewarding experience, and running a program in the YURT is extremely satisfying, but it is only for people that are serious.

I also experimented with A-Frame. Anecdotally it is significantly easier to create a world than either of the other two options, but it is difficult to get user input from Google Cardboard. It is the easiest to get started with and its documentation level is somewhere between Unity and MinVR, so it is a very reasonable choice for people that don't want to put in the work that Unity demands. That being said, I think it can accomplish less than Unity.

Unity

Challenges

Advantages

MinVR

Challenges

Advantages

Unreal Engine 4 (Charles and Jen) #TODO

Challenges 

Advantages

Disadvantages

Quick and Simple tasks

A-FRAME (KYLE)

Advantages

Challenges/Disadvantages

VIZARD (Amedeo)

Advantages

Challenges/Disadvantages

Unity (SteamVR Plugin v.s. Oculus Integration) (Brandon)

Before delving into the differences between the OVR and SteamVR plugins, it should be mentioned that there is much overlap between the two SDKs. Both have relatively sparse information on how to use either, and although both have various resources that are available to programmers who import either of the plugins, the lack of documentation on both leaves much for the programmers to figure out themselves.

Something else that should also be noted: 

SteamVR Advantages

SteamVR Disadvantages

Oculus Integration Advantages

Oculus Integration Disadvantages


As a final comment on the evaluation of Oculus Integration vs. SteamVR plugin, based on personal experience, and my understanding from working with both, I would strongly recommend programmers new to C# or Unity to work with SteamVR if they were hoping to program for Oculus or Vive; however, for a programmer with a more advanced understanding of C# and Unity, he or she might find that it is easier to actually pick up OVR, because the main trade off between both is that while SteamVR is easier to understand,the fact that there are many more scripts in the Oculus integration, and provided assets, gives programmers a deeper understanding upon working with the SDK.

Unity XR SDK vs Oculus Integration (OVR) (Jennifer)

Disadvantages of OVR

Advantages of OVR

-------------------------------------

Disadvantages of Unity XR

Advantages of Unity XR

Unity vs. Unreal Engine (Brandon)

For the Unity and Unreal Engine, my knowledge of the two engines is heavily skewed toward Unity; however, the following comparison between the two engines factored greatly into my decision to switch from working with Unreal Engine to working with Unity. As a side note, another reason that accounted for my decision to switch was the preference for C# in Unity over C++ in Unreal, as C# more closely resembles Java, a language I am familiar with. Also, although I list the Unreal Engine "Blueprints" as an advantage, I personally prefer pure code rather than a visual representation. The general feeling I had from comparing both engines was that Unity was more developer oriented, while Unreal was more artist oriented.

Unreal

Advantages

Disadvantages

Unity

Advantages

Disadvantages