
This guide contains basic links and recommendations that can serve as a starting point for you to master VR development.
1. We study equipment
Ask yourself: are I interested in developing for desktop devices, like the HTC Vive, or are I more attracted to mobile devices like the Samsung Gear VR or Google Cardboard? If you have not yet decided, then read the reviews and think about what is best to choose for your market. If your ideas require motion controllers or high-quality graphics, then focus on VR glasses connected to the computer. Models that today are supported by the Unity, Unreal, and Web engines:
Computer VR:')
Mobile VR: (a smartphone can be used as a base device)
Web-based virtual reality implementation: (a smartphone can be used as a base device)
- Mozilla development language A-Frame (both HTML and XML) for creating cross-platform VR applications. To understand how it looks, go to the site from your smartphone, turn off orientation lock and click the VR button that appears.
- Vizor is a web application that allows you to create 3D-scenes and view them on different platforms, including mobile devices. Of course, it has fewer opportunities than game engines or open web platforms, but it’s very simple and makes it easy to start learning how to create virtual reality without expensive devices. The blog has several introductory posts.
- Responsive WebVR is a cross-platform web tool available for modification . You might want to refresh it with Three.js .
Not yet released:- Google Daydream . Not available, but already supported in Unreal Engine 4, a preliminary technical version is available in Unity.
- OSVR HDK 2 , $ 399. Will be released in July, not mentioned motion controller.
2. We study software
The design for VR is very similar to the design of video games, since in both cases we are dealing with an interactive 3D experience. The difference is that in VR you need to pay special attention to the effect of presence, immersion, non-linearity of the narrative, non-nauseous movement and graphic optimization.
Most VR developers prefer to use game engines (unless they create for VR web, as described below), and from the very beginning they have to choose what to work on. The most popular engines are
Unreal Engine 4 (UE4) and
Unity . Both have very wide opportunities and are reliable tools. Around both formed active communities with numerous information resources. Both engines allow you to control the 3D environment, import your own content (3D models, images, sound, video), as well as program interactivity and gameplay. There are a huge number of tutorial videos on YouTube, and online tutorials created by both the authors themselves and fans.
Among VR developers, there is no generally accepted opinion that one of these engines is better than the other. Each has its own characteristics. UE4 is considered more optimized in terms of computing, gives a more reliable picture, but has a steeper learning curve. Unity was created at the expense of its capacity to create commercial games, but at the same time it remains more intuitive and effective for novice developers. Unreal Engine 4 can be downloaded and used for free, but the authors will have to detach quarterly 5% of the revenue from the game if it exceeds $ 3000. Unity has several versions of different cost, but you can stop at free Unity Personal. It is advisable to try both engines in order to understand which one suits you best, although it’s hard to be mistaken here, because you always get an excellent and powerful tool.
In addition to the game engines, you can turn to the development of interactive VR web pages. This can be done using the
Mozilla's A-Frame markup language, using JavaScript (look in
Three.js !), HTML5 and / or WebGL. Similar experiments are underway in
Chrome and
Mozilla . Web development allows you to display VR content directly on users ’smartphones, so you don’t need expensive additional hardware. Also, you do not have to compile or package the code, you can easily share your creations with friends. If all this seems too time consuming to you, you can start with the simplest editor of
Vizor VR scenes, which allows you to draw on a computer and view it from mobile devices.
After you decide on the engine or web application, you need to learn more about your choice. Start with the basics of the programming language your tool uses:
C ++ and
Blueprints Visual Scripting (UE4),
C # (Unity), or custom markup language for web applications. If you are developing for Android, then download
Android Studio and try to
deploy a training application . In the case of Google Cardboard and Unity, refer to the
Google SDK .
The
/ learnVRdev wiki has links and materials useful for those learning to use engines. It is better to get acquainted with the engine for some leadership, to better feel it, how to manipulate objects in space, and so on. Unity and Unreal have a built-in preview, so you can see at a glance what you did!
3. Create or find art materials.
So, you chose the engine and got a VR device. Now you need graphic content, audio materials, 3D models and animations to fill the virtual world. All this can be found on the net, from popular games (if you do not plan to sell your product), do it yourself or modify the finished materials. Remember that virtual reality requires the most realistic visual and sound design for close research, from different angles, even if the object is stylized or abstract.
3D models
Beginners have two options.
- The easiest: use openly available 3D models while you study other aspects of VR development. You can use the contents of the asset stores Unity and Unreal, or search on third-party sites. The beginner has a lot of new information in his head, so it’s better to simplify the learning process for yourself.
- Another option: learn how to make 3D models yourself. It's harder, but better in the long run. After all, over time, your projects will become more complex, and sooner or later you will need your own art materials.
Even if you decide to take ready-made sources, you may want to fix them in a 3D editor as a result. Fortunately, there are enough online resources for this. Professional tools can be used for a monthly subscription, comparable to the subscription fee for MMORPG. And there are online guides on all 3D modeling issues (primarily on
YouTube ). Use the search on each site! If you need better educational materials, you can subscribe to
PluralSight . A lot of useful information can also be found on Reddit, in discussions of various VR communities.
- 3D modeling:
- Autodesk's Entertainment Creation Suite . The application package (which includes Maya, 3ds Max, Motionbuilder and Mudbox, with native export to Unity and UE4) is available to “students” for free for three years. At the same time, no test for "students" is done. This package has everything you need to create professional models, textures, animations, and so on.
- Pixologic ZBrush (from $ 795, for students - discount). This application for creating 3D-sculptures, giving more creative freedom than traditional applications like Maya or 3ds Max. It allows you to create and process high-poly, photo-realistic models. The functionality is similar to Autodesk Mudbox.
- Blender . Free package opensource-applications for 3D-modeling, animation and game design. It has very wide possibilities, but it is much more difficult to master than commercial software.
- You can buy and download models and 3D scans on Turbosquid and Sketchfab sites .
- MODO Indie ($ 15 per month, or $ 300). A tool for 3D-modeling, coloring and animation, designed for game designers and amateur modeling.
- Speedtree ($ 19 per month). The application is useful for creating procedurally generated models of trees, plants and other branch structures. They can be extracted with all sorts of options for use in photorealistic landscapes.
Photogrammetry (3D scanning)
Like VR, three-dimensional photo scanning is another futuristic technology already available for use in cheap mobile solutions. Photogrammetry is the use of numerous photographs of real objects from different angles to build their models. Photos are imported into applications like
Agisoft Photoscan , or one of the many solutions from Autodesk, and based on them are generated detailed mesh models. Then, along with color / diffuse texture maps, they can be exported and used as a regular resource in the game engine. The whole process is well
shown on YouTube .
- Photogrammetry and 3D scanning
- Agisoft Photoscan (from $ 179). A set of applications for 3D scanning, where photos are used as a data source.
- Autodesk offers several different solutions , from free mobile and cloud ( 123D Catch ) to desktop ( Remake and Recap 360 ). It discusses the differences between different programs.
Audio and music
Working with sound effects in VR is not too different from working on music and effects in movies and traditional games. As in the case of graphics, you need to focus on realism and quality. The greatest degree of immersion is achieved by placing the sound sources relative to the position of the player, the direction of his gaze. In order for Unity and UE4 to function correctly in terms of sound, they will have to be configured.
4. Implement interactivity
Once you are familiar with the engine and prepare art materials, you will need to figure out how to make your project interactive. I highly recommend first reading about the principles of building UI and UX in virtual reality. Otherwise, your users may get sick of their eyes from bad stereoscopic rendering solutions, or they will be impressed. This can be avoided by simply discarding the text binding to the viewing field, or by placing the player’s camera while driving in a visible capsule (car, spacesuit, cab). And if you want to implement manual control, then I recommend doing everything as realistic as possible - your research and prototyping efforts will be rewarded with a sense of presence.
Useful resources for UI / UX in virtual realityYou will need to master a kind of scripting language. The Unreal Engine 4 uses an intuitive, schematic scripting system
Blueprint Visual Scripting . By the way, it will be useful for those who are not too confident in programming at all.
A general introduction to Blueprint , this system is powerful enough to make an entire project with it, without writing a single line of code (although you will use a number of programmer's techniques). In general, Unreal uses C ++, and Unity uses C #. Many of those who seek to enter VR development have very little programming experience, so this stage becomes especially difficult.
5. Some last tips
If you are an independent developer, remember -
it’s better to start small . When you master the basic things, you can move on to bigger ideas. But start better with the
most primitive project . Develop in stages, having created several projects, you will be able to storm more complex tasks much more confidently.