DukeVR is a modification of the EDuke32 port of Duke Nukem 3D for Windows. It features direct Oculus HMD integration (head tracking, SBS 3D, view distortion, including new features like timewarp).
This game uses Oculus VR SDK v1.3, and is currently Windows only. Oculus DK2 or CV1 are required for v2.13. For other HMD support (including DK1), older versions are still available.
Changes since v2.06:
Custom async timewarp removed, since the SDK supports it natively.
Controller support revamped:
Using Oculus controller APIs, so the Oculus Remote also works in menus.
The XBox controller should work better in the menus (Back or B will go back in menus; Start + Back will open the
menu when you're already in game; and you can save a game without using the keyboard. The only thing a keyboard
should be needed for is cheat codes, basically.)
If not using Oculus controller support, steering wheels / pedals / etc are filtered out, and you can choose what
XInput device you want to use at the initial startup screen.
(v2.06) Direct Mode / Direct HMD Access now supported
(v2.06) Async timewarp supported (if you drop below 75FPS, headtracking and looking around should still be smooth). Note that this has a performance cost though, you will probably encounter higher CPU usage than before.
(v2.06) Game HUD is drawn in a separate layer with the Oculus compositor (otherwise, if the FPS dropped, the HUD would be choppy even if headtracking stayed smooth)
(v2.06) Game intro, main menu, and cinematics are no longer locked to your head. Head tracking orientation can be reset if needed from the main menu.
(v2.06) In-game menu and OSD don't shrink the screen as much as before, and the game world will dim out behind them when they're shown
(v2.06) In-game cameras / security screens will shrink the rendering size / FOV, since no head tracking is allowed when they're on (to prevent nausea)
(v2.06) A mirror window shows by default in Oculus mode. If you want to disable this, open eduke32.cfg, find the [Screen Setup] section, and add a line that says:
OculusMirror = 0
Note that the window will still be visible, it just won't update / show the Oculus view.
(v2.04) The judder issues some people were seeing when looking around with headtracking should be fixed.
(v2.04) Chromatic aberration should be less than before, since the game now links with OVR SDK 0.4.2.
(v2.04) If the Rift is your primary monitor, and you have another monitor enabled, the startup / config screen
should now appear on the non-Rift screen when launching the game.
(v2.03) Heavily revamped XBox 360 controller support. The game uses XInput now when a compatible
controller is detected. The previous issues with phantom axis / button presses should be fixed (in XInput mode).
Note: The first detected XInput device is used. This means if you have other devices like a wheel / HOTAS,
you may need to unplug them before using the XBox 360 controller in Duke VR.
(v2.03) Added vibration support for compatible XInput gamepads (like the XBox 360 controller). This should trigger
when you fire your weapon, or incur damage. On by default - use the 'in_joy_vibrate' console command to disable.
(v2.03) Made 'Run mode' have an effect for joystick / gamepad. By default, click in the left stick (XBox 360
controller) in order to run.
(v2.03) Fixed a bug where your left / right eyes could see different sprite frames for enemies
(v2.02) Fixed black screen issues on some NVIDIA cards
(v2.01) Fixed issues quitting game when using shareware version
Added DK2 support (note: DK1 is still supported, too)
Positional tracking (DK2 only), along with a warning if you leave the range of the camera
Oculus head tracking is integrated with the app (don't need to run a separate program for it now)
Using Oculus SDK rendering instead of a custom warp shader, so timewarp, chromatic abberation fixes,
dynamic orientation prediction, and low persistence should all be enabled (as supported by the HMD).
Added ability to run the game on the non-primary monitor / run without being in cloned display mode.
Bundled the High Res Pack skyboxes by default, since the regular ones look so broken in VR. The full HRP
is still supported, and can be downloaded separately (change the custom game content dir from
'HRP_skyboxes' to 'autoload', in that case).
Tweaked XBox 360 controller deadzones and axes speeds
Added ability to recenter Oculus orientation / position (via keyboard or XBox 360 controller)
Known Issues / Limitations:
Rift Headphones: If you want to use them, you must set them as the default audio output device in Windows before launching the game. DukeVR currently doesn't use the "VR Audio Output" setting in Oculus Home.
Joystick vibration doesn't work if you're using the "Use Oculus controller support" option.
Independent aim / looking directions are not supported. You'll shoot exactly where your crosshair points, and
that's tied to the direction you're looking in.
You cannot look completely up or down (your free look will stop after +/- 65 degrees from level).
This is an engine limitation.
The crosshair / HUD depth adjusting logic isn't perfect. The crosshair can still look doubled sometimes if you're very
close to walls, if you're looking at a sprite / model instead of a wall, or if you're looking into a mirror and focusing on
something in the projection.
NOTE: If you have a DK2, and encounter crosshair doubling after moving around (with positional tracking) a lot:
Try the "Recenter Oculus Position / Orientation" command ('G' or click the right XBox360 stick), it usually fixes it.
DirectInput joysticks: Occasionally the analog axes think they're being activated when they're not. Use XInput mode for
gamepads / joysticks, if your device supports it. (And make sure "XInput" is checked at the startup screen.)
Positional tracking is implemented 'noclip-style', meaning you can lean into walls / solid surfaces - I wouldn't recommend doing so though.
A mid to high range PC is recommended.
Input Devices:
A keyboard and mouse is the most common way to play. However, gamepads/ joysticks are also supported by EDuke32. The joystick config has been optimized for the XBox 360 / XBox One controller, so that should work out of the box. For more info, see the Readme.
If you're using an XInput controller that Oculus Home doesn't know about, you should still be able to
use it with DukeVR. In that case, at the startup screen, choose "Controller 1" / "Controller 2" / etc
that you want to use, verify you chose the right one by pressing buttons and ensuring that they show up
in the "Press buttons / axes to test controller" area of the startup screen.
However, if you're using the XBox 360 controller / XBox One controller, you should just be able to use the
"Use Oculus controller support" option.
High Resolution texture & 3D Model support
DukeVR supports the HRP for EDuke32, which supports high resolution textures (and skyboxes), and 3D models instead of 2D sprites for the player / enemies / other objects. If you have a powerful PC, you can try out the High Resolution Pack. If you want to play with a more retro feel, you can still disable the 3D models if you wish, in the in-game Video Options.
Note: As of v2.0, the HRP's high resolution skyboxes are bundled by default with Duke VR, which look correct when you move your head up and down. Be sure to keep the HRP_skyboxes option for "Custom Game Content" selected when starting EDuke32.
Registered / Full Versions of Duke 3D
Either the shareware or registered / full version of Duke 3D is supported. If you don't have a registered copy of Duke 3D, the shareware version is included.
If you have a registered version, copy DUKE3D.GRP (~43MB) into the DukeVR directory before playing.
Where to buy the full version of Duke 3D: Megaton Edition on Steam, Good Old Games, etc.
Unfortunately it doesn't look like Duke 3D is for sale online right now (as a digital download), so the only legal option to get the registered version is probably checking eBay / other used game sites for the CD version.
Expansion Packs
Expansion packs such as Duke It Out in D.C. should work fine.
There are addons to the High Resolution Pack (HRP) which provide high res textures and models for the expansion packs too. For info on how to use these, follow the Official Addon Installation Guide, and look for the "addon HRP SVN" instructions.
If you want to play with the High Resolution Pack:
Go to the Duke HRP download page. Download the "Duke3D HRP v5.4 FULL SFX (986 MB)" package. The DukeVR readme has a Quick Setup section for using the HRP.
Source code:
DukeVR_v2_13-src.zip includes the source code of DukeVR (base EDuke32, and the DukeVR + Oculus specific modifications.)
If you get an error about MSVCR110.DLL being missing, you probably need to install the Visual C++ 2012 redistributable (32 bit version).
(From Duke VR v2.0, DK2) E3L2 (DK1, v1.0) Main Menu
(DK1, v1.0) E1L1 #1
(DK1, v1.0) E1L1 #2
(DK1, v1.0) E1L1 #3 (with optional High Resolution texture Pack)
(DK1, v1.0) E1L1 #4 (with optional High Resolution texture Pack)
(DK2, v2.06) E1L2 #1
YouTube Video
Credits
Malcolm Smith - DukeVR modifications (SBS 3D, external 3DOF Data support, SBS Warp support, Oculus integration, etc.)
EDuke32 - TerminX, Pierre-Loup "Plagman" Griffais, Philipp "Helixhorned" Kutin
Jonathon "JonoF" Fowler (work on one of the first Duke windows ports)
Ken Silverman (Build Engine, initial OpenGL renderer for Duke Windows port)
SBS Warp Shader adapted from the one in OpenHMD
(Note: Only used in non-Oculus VR mode now)
Oculus VR, for the Rift dev kit and their SDK.
License
DukeVR main component:
The Build engine is licensed under Ken Silverman's Build License which can be found in BUILDLIC.TXT of DukeVR.zip.
The EDuke32 port is licensed under the GNU Public license (GPL) which can be found in GNU.TXT of DukeVR.zip.
The DukeVR modifications (SBS 3D, external 3DOF Data support, SBS Warp support, etc.) are also under the
GNU Public License (GPL).
For information about the older Duke VR v1.0, click here.