Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Entering the Brave New World of VR

DZone's Guide to

Entering the Brave New World of VR

Virtual Reality and Augmented Reality are becoming increasingly popular. Read about their awesome potential.

· Performance Zone
Free Resource

Download our Introduction to API Performance Testing and learn why testing your API is just as important as testing your website, and how to start today.

oculus-rift-inside

It should come as no surprise to anyone that the dream of virtual reality (VR) and augmented reality (AR) experiences has accelerated in recent months/years with the evolution of newer and more modern technologies and techniques. Many companies, Kickstarter’s and freelance coders/architects are steadily bringing about the reality revolution. Whether we are actually there yet or there is still a way to go before there is full consumer acceptance of VR/AR (like cars and mobile phones do today) is a point of debate. Anyone however who has tried at least one demo though will tell you they are very impressed.

With all the recent announcements, the future is practically at our doorstep.

The new Oculus development kits with extremely high resolution screens and vastly improved tracking, extended even further with their new Oculus touch controllers. https://www.oculus.com/images/rift/dk-controller-thumb1.jpg
visrblank2DIY Google Cardboard 3D Vr Virtual Reality Viewing Glasses For 4.5"~5.5" Screen The many cardboard / mobile VR kits, like the awesome Vis-VR (from as little as £2.50 ) that are available at a reasonable price.
HoloLens The absolutely awesome Microsoft HoloLens project (still a ways off) which still astounds viewers and users alike.


So that’s the blurb/sales speech, what’s the reality, how do new developers or those interested in this brave new frontier get involved? Such is the subject of this slightly different book review for today.

In this post I have two book reviews for those interested in getting in to VR and one big offer direct from their joined publisher, to further accelerate you on this tremendous journey, so let’s get started.

Developing AR Games for iOS and Android – Published September 2013

This title was published some time ago based on Unity 4.1 focusing on implementing the augmented reality Vuforia SDK in to your Unity titles.  You shouldn’t be deterred by this as Vuforia have updated their SDK for Unity 5, so no worries there.

In its 5 chapters, you are led through implementing the Vuforia SDK, getting started with all of its tracking options and the online services, the chapters are detailed as follows:

  1. What is Augmented Reality?

    Simple and high level overview of all the terminology involved with VR and AR, clearing defining the differences between them.
  2. Setting Up the Environment

    Get yourself up and running with Unity and Vuforia, making sure everything is installed and setup correctly.
  3. Understanding Vuforia

    A walkthrough how Vuforia works and what is involved in order to properly run a VR trackable project.
  4. Trackables and Tracking

    Detailed explanations on the difference between trackables, non-trackables and tracking in general.
  5. Advanced Augmented Reality

    Putting everything together and going through what is required to build an actual game using Vuforia AR.

 

Pros/Cons and conclusion

I have mixed feelings about this book, at its best it is a very detailed user manual for the Vuforia SDK focusing on its trackables services. On the other hand the title is very short and could have done with more detail on all of the other capabilities of the Vuforia SDK, so it does feel lacking.  Overall, if you are looking in to creating a Vuforia based app/game, then this will be a useful reference to get started.

Pro’s

  • Succinct view of AR trackables.
  • You get a working AR project by the end.

Con’s

  • Far too short for a full in depth AR title – its focus on pure AR tracking markers is good but needed more.
  • Doesn’t cover the costs involved of using Vuforia SDK, check their site for more info.

 

Unity Virtual Reality Projects – Published September 2015

Unlike the previous title, this book focuses solely on virtual reality (VR) over augmented reality (AR) solutions. In its pages you’ll discover how VR apps and games differ from their desktop counterparts and what really goes in to making them (especially focusing on scale!, very important), walks you through several different types of VR solutions like Diorama’s, First person controllers, riding on rails (like a rollercoaster), 360 projections (you are IN the painting) and social VR. You’ll even delve in to several VR implementations inside Unity 5 such as the Oculus rift and (for those of you without a few hundred £ or $ to spare) Google cardboard.

  1. Virtually Everything for Everyone

    As expected, the beginning chapter talks thoroughly about what VR is and what it isn’t, together with an in-depth comparison between VR and AR. It also goes through all the different VR style experiences and how these apply to both apps and games. Finally it covers some of the technical skills you’ll need (yes you do need Math!) to build effective VR solutions.
  2. Objects and Scale

    A no-nonsense intro to Unity (practically just one page, which I like because too many titles waffle on about “installing Unity”) followed by a deep dive into creating your first VR scene, before finishing off with a high level walkthrough creating a basic asset in Blender (a free 3D modelling tool) and importing it in to Unity, keeping an eye on the all-important scale (I did say scale is important!).
  3. VR Build and Run

    So you have your VR scene, now what? Time to get it on a device, whatever you have to hand.  This chapter does a nice big overview of the many options of building your VR solution through Unity, focusing eventually on building for the Oculus Rift and Google Cardboard (if you are buying this book, you should have some spare change for a cardboard device at least, especially since the Vis-VR is only £2.50, oh and you’ll need a mobile device as well Open-mouthed smile).
  4. Gaze-based Control

    In this chapter you’ll implement a gaze based control system (point and click for your eyes), together with some third person basic AI and nav meshes.
  5. World Space UI

    Time to start messing with the new UI system and building a World Space UI for your VR viewer to see and use in your VR scenes.  Not quite the full Iron Man overlay but close. It does cover however, a basic Visor, reticule, windshield hud, info bubbles and much more.
  6. First-person Character

    Switching gear, it’s time to get behind the eyes of the player and allow them to “play as themselves.” Walking through all the tips and tricks necessary to not have your player vomiting all over the floor and ripping off the goggles, it’s important to ensure your player has a good experience in your VR environment.
  7. Physics and the Environment

    Taking the first-person view up a notch, the author adds a little physicality to the player’s experience, allowing them to jump and knock stuff over. Not quite the VOID experience (if you don’t click on that link, you are truly missing out!)  but virtually close.
  8. Walk-throughs and Rendering

    So far the player has been in control, but some experiences work best if they just sit back and relax, letting  you guide them around a scene or view (getting out of a rollercoaster while it’s moving is not recommended, even in VR!). This chapter covers building a tour scene, putting some more blender content to work and making the best out of the scene, while keeping a firm eye on what you need to do to provide the best performance with the hardware you have at your disposal.
  9. Using all 360 Degrees

    (I Hands down love the image that introduces this chapter Open-mouthed smile)

    With another slant on VR we enter the art world, or more poignantly, 3D imagery, and photosphere’s. Taking a whole world scene for the user to view and explore, taking a flat image and wrapping it around the viewers head.
  10. Social VR Metaverse

    Akin to Neil Stephenson’s Snow Crash, the author breaks down those single player walls in a VR experience and explores what more than one person can do in the MetaVerse, building a VR chat room when multiple VR participants can enter a room and talk (like your everyday meetings but FUN).

 

Pros/Cons and Conclusion

Overall, I’m very impressed with this title, both for its content and approach but also because the author writes and thinks like me Open-mouthed smile

There is a very clear intention to structure the content so that it is easily read and informs the reader at a clear pace.  Also unlike the previous title, it covers a much more varied level of content and approaches to VR. As books go, it’s one of the best ones I’ve read recently (baring my own of course), certainly one to pick up if you want to get serious about VR.

Pro’s

  • Good fundamentals backed with practical examples
  • You’ll get several projects with a great variety of approaches, just about everything you would need for VR

Con’s

  • For once I’m stumped.  I simply have nothing bad to say on this title. Fantastic effort!

If You Use VR, Remember There are Physical Items Out There That WILL Hurt You

Well that’s if for the review with one major exception, the publishers like my idea of reviewing these titles so much, that they gave me two fantastic offers for readers to grab these titles at a bargain price.

Find scaling and performance issues before your customers do with our Introduction to High-Capacity Load Testing guide.

Topics:
unity3d ,augmented reality ,virtual reality ,performance ,game dev

Published at DZone with permission of Simon Jackson, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}