Just uploaded a demo of the golf game (nameless as of yet). You can download it here. Its very much pre-alpha but my friends and I have had some fun playing so I thought others might too. Pretty much everything is subject to change, I'd love to hear what you would change.
Controls are pretty simple (and the same for each controller):
- Trigger drops a ball (if you aren't holding anything, otherwise drops what you are holding)
- Trigger picks up the golf club
- When you are holding a club you can press the grip button to lock the club into a swing plane. Press the grip button again to unlock it. If you're having trouble hitting the ball try this out.
- Escape quits
- To start the game touch the start button on the 'computer'. This will spawn a golf club.
Let me know what you think!
Following up on the last update I took some time to fix the issues I had. Many things were tried, but ultimately the piece that helped was the Oculus forward renderer for Unreal Engine 4. This branch of UE4 provides MSAA instead of the TAA or FXAA that is provided with the default deferred renderer. Its definitely a tradeoff: in order to get MSAA you lose the ability to use a lot of lights, multiple reflection capture actors and more (those were the only two that effected me). Also, the branch is not supported so you are accepting a lot of risk in using it.
Using the Oculus renderer was very simple:
- Download the git repo from github (make sure you are on the right commit!)
- Build the project following the instructions in the Readme
- Open your project in the new engine. Make sure you select to make a copy!
- Disable the default AA under Project Settings -> Rendering -> Default PostProcessing Setings
- To enable the renderer you have to enable both it and MSAA using the following console commands:
- r.UseClusteredForward 1
- r.MobileMSAA 4
The console commands went into my level blueprint, I'm sure there is a better way to handle it but I'll have to research how.
While it is definitely a tradeoff between the renderers I am very happy with the results. One side benefit is that the frame timing went down from 9ms per frame to just under 6ms. This leaves a lot of room for things like super sampling, which is great! Aliasing is more visible, but in return you get more details and clarity. If your game only deals with large object at close distances the tradeoff might not be worth it. For something like a golf game though, it absolutely is.
This week I also added a lot of props to really flesh out the level as well as different target types. It has a long way to go but I think its starting to look good!
TL;DR: Oculus not having roomscale and touch controllers (and not considering them important) means that they need to lose in order for VR to reach its potential.
I first tried a modern VR headset in 2014 with the Oculus DK2. Someone was demoing it and I got to try it out for a few minutes. I left extremely disappointed, thinking that this highly hyped product was nothing more then a gimmick. Sure it was neat that you could look around in a virtual environment but overall it was was underwhelming.
Fast forward to early 2016. VR seemed to be gaining even more momentum and there were improvements seemingly every month. When evaluating the two main HMDs there was one main point that stood out to me: The Vive came with motion controllers while the Rift did not. Easy decision to make, especially when the Vive was actually available and arrived within two weeks.
While researching the Rift and Vive one thing really jumped out. Repeatedly I came across assertions by people at Oculus that room scale was not something that people wanted, implicitly saying that room scale (and touch/motion controllers) were not integral to a VR system. There were excuses of people not having enough space, people getting tangled up in cords, people getting hurt by basically walking around a room with a blindfold on.
After having received the Vive I can say they are categorically wrong. Motion controllers are not only integral to a VR system, they are the R in VR. Without motion controllers the HMDs are nothing more than a gimmick. They bring nothing new to the table other then a different way of controlling a camera. For passive experiences similar to TV or movies this might be enough for them to have value but for anything interactive it is more of the same. How long are you going to strap something to your face when you can get pretty close to the same experience on your monitor?
Motion controllers, on the other hand, bring an entirely new interaction paradigm that does not exist anywhere else. There is no other way (to my knowledge, commercially available) to interact physically with a digital space like this. This is incredibly powerful and is the real step forward that VR brings for us. New ways to work and play will be enabled by this, not by the ability to control your camera with your head.
Until Oculus realizes this and acts on it I have to hope they don't win this battle. They obviously have some very smart people and are working on a solution with touch controllers and multiple sensors so I'm pretty sure they have experienced the difference. It feels very much like they are in a position where a competitor beat them to market and now they need to downplay their weaknesses in order to stay competitive. While understandable, it doesn't exactly make you root for them.
Tell me why I'm wrong in the comments!
This week I worked on fleshing out what the first level would look like. This included things like creating a landscape mesh (and figuring out how to sculpt in Blender!), changing the visuals for the targets and importing some decorations to make the map look more livable. Water was also added using the water planes package provided by Epic.
For the first map I'd like to provide a practice facility type of place with a little bit of a fantastic twist because its VR. It should be pretty familiar to anyone who has played other golf games.
Overall I'm actually pretty unhappy with it. Everything is very blurry and there are issues like it's impossible to see the ball further then 30m away. I think it is due to the temporal anti aliasing in UE4 which works well on a monitor but seems to not work well in the lower resolutions that the Vive has. That's an investigation for next week!