Virtual Reality (VR). These words call to mind images of movies from the 1980s and 1990s, such as characters such as The Lawnmower Man, people strapped into equipment that covers their entire bodies, and computers that take up entire rooms, as well as digital vistas that stretch forever and basic geometric shapes that were meant to simulate the real world. The term VR came about in the 1980s to refer to the systems of gloves and headgear that are used to interact with these computer-generated worlds. Since then, advances in electronics and digital displays have allowed for the creation of smaller, more powerful devices. In 2010, Palmer Lucky's discovery that mobile phone display technology had reached a high enough resolution to be used in VR led to the creation of the first Oculus Rift headset. This event would kick-off the technology arms race that has since given us the Oculus Rift, the Samsung Gear VR, the HTC Vive, and the new Windows Mixed Reality headsets. With the prices coming down every year, VR has found its way into the hands of 171 million users around the world.
For many of you, this book represents the first steps down the path to creating your very own VR title. You may have recently grown interested in getting started with the technology, or you might already have a complete design, and you are ready to begin developing. In either case, this book will lead you through the process of choosing your target hardware and audience, the unique design, locomotion, and gameplay concepts specific to VR, creating art for your virtual world, and finally the process of testing and prepping your game for distribution. Through the creation of our sample game, Server 17, we will discuss some of the problems VR developers face, such as optimization and how to help players deal with VR sickness.
In this chapter, we will cover the following topics:
- Why use Unreal Engine 4 for VR?
- What types of VR technology are available to developers?
- Pros and cons of popular VR headsets
- Limitations of VR
- Introducing our sample project—Server 17