Topic: Neverball and Neverputt for the Oculus Rift
I've ported both Neverball and Neverputt to use the OpenHMD API, thus enabling support for the Oculus Rift virtual reality headset. The code is in branches/hmd at https://s.snth.net/projects/neverball/b … anches/hmd.
I've attached a couple screenshots. The first shows Neverball during play. Obviously, seeing it in motion is the key. It's a hell of a thing.
Here's Neverputt at the main menu (just to prove I didn't overlook Neverputt).
Here's Neverball at the set selection screen. This demonstrates the GUI, which works especially well. GUIs are a problem in Rift ports, but ours looks great. A virtual mouse pointer appears when necessary, as the system mouse pointer doesn't work in VR.
Both games take advantage of the Rift sensors to provide full look-around. This works with the GUIs and the replays as well as during gameplay.
Both games have an HMD toggle in their configuration screens, and HMD support may be switched off and on in-game.
Some might wonder why OpenHMD was chosen instead of LibOVR, the library provided by the official Oculus SDK. That's a topic worth discussing, but Cheeseness and I both examined the issue in depth and agreed that OpenHMD is the best path forward. It's true that OpenHMD currently lacks features that LibOVR provides. Most notably, these include predictive tracking, chromatic aberration correction, and neck modeling. However, I'm confident that OpenHMD will evolve to support all such features, and ultimately an independent library will provide a more stable and useful environment with broader device support than any manufacturer's software can. I'm totally willing to be proven wrong on that.
As of now, I've tested this port only under Linux. I'm working on OSX. A Windows port will follow soon, and we'll try to produce some binary executables so people can try it out.
A couple notes:
- If your Rift is connected as secondary display, set the environment variable SDL_VIDEO_FULLSCREEN_HEAD to 1. Then when you enable the "fullscreen" option in the config file, the game will move to your Rift.
- If the view is not level when the game starts, wait a moment and it will correct itself. If it's really messed up, hold your head steady and toggle HMD off and on again. This will reset the sensor to default to your current head position.
- This port is by-no-means finished. There may be interactions with other features that I haven't uncovered. Report your findings. OpenHMD has a lot of growing up to do, and Neverball will have to change with it as it matures. We can expect breakage as upstream improvements occur.
- Many people experience VR sickness when using HMDs. This is largely due to a conflict between your visual and vestibular balance systems. When you read while riding in a car, your eyes see a steady image while your vestibular system detects motion, so you get car sick. HMD is the exact opposite, and your eyes see a moving image while your vestibular system is stable, so you get VR sick. Neverball is especially bad as it has very few stable points of reference and is a game designed entirely around environmental rotation. After many hours of VR Half-Life 2, I got over my VR sickness, but Neverball brought it right back. Be warned. Neverputt is fine though.
(edit to inline the images)
(edit again because non-users can't see attachments)