Jump to content

How to get started in VR development: Difference between revisions

Neo222 (talk | contribs)
No edit summary
Acro (talk | contribs)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<noinclude>{{see also|Developer Resource}}</noinclude>This page serves as a jumping-off point for new developers to find any resources they might need along their path to learning to make virtual reality experiences.
<noinclude>{{see also|Developer Resource}}</noinclude>This page serves as a starting point for new developers to find any resources they might need along their path to learning to make virtual reality experiences.
<includeonly>=</includeonly>==1. Learn about the hardware==<includeonly>=</includeonly>
<includeonly>=</includeonly>==1. Learn about the hardware==<includeonly>=</includeonly>
Ask yourself: do you want to develop for a computer-driven headset like the Vive, or are you more interested in mobile applications such as GearVR or Google Cardboard? If you don't already own your hardware of choice, do some research and think about what would be best for both your target market and most practical to develop on. If your idea requires motion controls or high-end graphics, stick to computer-driven VR. A list of currently available hardware that is supported by Unity, Unreal, and VR web implementations:
Ask yourself: do you want to develop for a computer-driven headset like the Vive, or are you more interested in mobile applications such as GearVR or Google Cardboard? If you don't already own your hardware of choice, do some research and think about what would be best for both your target market and most practical to develop on. If your idea requires motion controls or high-end graphics, stick to computer-driven VR. A list of currently available hardware that is supported by Unity, Unreal, and VR web implementations:
Line 8: Line 8:
**[https://developer.oculus.com/documentation/ Oculus Documentation Pages]
**[https://developer.oculus.com/documentation/ Oculus Documentation Pages]
**[https://rifty-business.blogspot.com/ Oculus Rift in Action], a blog about designing for the Rift
**[https://rifty-business.blogspot.com/ Oculus Rift in Action], a blog about designing for the Rift
*'''[[OSVR HDK 1.4]]''', $299 - no motion control
* '''[[OSVR HDK2]]''' - $399
*'''[[Razer Hydra]]''', $599 - general-purpose wired motion tracking controller for PC
*'''[[Razer Hydra]]''', $599 - general-purpose wired motion tracking controller for PC


<includeonly>=</includeonly>===Mobile VR===<includeonly>=</includeonly>
<includeonly>=</includeonly>===Mobile VR===<includeonly>=</includeonly>
(can use a smartphone as HMD)
(can use a smartphone as an HMD)
* '''[[Gear VR]]''', $99
* '''[[Gear VR]]''', $99
** [http://learn.vrdev.school/courses/gear-vr-developer-mini VR Dev School's Gear VR Mini Course for Unity]
** [http://learn.vrdev.school/courses/gear-vr-developer-mini VR Dev School's Gear VR Mini Course for Unity]
Line 18: Line 18:
** [https://www.youtube.com/watch?v=rNjDsNYvgfk E4 Developer Livestream: Up and Running with Gear VR]
** [https://www.youtube.com/watch?v=rNjDsNYvgfk E4 Developer Livestream: Up and Running with Gear VR]
* '''[[Google Cardboard]]''', available as cheap as free
* '''[[Google Cardboard]]''', available as cheap as free
* '''Google's [[Daydream View]]''' - $79


<includeonly>=</includeonly>===Web VR===<includeonly>=</includeonly>
<includeonly>=</includeonly>===Web VR===<includeonly>=</includeonly>
Line 24: Line 25:
* '''[[Vizor]]''' is a web app that allows you to construct 3D scenes and view them across numerous platforms, including from mobile devices. Although it isn't as powerful as a game engine or open-source web platform, it is very straightforward and a great way to start creating in VR without an expensive headset. The [http://blog.vizor.io/ Vizor blog] has several tutorial posts.
* '''[[Vizor]]''' is a web app that allows you to construct 3D scenes and view them across numerous platforms, including from mobile devices. Although it isn't as powerful as a game engine or open-source web platform, it is very straightforward and a great way to start creating in VR without an expensive headset. The [http://blog.vizor.io/ Vizor blog] has several tutorial posts.
* '''[[Responsive WebVR]]''' is a cross-platform, web-based VR platform [https://github.com/borismus/webvr-boilerplate available for modification on GitHub]. You'll probably want to brush up on [[Three.js]].
* '''[[Responsive WebVR]]''' is a cross-platform, web-based VR platform [https://github.com/borismus/webvr-boilerplate available for modification on GitHub]. You'll probably want to brush up on [[Three.js]].
<includeonly>=</includeonly>===Unreleased, but preliminary development possible===<includeonly>=</includeonly>
* '''[[Google Daydream]]''' - unavailable but supported by UE4 now, Unity support coming in the summer
* '''[[OSVR HDK 2]]''', $399 - will be released in July; no announced motion control


<includeonly>=</includeonly>==2. Learn about the software==<includeonly>=</includeonly>
<includeonly>=</includeonly>==2. Learn about the software==<includeonly>=</includeonly>
Designing for VR is much like designing videogames, as they are both 3D interactive experiences. The difference between designing for VR and designing for traditional video games is that special considerations must be made for the nuanced experiences of presence and immersion, nonlinear storytelling, locomotion which reduces motion sickness, and graphical optimization.
Designing for VR has a lot in common with designing traditional videogames, as they are both 3D interactive experiences. The difference between designing for VR and designing for traditional video games is that special considerations must be made for the nuanced experiences of presence and immersion, nonlinear storytelling, locomotion which reduces motion sickness, and graphical optimization.


Most VR developers opt to use a game engine (unless they're developing for WebVR, discussed below), and should decide which they want to work with early on. Two most popular are [[Unreal Engine 4]] (UE4) and [[Unity]]. Both of these engines are very capable and will become the tool that you rely on most in your development; both have very active communities with vast resources out there to help you. These are freely available software suites capable of managing 3D environments, importing custom assets (such as 3D models, imagery, sounds, video), and programming interactivity or gameplay. Most useful of all, there are an insane number of YouTube tutorials and online guides for both engines, both official and fan-created.
Most VR developers opt to use a game engine (unless they're developing for WebVR, discussed below), and should decide which they want to work with early on. Two most popular are [[Unreal Engine 4]] (UE4) and [[Unity]]. Both of these engines are very capable and will become the tool that you rely on most in your development; both have very active communities with vast resources out there to help you. These are freely available software suites capable of managing 3D environments, importing custom assets (such as 3D models, imagery, sounds, video), and programming interactivity or gameplay. Most useful of all, there are an insane number of YouTube tutorials and online guides for both engines, both official and fan-created.
Line 84: Line 81:
* Fuseman's '''[https://www.youtube.com/watch?v=NYoqUomgTGU Introduction to VR UI in Unity]''' livestream tutorial, which explains concepts useful beyond Unity.
* Fuseman's '''[https://www.youtube.com/watch?v=NYoqUomgTGU Introduction to VR UI in Unity]''' livestream tutorial, which explains concepts useful beyond Unity.
* '''[https://www.youtube.com/watch?v=cyqgKZ7O-Sc&feature=share UE4 HTC Vive - How to interact with a menu using Motion controllers]''' on YouTube
* '''[https://www.youtube.com/watch?v=cyqgKZ7O-Sc&feature=share UE4 HTC Vive - How to interact with a menu using Motion controllers]''' on YouTube
* '''[[VR Sickness]]'''
* '''[[VR sickness]]'''


This requires some kind of scripting language. Unreal Engine 4 has an intuitive, flowchart-like scripting system called '''Blueprint Visual Scripting''', and if you're not yet comfortable programming, this may be useful for you to get started. Check [[here]] for a general introduction to Blueprints. Blueprints are powerful enough to do entire projects without having to write a line of code (though you'll be using many programming concepts). Otherwise, both Unreal and Unity have a native programming language. For Unreal, it's '''C++''', and for Unity, it's '''C#'''. Many people who are aspiring VR devs have little to no programming experience, so this step can be particularly daunting. We want to help you get past this hurdle also, so we'll be updating this wiki with resources that will teach you the fundamental programming concepts needed for VR dev.
This requires some kind of scripting language. Unreal Engine 4 has an intuitive, flowchart-like scripting system called '''Blueprint Visual Scripting''', and if you're not yet comfortable programming, this may be useful for you to get started. Check [[here]] for a general introduction to Blueprints. Blueprints are powerful enough to do entire projects without having to write a line of code (though you'll be using many programming concepts). Otherwise, both Unreal and Unity have a native programming language. For Unreal, it's '''C++''', and for Unity, it's '''C#'''. Many people who are aspiring VR devs have little to no programming experience, so this step can be particularly daunting. We want to help you get past this hurdle also, so we'll be updating this wiki with resources that will teach you the fundamental programming concepts needed for VR dev.