Occulus Rift Mod for World of Tanks – Part 3 (with Download)

Part 1: http://ftr.wot-news.com/2015/01/30/occulus-rift-mod-for-world-of-tanks-part-1-with-download/
Part 2: http://ftr.wot-news.com/2015/02/03/occulus-rift-mod-for-world-of-tanks-part-2-with-download/

Check this out – you can download the mod here:

English instructions
The mod itself

Okay, before we finish our story, one thing first – a footage of gameplay with this mod by player “shwhjw” with commentary (in English).

 

 

Okay, let’s finish this :)

Camera control

Occulus doesn’t serve only as an output (display), but also as an input device. As an input, the device uses a space orientation quaternion (in case of DK1 and HD Prototype – a matrix). That’s why we wanted to use this data not only to position the UI, but also to operate the cameras.

Hangar

In the hangar, we made the control setup as such: the mouse controls the camera angle and the zoom of the tank. The zoom works as a “selfie stick”, at the end of which there is the camera, that can be controlled using the Occulus: it’s possible to look around and check out not only the tank, but also the surroundings.

afc9bc6377c3bea0fb41837d9fe3015b

Arcade mode

In arcade mode, as earlier, moving the mouse moves the coordinate system, which is used for aiming. Turning your head works within this coordinate system.

735330413add89019ad7395135142699

Sniper mode

At first, we developed the option to aim by moving your head. This approach however was quickly scrapped due to the low accuracy by aiming with your head, as well as the strain on your neck and difficulties in synchronization between the mouse and the head movements and the differences between the head and turret movement speeds.

After that, we tried to make a system resembling the aiming system in Team Fortress: the camera is controlled by head movements, but there’s a central area within the field of vision, within which the aim reticle can be only moved by mouse in order to achieve higher accuracy. The prototype was not bad, but the operating difficulties remained.

That’s why we decided to use the simpliest and most effective variant: the camera is controlled by head and mouse both – that means that when moving your head, the aim reticle doesn’t move, only the camera direction does. When moving the mouse on the other hand, you move both the reticle and the camera.

Arty mode

Occulus rift was not originally planned to play with artillery, that’s why the artillery mode remains unchanged.

Gunner mode

One day, we were looking for more ideas as to how to use the Occulus as an input device, we discussed the advantages and disadvantages and proposed something, that would make it easier for a player to imagine himself as a virtual person (rather than virtual tank) in a virtual 3D-world. We decided to highlight a position in the tank the player will find easy to identify himself with: the gunner.

We already had a camera, that can be positioned on any node on the tank, that’s we we only had to set up the position and limit the field of view so that the gunner wouldn’t be able to see the inside of the tank or clip through the gun barrel. In order to test this, we picked two tanks – IS and Tiger I, since both had their HD models developed and are popular. The work itself then only took a few days and the result was the most unusual and interesting mode to play.

The name of this mode is still “fluid” – some call it “gunner camera”, some call it “commander cupola camera”. The main feature of this mode is the fact that the camera is attached to the coordinate system of the real tank turret, while allowing the head turns, using the Occulus Rift, all the while the entire tank is not hidden from player’s sight, you can look around to see the body of your vehicle. In this point of view, the tank looks much more impressive than it looks in a camera a dozen meters away from the hull. During the implementation, a question arose – to which point should the camera be attached? For the IS and Tiger, we made a hardcore variant: the camera is attached parallel to the barrel. It is not simple to automatically genereate these camera points for hundreds of other vehicles in the game and doing it manually would take too much time. That’s why the mode still has the option to manually position the camera using keyboard keys.

f84820e002acfe0883bc8013e7d4cb2a

Conclusions

Occulus rift is a very interesting device, that adds a large number of new experiences to games. However, as it usually happens, the creation of product-ready integration is a work, that does take more than a couple of days. If you decide to implement the OR support to an already existing game (not a game designed with VR support initially), you will need:

1) Partial rework of ingame menu. Even if you do not fully integrate it into the virtual space (projecting its elements on ingame objects, projecting it using real ingame coordinates etc.), you will have to correct the way the menu renders.

2) Strong (even radical) rework of ingame UI. OR doesn’t exactly have the largest resolution and if you just take your HUD and put it in front of your eyes in OR, UI elements will take up too much space. In addition you won’t get the feeling of “bugs in front of your eyes”. This means that you have to rework your UI and decide, what you want to display, while secondary things might be scrapped. You also need to decide, which UI elements should react to head turning. UI, projected to ingame objects (cockpit, helmet etc.) might at the same time have too few pixels on the screens and thus have very low informative value.

3) Your camera architecture should allow for extending. Occulus is not just a device to transfer the image to its screens, but also an input device, using the head turning. Therefore, you have to somehow connect these input data to ingame cameras. If you require the option to look around, the aiming system should be independent on the camera orientation. In our case for example, the gunner camera is composed of both arcade and sniper mode logics. Also, splitting the aiming and camera systems does make the Occulus integration to already existing control systems easier withiut forcing you to override it.

4) Last, but not least: the Occulus requires a control system tailored specifically for it. An implementation, in which the movement by Occulus is the same as the movement by mouse, might actually suck (this variant however is suitable for airplane simulators only, where the mechanism of pilot head movement is implemented already anyway and the cockpit POV is the main one in the game).

Shortly, the advantages of Occulus are:
- it is open enough to allow developer cooperation
- SDK development
- PR
- John Carmack (lol)

The disdvantages are:
- missing general recommendations for game implementation
- chromatic aberration issues in version 0.4.2
- complications with perception in third person games (regardless of whether the “hero” is a human, or a tank)
- general issues of all helmets: focus, resolution (even in HD), discomfort during prolonged use (neck pain and headaches)

4 thoughts on “Occulus Rift Mod for World of Tanks – Part 3 (with Download)

  1. Nice, pretty much agreed on the issues (need for separate mouse/oculus input, HUD to be projected on ingame objects / invisible 3D sphere so you can look at it without it obscuring the view all the time)

    I’d kinda like to see a camera put just above the commander’s copula, rather than next to a gun though.

    • “I’d kinda like to see a camera put just above the commander’s copula, rather than next to a gun though.”

      I think the camera is in roughly that position when you do a max zoom-in in arcade mode. Besides, this gunner mode was more a replacement for the sniper mode, like in the XB360 version.

      • Nothing against the gunners camera, it seems nice too, it’s just I always wanted the commanders camera :) Current max-zoom in does not really work well with oculus. (The commander’s camera would be kinda meh if you can’t have mouse and oculus movement input handled separately anyways, so I just hope there will be one when/if that is solved.)