A screenshot of Unity 3D

How can you begin developing for virtual reality?

Continuing my serie on the most asked questions on reddit (I already answered about if you have to buy a VR headset and which one you should buy), today I’ll talk about what do you need to know to start developing some games in virtual reality.

So, how can you begin developing for virtual reality? What do you need to know?

I’ll just tell you a little secret: developing for virtual reality requires almost exactly the same skills of any other 3D games development. But keep this secret for yourself: it is so cool when you impress people saying them that you’re a virtual reality developer and girls just go crazy for it because they think that you’re some kind of futurist superhero, like Johnny Mnemonic.

So, if you want to make games for virtual reality, you have to learn to use one of the most popular game engines that are out now. There are lots of religion wars about the engine to prefer… but the truth is that all of them are great products. If the expression “game engine” means nothing to you… well, it’s just a big software framework that offers you lots of functionalities (rendering pipeline, model importing, physics engine, multiplayer, etc…) out of the box, so you can develop a game in an easy way (more formal definition at wikipedia). Most popular engines out now are:

  • Unity 3D: great engine, easy to learn, with which you can prototype very fast;
  • Unreal Engine: great performance engine and especially cool for FPS, but not that super-easy to master.

    A screenshot of Unity 3D
    Unity3D, during the development of a small demo for ImmotionRoom

Which one to peek depends on you (maybe I’ll write an article about this, too): as a rule of thumb, if in doubt, Unity is the most easy to learn and handles perfectly all the VR stuff. But remember that UE can give you more astonishing graphics (all people say that “when you create a cube in Unreal Engine, it’s the most beautiful cube you’ve ever seen”). There are also other cool engines, like CryEngine (that has even more graphic quality than Unreal), but I’ll ignore them for now (especially because every new VR update or feature is implemented in Unity and Unreal first, and then in the other ones; and because Unreal and Unity have broader communities that can help you if you’re in trouble).

Every game engine has its own scripting language that you must now: there are books that say that you can use game engines even if you can’t code, but that is true only if you have to collaborate in a team where others actually perform the code part. So, you have to choose:

  • If you go for Unity, you have to learn C#
  • If you go for Unreal, you have to learn C++

Again, C# is easier but C++ is more powerful, so everything remains coherent.

After you have chosen your way, you can start experimenting with game development and making lots of practice with virtual reality. As I always say, you can really learn virtual reality only by practice, because it’s a new field with no clear coding standards. So just get your hands dirty and learn how to develop for it. How much time do you need to master everything? Depends on your coding skills when you started and how much time you can spend everyday in this, but I think that at least 6 months are necessary.

So, to start developing games for virtual reality you have to:

  1. Buy a virtual reality headset
  2. Decide which game engine to use (Unity or Unreal or…?);
  3. Learn the scripting language of that engine (e.g. C# for Unity). Look for books and tutorials… internet is full of free resources, and even of resources that should not be free, but are free anyway 🙂

    Pirate flag
    A-ehm, you know what I mean…
  4. Make some practice with the language of the point above
  5. Install the game engine of your choice
  6. Learn how to use the game engine: again, there are lots of free tutorials out there on the most used game engines. I started using Unity watching Unite 2014 videos about Survival Shooter, for instance
  7. Make some practice with the game engine (e.g. some demo scenes by yourself)
  8. Download the integration to use your VR headset within your game engine (e.g. for Oculus with Unity, you have to download Oculus Utilities) and read its documentation
  9. Start coding some VR experiments
  10. Make lots of practice, read all the possible guidelines and for any doubt ask the community. You’ll fail a lot, because you have to experiment a lot
  11. Especially for mobile VR games, read a lot about Unity optimizations, so you can have your games running at a solid framerate (it’s very easy on mobile headsets to go beyond the GPU possibilities and make the framerate drop)
  12. Become a VR game developer rockstar!

And that’s it! If you become a rich VR gamestudio thanks to this short tutorial, don’t forget to send me a piece of cake…

Portal the cake is a lie
The cake… is a lie! (image via medium.com)

…or at least to share this article with your friends!


Disclaimer: this blog contains advertisement and affiliate links to sustain itself. If you click on an affiliate link, I'll be very happy because I'll earn a small commission on your purchase. You can find my boring full disclosure here.

Releated

meta horizon quest xbox headset

The XR Week Peek (2024.04.23): Meta opens up its ecosystem, Pimax launches new headsets, and more!

You may wonder why this newsletter episode is coming a bit later than usual. Well, it’s easy to say: Yesterday I was going to start writing this newsletter when Meta dropped the bomb about opening up its operating system and I was like “WHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAT”. After a few minutes of shock, I thought “I HAVE ABSOLUTELY […]

meta horizon os

Analysis: Meta opens up its walled garden to become the Android of XR

Today a (positive) earthquake hit the virtual reality ecosystem: Meta has just opened up its walled garden, as a strategic move to expand its business in the virtual reality market. It has just authorized other VR OEMs to use its Quest operating system and blurred the lines between the Meta Quest Store and App Lab. […]