With the Gear VR and Oculus Rift ‘Crescent Bay’ prototype currently in the spotlight, it shouldn’t be forgotten that Sony’s PS4 VR headset, Project Morpheus, is still brewing in the background. Development kits are out in the wild and work has already begun on bringing VR to Sony’s console. One developer wielding the white and glowing headset is Justin Moravetz of Zero Transform. Known for the VR titles Proton Pulse and Vanguard V, Moravetz shares his perspective on developing for Project Morpheus.
What if I told you…
…that VR development on the PlayStation 4 isn’t that hard? Sure, game development isn’t easy and takes time, practice, and dedication like any skill; that said, if you’ve made content for the Oculus Rift, then you’re already well equipped to handle Sony’s foray into virtual reality.
First off, Project Morpheus is the code name of the virtual reality head mounted display for Sony’s PlayStation 4. The development kit prototype is not unlike the Oculus Rift DK2 in many ways. It uses a 1920×1080 display that is split for each eye, a camera for positional tracking, and a wide field of view for optimal immersion.
These parallels make the approach from the development standpoint similar in many ways, but there are some interesting things that differentiate the two VR headsets when creating content for each.
Input
The PlayStation 4 has potentially the best current input methods available for VR. The PlayStation 4 Camera does an amazing job tracking the PlayStation Move controllers and the Dual Shock 4. This makes prop manipulation in VR effortless for the player, without any odd latency or offset compensation. The PS4 camera is also capable of skeletal tracking, but I wouldn’t recommend walking around wearing a VR headset to anyone (yet).
The Morpheus isn’t publicly available yet so we don’t know if it will include a Move controller, but I know as a developer that every single PS4 owner will have a Dual Shock 4. There’s also a headphone port on Morpheus and the Dual Shock 4, with the headset containing a mic and the Dual Shock 4 able to support one through a headset.
Windows / OS X
The Unity3D game authoring engine is available on the PlayStation 4 alongside Morpheus development tools. The first thing to note is that the PlayStation tools are for Windows operating systems only. I had to get creative as a Mac user to accommodate this requirement. Bootcamp is an easy option for most, but much of my development software is on the Mac side and I don’t want to reboot every time I need an asset made. The easy answer is to get Parallels and run Windows at the same time as OS X. This takes beefy hardware to be practical, but I’m running a new Mac Pro so this wasn’t an issue.
Unity3D
Developing for the PlayStation 4 is straightforward for anyone who knows how to use Unity3D. The key differences are that some shaders need to be ported and that a build/run is needed to run on the PS4 devkit.
Like Oculus, Morpheus tools are still in development so some modification to the available scripts may be needed to best suit your project. I needed access to the stereo cameras in the scene Hierarchy, which is the default behavior in Unity3D. The Morpheus toolkit generates the stereo cameras at runtime (on the fly) so I had to adjust the script to have the SDK use my cameras instead of making new ones. The script was easy to follow and well commented so this took very little time.
The other key difference is that headtracking is done on the parent object of the cameras (rotation/position). Oculus applies most of the transform data directly to the right camera and has the left camera follow with an offset. This difference required me to adjust my game to pay more attention to the parent tracker instead of the individual cameras—easy to do once you’ve figured it out.
Performance
One of the things that surprised me most was how fast I was able to get up and running with good performance. Vanguard V was migrated to PS4 and playable within one day! The PS4 is also very good at giving you feedback on performance issues and script debugging. The console from the PS4 is relayed to your computer monitor and the Unity Profiler gives you information on how your game is performing as it runs. This information was essential in isolating several performance hogs that I was unaware of. I had the Vanguard V demo running at 70-120fps after just a few days of work.
Usability
Anyone developing for VR knows the constant need to put on / take off the VR headset to test every little thing. This is double for anyone wearing prescription glasses. The good news is that you don’t need to remove your glasses for the Morpheus, thanks to the design of its mount. After much time spent developing with the Oculus Rift on and off of my head, the motions of putting my glasses back on are second nature to me, so I laughed every time I took the Morpheus off and reached to put my glasses back on only to realize I was still wearing them.
Morpheus is also very comfortable; the downside is that using the VR headset in the Unity editor isn’t well supported. I have to build/run the project every time I need to check things in VR. It only took a little while before I got into the groove of things so it didn’t matter much once I was used to it, but I still miss the instant feedback of headtracking in the Unity editor.
I don’t use a controller for Vanguard V, but I did mess around with the provided tools. Mapping the Dual Shock 4 is very easy since it uses the built in Unity Input Manager. Access to the extra features like the speaker, LED color, gyro, touchpad, and rumble are easily available in script as well. This was a refreshing change over the last time I had to do input for a system (I’m looking at you Tim Groupmann over at Ouya).
One unexpected perk was that the Share feature on the PlayStation 4 also applies to development. I was able to get footage of the game simply by pressing the Share button on the Dual Shock 4. This is handy for showcasing work and isolating bugs.
The Result
The PlayStation 4 is a great system to develop on. It’s quick to get a project up and running on the hardware with great results. I was able to go from nothing to a fully ported demo in just a few days thanks to the flexibility of Unity3D and the toolset for the PS4. The demo was even accepted to be showcased by the public at PlayStation Experience. This blows my mind when I think that Vanguard V for PS4 didn’t even exist a couple weeks ago.