Skip to content

Releases: ObeseCatLord/EDuke-VR

EDuke VR v0.1.11 (Windows)

Choose a tag to compare

@ObeseCatLord ObeseCatLord released this 03 Nov 17:15

EDuke VR v0.1.11: Duke Nukem 3D in VR (OpenXR) and on the desktop, based on EDuke32 r10669. You need your own Duke Nukem 3D data (DUKE3D.GRP, e.g. the 20th Anniversary World Tour on Steam): put it in data/grp/ or let the game find an installed copy.

Changes in v0.1.11

  • Voice chat cuts through the game. While someone talks, the game ducks under them like a radio mix: its speech frequencies (around 1-2 kHz) dip by about 10 dB and the whole game by 3 dB, coming back smoothly when they stop. Explosions and music keep their low end. Adjust with voice_duck and voice_duck_overall (dB, 0 turns either off).
  • Plays with v0.1.9 and v0.1.10 servers and players (no network change).

Changes in v0.1.10

  • Co-op: joining a game already in progress shows doors and lifts as they really are. A player who joined after a door or lift had moved (for example a door that closes by itself when the level starts) could see it in its starting state for the rest of the level, open where it was really shut. Found by the new multiplayer test bots, which have now used every switch, keycard scanner, security screen, door, lift, teleporter, touch plate and crane in episodes 1 to 4.
  • Plays with v0.1.9 servers and players (no network change).

Changes in v0.1.9

  • Everyone sees the world at Duke's size. The game measures how high your eyes are above the floor when you stand and scales your head movement, eye separation and hands so your eyes are at Duke's height (about 1.58 m). Tall and short players get the same view, and every player's body is the same Duke size to the others (bodies used to grow or shrink with the player's height, and grew after a jump).
  • Co-op: keycard scanners work when other players stand near them. Another player standing by a scanner or switch used to catch your "use" instead (E1L2's yellow scanner could not be opened).
  • Co-op: security screens show the camera instead of teleporting you to it.
  • Co-op: the Toxic Dump cranes stay on their rails (one could be pushed off and never reach anyone again) and carry you smoothly instead of jerking several times a second.
  • Co-op: doors, lifts and platforms move the same for every player. Another player could see a door or lift you used stuck half open, or a lift going up and down, while it was really at rest. Leaving a security screen could also crash the server.
  • Co-op: friendly fire is off by default. Turn it on with -ffire on the server's command line or mp_friendlyfire 1 in its console.
  • Mirrors show 3D models the right way round (on the desktop your own Duke showed his back), and other VR players appear once in a mirror instead of twice.
  • Co-op: other players' dead bodies no longer look inside out (Voxel Duke) or keep springing back up and dying again.
  • Co-op: the scream from the Death Row electric chair no longer repeats forever on dedicated servers.
  • Voice chat is louder than the game in VR. Voice chat has its own volume now, and the first time you play in VR, sound effects and music still at their default levels are turned down a little.
  • New mod, Hit Feedback, on by default: enemies you hit throw extra blood (more for harder hits), sometimes gibs and wall splats; drones, recon cars, tanks and turrets throw sparks, smoke and scrap. Gameplay is unchanged. Set EDUKE32_VR_HITFEEDBACK=0 to play without it. It's a normal EDuke32 CON module (data/mods/hitfeedback).
  • Server command net_givekeys gives every player all three keycards.
  • If you built the Voxel Duke model set yourself, the launcher rebuilds it once (for the inside-out bodies fix).
  • The server and all players need v0.1.9; older versions can't join a v0.1.9 server.

Changes in v0.1.8

  • Faster on big open maps on the Steam Frame and other standalone headsets. Voxel objects more than 24 m away are now drawn as their normal sprites; at that distance they look the same, but each one cost as much as a nearby voxel. A Shaky Grounds view went from 18 to about 68 fps. Option: vr_voxeldistance (0 = draw every voxel).
  • Room-over-room maps (many Alien Armageddon maps) render both eyes in one pass instead of one eye at a time, with foveated rendering on the Frame. Images are identical to before.
  • Shadows of voxel and 3D objects no longer flicker against the floor or look different in each eye.
  • Plays with v0.1.6 and v0.1.7 servers and players (no network change).

Changes in v0.1.7

  • Much faster on the Steam Frame (and other SteamOS / Mesa systems). SteamOS's graphics driver was writing a trace message for nearly every drawing call (hundreds of thousands per second). EDuke VR now switches that off for itself. The Shaky Grounds episode went from about 30 to a steady 72 fps on the Frame, with Voxel Duke on.
  • Decals on the floor (scorch marks, splats) no longer flicker or look different in each eye.
  • No scuba mask overlay in VR (it was stuck flat across both eyes).
  • The updater works while the game is running (it used to fail half way on Linux and then report itself up to date). It now finishes or retries in full; on Windows it asks you to close the game first.
  • New option vr_voxeldistance (metres, 0 = all): voxel objects farther away draw as flat sprites, for extra speed on heavy maps.
  • If you built the Voxel Duke model set yourself: the freeze gun is now held from the back, with the side handle as the second hand's grip. The launcher rebuilds the set automatically.
  • Plays with v0.1.6 servers and players (no network change).

Changes in v0.1.6

  • Menus and the crosshair no longer look squashed narrow on headsets whose eye image is square or taller than wide (Valve Index, Bigscreen Beyond and others). Menus, the crosshair and other 2D art now have the same proportions as on a normal monitor.
  • Point at menus with a laser. With a menu open, a beam from your controller shows what you point at; pull the trigger to select (sliders drag too). Pull the other hand's trigger to switch hands. The A / X buttons and the sticks still work. Option: VR Setup > Menu laser pointer.
  • Co-op: shared keycards. A keycard one player picks up opens doors for everyone, including players who join later (host option "Share Keys", on by default). Your own keys now also show on your HUD in multiplayer.
  • Name tags over other players' heads in multiplayer, in their colour, shown as ((Name)) while they talk. Option: VR Setup > Name tags (multiplayer).
  • Radio push-to-talk. In push-to-talk mode, hold a hand up to your ear or mouth like a walkie-talkie to talk; a chirp marks the mic opening and closing. Option: Voice Chat Setup > Hand to head talks (radio), on by default.
  • The server and all players need v0.1.6; older versions can't join a v0.1.6 server.

Changes in v0.1.5

  • Co-op plays through the whole campaign. Finishing an episode's last level goes on to the next episode's first level (after episode 4, or the last one the server has, back to episode 1). Everyone restarts the new episode with the pistol and full health, as in single player.
  • Co-op players see the episode endings (the cutscene and end screen), then join the next episode. The server doesn't wait, so whoever skips the ending first starts playing first.
  • End screens can be dismissed in VR. "Press a button" screens after an episode's ending stayed frozen in the headset and ignored the controllers, in single player too.
  • Multiplayer: no more broken maps when a level loads slowly. A player whose level took a while to load (e.g. first time on a map) could get a corrupted level, or die outside the map at once.

Changes in v0.1.4

  • Multiplayer: everyone moves to the next level together. When someone uses the exit (for example the nuke button), the server now tells every player. Before, the other players' games changed level late, at a different moment, or not at all, which caused broken levels and freezes.
  • Valve Index: use/open (left grip) works with a light squeeze, instead of needing your whole hand closed around the handle.

Changes in v0.1.3

  • SteamVR: the game renders in VR while SteamVR's dashboard or a system screen has focus. Before, it showed only a flat 2D screen in the headset, for example on the Steam Frame when started outside Steam. Controllers work once the game has focus.
  • Tipping ("shake it baby"): Duke pinches the stack of bills between thumb and index and holds it out, instead of the bills clipping into his palm.
  • Tested on a Steam Frame (native ARM build): VR at a steady 72 fps, and joining a multiplayer server works.

Changes in v0.1.2

  • Windows: the game no longer crashes at startup. It used to crash right after "Initialized … cache", especially with the Voxel Duke pack. The cause was a compiler optimisation (link-time optimisation) in the Windows build corrupting memory; it is now built without it.
  • Multiplayer level changes through the exit work. Before, the next level could load broken (wrong geometry), freeze, or keep putting other players outside the map.
  • Switching to the pistol in multiplayer no longer flips the view to a flat screen for a moment.
  • Voice chat: automatic gain control. Every talker is brought to the same loudness; quiet microphones are raised up to 8x (voice_agc, voice_agc_max_gain).
  • Ducking for real now adapts to sitting down. Seated players were stuck crouched ("very short"). vr_physicalcrouch 0 turns ducking-to-crouch off.
  • One-time map triggers fire once in multiplayer. The E1L1 opening line no longer loops; secret areas and exits also fire once.
  • VR starts on OpenXR 1.0 runtimes such as SteamVR on the Steam Frame.
  • Network statistics in the game log once a minute: round trip, jitter, packet loss.

The server and all players need v0.1.6 or newer (Windows, Linux and ARM releases of the same version play together). To update: ./update.sh / `powershell -ExecutionPolicy Bypass -...

Read more

EDuke VR v0.1.11 (Linux ARM64 / Steam Frame)

Choose a tag to compare

@ObeseCatLord ObeseCatLord released this 03 Nov 17:15

EDuke VR v0.1.11 for Linux on 64-bit ARM: the Steam Frame on SteamOS, and other arm64 Linux.

Changes in v0.1.11

  • Voice chat cuts through the game. While someone talks, the game ducks under them like a radio mix: its speech frequencies (around 1-2 kHz) dip by about 10 dB and the whole game by 3 dB, coming back smoothly when they stop. Explosions and music keep their low end. Adjust with voice_duck and voice_duck_overall (dB, 0 turns either off).
  • Plays with v0.1.9 and v0.1.10 servers and players (no network change).

Changes in v0.1.10

  • Co-op: joining a game already in progress shows doors and lifts as they really are. A player who joined after a door or lift had moved (for example a door that closes by itself when the level starts) could see it in its starting state for the rest of the level, open where it was really shut. Found by the new multiplayer test bots, which have now used every switch, keycard scanner, security screen, door, lift, teleporter, touch plate and crane in episodes 1 to 4.
  • Plays with v0.1.9 servers and players (no network change).

Changes in v0.1.9

  • Everyone sees the world at Duke's size. The game measures how high your eyes are above the floor when you stand and scales your head movement, eye separation and hands so your eyes are at Duke's height (about 1.58 m). Tall and short players get the same view, and every player's body is the same Duke size to the others (bodies used to grow or shrink with the player's height, and grew after a jump).
  • Co-op: keycard scanners work when other players stand near them. Another player standing by a scanner or switch used to catch your "use" instead (E1L2's yellow scanner could not be opened).
  • Co-op: security screens show the camera instead of teleporting you to it.
  • Co-op: the Toxic Dump cranes stay on their rails (one could be pushed off and never reach anyone again) and carry you smoothly instead of jerking several times a second.
  • Co-op: doors, lifts and platforms move the same for every player. Another player could see a door or lift you used stuck half open, or a lift going up and down, while it was really at rest. Leaving a security screen could also crash the server.
  • Co-op: friendly fire is off by default. Turn it on with -ffire on the server's command line or mp_friendlyfire 1 in its console.
  • Mirrors show 3D models the right way round (on the desktop your own Duke showed his back), and other VR players appear once in a mirror instead of twice.
  • Co-op: other players' dead bodies no longer look inside out (Voxel Duke) or keep springing back up and dying again.
  • Co-op: the scream from the Death Row electric chair no longer repeats forever on dedicated servers.
  • Voice chat is louder than the game in VR. Voice chat has its own volume now, and the first time you play in VR, sound effects and music still at their default levels are turned down a little.
  • New mod, Hit Feedback, on by default: enemies you hit throw extra blood (more for harder hits), sometimes gibs and wall splats; drones, recon cars, tanks and turrets throw sparks, smoke and scrap. Gameplay is unchanged. Set EDUKE32_VR_HITFEEDBACK=0 to play without it. It's a normal EDuke32 CON module (data/mods/hitfeedback).
  • Server command net_givekeys gives every player all three keycards.
  • If you built the Voxel Duke model set yourself, the launcher rebuilds it once (for the inside-out bodies fix).
  • The server and all players need v0.1.9; older versions can't join a v0.1.9 server.

Changes in v0.1.8

  • Faster on big open maps on the Steam Frame and other standalone headsets. Voxel objects more than 24 m away are now drawn as their normal sprites; at that distance they look the same, but each one cost as much as a nearby voxel. A Shaky Grounds view went from 18 to about 68 fps. Option: vr_voxeldistance (0 = draw every voxel).
  • Room-over-room maps (many Alien Armageddon maps) render both eyes in one pass instead of one eye at a time, with foveated rendering on the Frame. Images are identical to before.
  • Shadows of voxel and 3D objects no longer flicker against the floor or look different in each eye.
  • Plays with v0.1.6 and v0.1.7 servers and players (no network change).

Changes in v0.1.7

  • Much faster on the Steam Frame (and other SteamOS / Mesa systems). SteamOS's graphics driver was writing a trace message for nearly every drawing call (hundreds of thousands per second). EDuke VR now switches that off for itself. The Shaky Grounds episode went from about 30 to a steady 72 fps on the Frame, with Voxel Duke on.
  • Decals on the floor (scorch marks, splats) no longer flicker or look different in each eye.
  • No scuba mask overlay in VR (it was stuck flat across both eyes).
  • The updater works while the game is running (it used to fail half way on Linux and then report itself up to date). It now finishes or retries in full; on Windows it asks you to close the game first.
  • New option vr_voxeldistance (metres, 0 = all): voxel objects farther away draw as flat sprites, for extra speed on heavy maps.
  • If you built the Voxel Duke model set yourself: the freeze gun is now held from the back, with the side handle as the second hand's grip. The launcher rebuilds the set automatically.
  • Plays with v0.1.6 servers and players (no network change).

Changes in v0.1.6

  • Menus and the crosshair no longer look squashed narrow on headsets whose eye image is square or taller than wide (Valve Index, Bigscreen Beyond and others). Menus, the crosshair and other 2D art now have the same proportions as on a normal monitor.
  • Point at menus with a laser. With a menu open, a beam from your controller shows what you point at; pull the trigger to select (sliders drag too). Pull the other hand's trigger to switch hands. The A / X buttons and the sticks still work. Option: VR Setup > Menu laser pointer.
  • Co-op: shared keycards. A keycard one player picks up opens doors for everyone, including players who join later (host option "Share Keys", on by default). Your own keys now also show on your HUD in multiplayer.
  • Name tags over other players' heads in multiplayer, in their colour, shown as ((Name)) while they talk. Option: VR Setup > Name tags (multiplayer).
  • Radio push-to-talk. In push-to-talk mode, hold a hand up to your ear or mouth like a walkie-talkie to talk; a chirp marks the mic opening and closing. Option: Voice Chat Setup > Hand to head talks (radio), on by default.
  • The server and all players need v0.1.6; older versions can't join a v0.1.6 server.

Changes in v0.1.5

  • Co-op plays through the whole campaign. Finishing an episode's last level goes on to the next episode's first level (after episode 4, or the last one the server has, back to episode 1). Everyone restarts the new episode with the pistol and full health, as in single player.
  • Co-op players see the episode endings (the cutscene and end screen), then join the next episode. The server doesn't wait, so whoever skips the ending first starts playing first.
  • End screens can be dismissed in VR. "Press a button" screens after an episode's ending stayed frozen in the headset and ignored the controllers, in single player too.
  • Multiplayer: no more broken maps when a level loads slowly. A player whose level took a while to load (e.g. first time on a map) could get a corrupted level, or die outside the map at once.

Changes in v0.1.4

  • Multiplayer: everyone moves to the next level together. When someone uses the exit (for example the nuke button), the server now tells every player. Before, the other players' games changed level late, at a different moment, or not at all, which caused broken levels and freezes.
  • Valve Index: use/open (left grip) works with a light squeeze, instead of needing your whole hand closed around the handle.

Changes in v0.1.3

  • SteamVR: the game renders in VR while SteamVR's dashboard or a system screen has focus. Before, it showed only a flat 2D screen in the headset, for example on the Steam Frame when started outside Steam. Controllers work once the game has focus.
  • Tipping ("shake it baby"): Duke pinches the stack of bills between thumb and index and holds it out, instead of the bills clipping into his palm.
  • Tested on a Steam Frame (native ARM build): VR at a steady 72 fps, and joining a multiplayer server works.

Changes in v0.1.2

  • Windows: the game no longer crashes at startup. It used to crash right after "Initialized … cache", especially with the Voxel Duke pack. The cause was a compiler optimisation (link-time optimisation) in the Windows build corrupting memory; it is now built without it.
  • Multiplayer level changes through the exit work. Before, the next level could load broken (wrong geometry), freeze, or keep putting other players outside the map.
  • Switching to the pistol in multiplayer no longer flips the view to a flat screen for a moment.
  • Voice chat: automatic gain control. Every talker is brought to the same loudness; quiet microphones are raised up to 8x (voice_agc, voice_agc_max_gain).
  • Ducking for real now adapts to sitting down. Seated players were stuck crouched ("very short"). vr_physicalcrouch 0 turns ducking-to-crouch off.
  • One-time map triggers fire once in multiplayer. The E1L1 opening line no longer loops; secret areas and exits also fire once.
  • VR starts on OpenXR 1.0 runtimes such as SteamVR on the Steam Frame.
  • Network statistics in the game log once a minute: round trip, jitter, packet loss.

The server and all players need v0.1.6 or newer (Windows, Linux and ARM releases of the same version play together). To update: ./update.sh / powershell -ExecutionPolicy Bypass -File update.ps1.

Install / update

Existing installs: run ./update.sh, which fetches this release on ARM machines. New installs: extract the archive, then run...

Read more

EDuke VR v0.1.11 (Linux)

Choose a tag to compare

@ObeseCatLord ObeseCatLord released this 03 Nov 17:15

EDuke VR v0.1.11: Duke Nukem 3D in VR (OpenXR) and on the desktop, based on EDuke32 r10669. You need your own Duke Nukem 3D data (DUKE3D.GRP, e.g. the 20th Anniversary World Tour on Steam): put it in data/grp/ or let the game find an installed copy.

Changes in v0.1.11

  • Voice chat cuts through the game. While someone talks, the game ducks under them like a radio mix: its speech frequencies (around 1-2 kHz) dip by about 10 dB and the whole game by 3 dB, coming back smoothly when they stop. Explosions and music keep their low end. Adjust with voice_duck and voice_duck_overall (dB, 0 turns either off).
  • Plays with v0.1.9 and v0.1.10 servers and players (no network change).

Changes in v0.1.10

  • Co-op: joining a game already in progress shows doors and lifts as they really are. A player who joined after a door or lift had moved (for example a door that closes by itself when the level starts) could see it in its starting state for the rest of the level, open where it was really shut. Found by the new multiplayer test bots, which have now used every switch, keycard scanner, security screen, door, lift, teleporter, touch plate and crane in episodes 1 to 4.
  • Plays with v0.1.9 servers and players (no network change).

Changes in v0.1.9

  • Everyone sees the world at Duke's size. The game measures how high your eyes are above the floor when you stand and scales your head movement, eye separation and hands so your eyes are at Duke's height (about 1.58 m). Tall and short players get the same view, and every player's body is the same Duke size to the others (bodies used to grow or shrink with the player's height, and grew after a jump).
  • Co-op: keycard scanners work when other players stand near them. Another player standing by a scanner or switch used to catch your "use" instead (E1L2's yellow scanner could not be opened).
  • Co-op: security screens show the camera instead of teleporting you to it.
  • Co-op: the Toxic Dump cranes stay on their rails (one could be pushed off and never reach anyone again) and carry you smoothly instead of jerking several times a second.
  • Co-op: doors, lifts and platforms move the same for every player. Another player could see a door or lift you used stuck half open, or a lift going up and down, while it was really at rest. Leaving a security screen could also crash the server.
  • Co-op: friendly fire is off by default. Turn it on with -ffire on the server's command line or mp_friendlyfire 1 in its console.
  • Mirrors show 3D models the right way round (on the desktop your own Duke showed his back), and other VR players appear once in a mirror instead of twice.
  • Co-op: other players' dead bodies no longer look inside out (Voxel Duke) or keep springing back up and dying again.
  • Co-op: the scream from the Death Row electric chair no longer repeats forever on dedicated servers.
  • Voice chat is louder than the game in VR. Voice chat has its own volume now, and the first time you play in VR, sound effects and music still at their default levels are turned down a little.
  • New mod, Hit Feedback, on by default: enemies you hit throw extra blood (more for harder hits), sometimes gibs and wall splats; drones, recon cars, tanks and turrets throw sparks, smoke and scrap. Gameplay is unchanged. Set EDUKE32_VR_HITFEEDBACK=0 to play without it. It's a normal EDuke32 CON module (data/mods/hitfeedback).
  • Server command net_givekeys gives every player all three keycards.
  • If you built the Voxel Duke model set yourself, the launcher rebuilds it once (for the inside-out bodies fix).
  • The server and all players need v0.1.9; older versions can't join a v0.1.9 server.

Changes in v0.1.8

  • Faster on big open maps on the Steam Frame and other standalone headsets. Voxel objects more than 24 m away are now drawn as their normal sprites; at that distance they look the same, but each one cost as much as a nearby voxel. A Shaky Grounds view went from 18 to about 68 fps. Option: vr_voxeldistance (0 = draw every voxel).
  • Room-over-room maps (many Alien Armageddon maps) render both eyes in one pass instead of one eye at a time, with foveated rendering on the Frame. Images are identical to before.
  • Shadows of voxel and 3D objects no longer flicker against the floor or look different in each eye.
  • Plays with v0.1.6 and v0.1.7 servers and players (no network change).

Changes in v0.1.7

  • Much faster on the Steam Frame (and other SteamOS / Mesa systems). SteamOS's graphics driver was writing a trace message for nearly every drawing call (hundreds of thousands per second). EDuke VR now switches that off for itself. The Shaky Grounds episode went from about 30 to a steady 72 fps on the Frame, with Voxel Duke on.
  • Decals on the floor (scorch marks, splats) no longer flicker or look different in each eye.
  • No scuba mask overlay in VR (it was stuck flat across both eyes).
  • The updater works while the game is running (it used to fail half way on Linux and then report itself up to date). It now finishes or retries in full; on Windows it asks you to close the game first.
  • New option vr_voxeldistance (metres, 0 = all): voxel objects farther away draw as flat sprites, for extra speed on heavy maps.
  • If you built the Voxel Duke model set yourself: the freeze gun is now held from the back, with the side handle as the second hand's grip. The launcher rebuilds the set automatically.
  • Plays with v0.1.6 servers and players (no network change).

Changes in v0.1.6

  • Menus and the crosshair no longer look squashed narrow on headsets whose eye image is square or taller than wide (Valve Index, Bigscreen Beyond and others). Menus, the crosshair and other 2D art now have the same proportions as on a normal monitor.
  • Point at menus with a laser. With a menu open, a beam from your controller shows what you point at; pull the trigger to select (sliders drag too). Pull the other hand's trigger to switch hands. The A / X buttons and the sticks still work. Option: VR Setup > Menu laser pointer.
  • Co-op: shared keycards. A keycard one player picks up opens doors for everyone, including players who join later (host option "Share Keys", on by default). Your own keys now also show on your HUD in multiplayer.
  • Name tags over other players' heads in multiplayer, in their colour, shown as ((Name)) while they talk. Option: VR Setup > Name tags (multiplayer).
  • Radio push-to-talk. In push-to-talk mode, hold a hand up to your ear or mouth like a walkie-talkie to talk; a chirp marks the mic opening and closing. Option: Voice Chat Setup > Hand to head talks (radio), on by default.
  • The server and all players need v0.1.6; older versions can't join a v0.1.6 server.

Changes in v0.1.5

  • Co-op plays through the whole campaign. Finishing an episode's last level goes on to the next episode's first level (after episode 4, or the last one the server has, back to episode 1). Everyone restarts the new episode with the pistol and full health, as in single player.
  • Co-op players see the episode endings (the cutscene and end screen), then join the next episode. The server doesn't wait, so whoever skips the ending first starts playing first.
  • End screens can be dismissed in VR. "Press a button" screens after an episode's ending stayed frozen in the headset and ignored the controllers, in single player too.
  • Multiplayer: no more broken maps when a level loads slowly. A player whose level took a while to load (e.g. first time on a map) could get a corrupted level, or die outside the map at once.

Changes in v0.1.4

  • Multiplayer: everyone moves to the next level together. When someone uses the exit (for example the nuke button), the server now tells every player. Before, the other players' games changed level late, at a different moment, or not at all, which caused broken levels and freezes.
  • Valve Index: use/open (left grip) works with a light squeeze, instead of needing your whole hand closed around the handle.

Changes in v0.1.3

  • SteamVR: the game renders in VR while SteamVR's dashboard or a system screen has focus. Before, it showed only a flat 2D screen in the headset, for example on the Steam Frame when started outside Steam. Controllers work once the game has focus.
  • Tipping ("shake it baby"): Duke pinches the stack of bills between thumb and index and holds it out, instead of the bills clipping into his palm.
  • Tested on a Steam Frame (native ARM build): VR at a steady 72 fps, and joining a multiplayer server works.

Changes in v0.1.2

  • Windows: the game no longer crashes at startup. It used to crash right after "Initialized … cache", especially with the Voxel Duke pack. The cause was a compiler optimisation (link-time optimisation) in the Windows build corrupting memory; it is now built without it.
  • Multiplayer level changes through the exit work. Before, the next level could load broken (wrong geometry), freeze, or keep putting other players outside the map.
  • Switching to the pistol in multiplayer no longer flips the view to a flat screen for a moment.
  • Voice chat: automatic gain control. Every talker is brought to the same loudness; quiet microphones are raised up to 8x (voice_agc, voice_agc_max_gain).
  • Ducking for real now adapts to sitting down. Seated players were stuck crouched ("very short"). vr_physicalcrouch 0 turns ducking-to-crouch off.
  • One-time map triggers fire once in multiplayer. The E1L1 opening line no longer loops; secret areas and exits also fire once.
  • VR starts on OpenXR 1.0 runtimes such as SteamVR on the Steam Frame.
  • Network statistics in the game log once a minute: round trip, jitter, packet loss.

The server and all players need v0.1.6 or newer (Windows, Linux and ARM releases of the same version play together). To update: ./update.sh / `powershell -ExecutionPolicy Bypass -...

Read more

EDuke VR v0.1.10 (Windows)

Choose a tag to compare

@ObeseCatLord ObeseCatLord released this 03 Nov 16:00

EDuke VR v0.1.10: Duke Nukem 3D in VR (OpenXR) and on the desktop, based on EDuke32 r10669. You need your own Duke Nukem 3D data (DUKE3D.GRP, e.g. the 20th Anniversary World Tour on Steam): put it in data/grp/ or let the game find an installed copy.

Changes in v0.1.10

  • Co-op: joining a game already in progress shows doors and lifts as they really are. A player who joined after a door or lift had moved (for example a door that closes by itself when the level starts) could see it in its starting state for the rest of the level, open where it was really shut. Found by the new multiplayer test bots, which have now used every switch, keycard scanner, security screen, door, lift, teleporter, touch plate and crane in episodes 1 to 4.
  • Plays with v0.1.9 servers and players (no network change).

Changes in v0.1.9

  • Everyone sees the world at Duke's size. The game measures how high your eyes are above the floor when you stand and scales your head movement, eye separation and hands so your eyes are at Duke's height (about 1.58 m). Tall and short players get the same view, and every player's body is the same Duke size to the others (bodies used to grow or shrink with the player's height, and grew after a jump).
  • Co-op: keycard scanners work when other players stand near them. Another player standing by a scanner or switch used to catch your "use" instead (E1L2's yellow scanner could not be opened).
  • Co-op: security screens show the camera instead of teleporting you to it.
  • Co-op: the Toxic Dump cranes stay on their rails (one could be pushed off and never reach anyone again) and carry you smoothly instead of jerking several times a second.
  • Co-op: doors, lifts and platforms move the same for every player. Another player could see a door or lift you used stuck half open, or a lift going up and down, while it was really at rest. Leaving a security screen could also crash the server.
  • Co-op: friendly fire is off by default. Turn it on with -ffire on the server's command line or mp_friendlyfire 1 in its console.
  • Mirrors show 3D models the right way round (on the desktop your own Duke showed his back), and other VR players appear once in a mirror instead of twice.
  • Co-op: other players' dead bodies no longer look inside out (Voxel Duke) or keep springing back up and dying again.
  • Co-op: the scream from the Death Row electric chair no longer repeats forever on dedicated servers.
  • Voice chat is louder than the game in VR. Voice chat has its own volume now, and the first time you play in VR, sound effects and music still at their default levels are turned down a little.
  • New mod, Hit Feedback, on by default: enemies you hit throw extra blood (more for harder hits), sometimes gibs and wall splats; drones, recon cars, tanks and turrets throw sparks, smoke and scrap. Gameplay is unchanged. Set EDUKE32_VR_HITFEEDBACK=0 to play without it. It's a normal EDuke32 CON module (data/mods/hitfeedback).
  • Server command net_givekeys gives every player all three keycards.
  • If you built the Voxel Duke model set yourself, the launcher rebuilds it once (for the inside-out bodies fix).
  • The server and all players need v0.1.9; older versions can't join a v0.1.9 server.

Changes in v0.1.8

  • Faster on big open maps on the Steam Frame and other standalone headsets. Voxel objects more than 24 m away are now drawn as their normal sprites; at that distance they look the same, but each one cost as much as a nearby voxel. A Shaky Grounds view went from 18 to about 68 fps. Option: vr_voxeldistance (0 = draw every voxel).
  • Room-over-room maps (many Alien Armageddon maps) render both eyes in one pass instead of one eye at a time, with foveated rendering on the Frame. Images are identical to before.
  • Shadows of voxel and 3D objects no longer flicker against the floor or look different in each eye.
  • Plays with v0.1.6 and v0.1.7 servers and players (no network change).

Changes in v0.1.7

  • Much faster on the Steam Frame (and other SteamOS / Mesa systems). SteamOS's graphics driver was writing a trace message for nearly every drawing call (hundreds of thousands per second). EDuke VR now switches that off for itself. The Shaky Grounds episode went from about 30 to a steady 72 fps on the Frame, with Voxel Duke on.
  • Decals on the floor (scorch marks, splats) no longer flicker or look different in each eye.
  • No scuba mask overlay in VR (it was stuck flat across both eyes).
  • The updater works while the game is running (it used to fail half way on Linux and then report itself up to date). It now finishes or retries in full; on Windows it asks you to close the game first.
  • New option vr_voxeldistance (metres, 0 = all): voxel objects farther away draw as flat sprites, for extra speed on heavy maps.
  • If you built the Voxel Duke model set yourself: the freeze gun is now held from the back, with the side handle as the second hand's grip. The launcher rebuilds the set automatically.
  • Plays with v0.1.6 servers and players (no network change).

Changes in v0.1.6

  • Menus and the crosshair no longer look squashed narrow on headsets whose eye image is square or taller than wide (Valve Index, Bigscreen Beyond and others). Menus, the crosshair and other 2D art now have the same proportions as on a normal monitor.
  • Point at menus with a laser. With a menu open, a beam from your controller shows what you point at; pull the trigger to select (sliders drag too). Pull the other hand's trigger to switch hands. The A / X buttons and the sticks still work. Option: VR Setup > Menu laser pointer.
  • Co-op: shared keycards. A keycard one player picks up opens doors for everyone, including players who join later (host option "Share Keys", on by default). Your own keys now also show on your HUD in multiplayer.
  • Name tags over other players' heads in multiplayer, in their colour, shown as ((Name)) while they talk. Option: VR Setup > Name tags (multiplayer).
  • Radio push-to-talk. In push-to-talk mode, hold a hand up to your ear or mouth like a walkie-talkie to talk; a chirp marks the mic opening and closing. Option: Voice Chat Setup > Hand to head talks (radio), on by default.
  • The server and all players need v0.1.6; older versions can't join a v0.1.6 server.

Changes in v0.1.5

  • Co-op plays through the whole campaign. Finishing an episode's last level goes on to the next episode's first level (after episode 4, or the last one the server has, back to episode 1). Everyone restarts the new episode with the pistol and full health, as in single player.
  • Co-op players see the episode endings (the cutscene and end screen), then join the next episode. The server doesn't wait, so whoever skips the ending first starts playing first.
  • End screens can be dismissed in VR. "Press a button" screens after an episode's ending stayed frozen in the headset and ignored the controllers, in single player too.
  • Multiplayer: no more broken maps when a level loads slowly. A player whose level took a while to load (e.g. first time on a map) could get a corrupted level, or die outside the map at once.

Changes in v0.1.4

  • Multiplayer: everyone moves to the next level together. When someone uses the exit (for example the nuke button), the server now tells every player. Before, the other players' games changed level late, at a different moment, or not at all, which caused broken levels and freezes.
  • Valve Index: use/open (left grip) works with a light squeeze, instead of needing your whole hand closed around the handle.

Changes in v0.1.3

  • SteamVR: the game renders in VR while SteamVR's dashboard or a system screen has focus. Before, it showed only a flat 2D screen in the headset, for example on the Steam Frame when started outside Steam. Controllers work once the game has focus.
  • Tipping ("shake it baby"): Duke pinches the stack of bills between thumb and index and holds it out, instead of the bills clipping into his palm.
  • Tested on a Steam Frame (native ARM build): VR at a steady 72 fps, and joining a multiplayer server works.

Changes in v0.1.2

  • Windows: the game no longer crashes at startup. It used to crash right after "Initialized … cache", especially with the Voxel Duke pack. The cause was a compiler optimisation (link-time optimisation) in the Windows build corrupting memory; it is now built without it.
  • Multiplayer level changes through the exit work. Before, the next level could load broken (wrong geometry), freeze, or keep putting other players outside the map.
  • Switching to the pistol in multiplayer no longer flips the view to a flat screen for a moment.
  • Voice chat: automatic gain control. Every talker is brought to the same loudness; quiet microphones are raised up to 8x (voice_agc, voice_agc_max_gain).
  • Ducking for real now adapts to sitting down. Seated players were stuck crouched ("very short"). vr_physicalcrouch 0 turns ducking-to-crouch off.
  • One-time map triggers fire once in multiplayer. The E1L1 opening line no longer loops; secret areas and exits also fire once.
  • VR starts on OpenXR 1.0 runtimes such as SteamVR on the Steam Frame.
  • Network statistics in the game log once a minute: round trip, jitter, packet loss.

The server and all players need v0.1.6 or newer (Windows, Linux and ARM releases of the same version play together). To update: ./update.sh / powershell -ExecutionPolicy Bypass -File update.ps1.

Windows x64

Run play.bat vr or play.bat desktop; join.bat HOST[:PORT] joins a server; install.ps1 (right-click > Run with PowerShell) adds Start menu entries. VR needs an OpenXR runtime (SteamVR, Meta/Oculus, WMR, Virtual Desktop). Update later with powershell -ExecutionPolicy Bypass -File update.ps1: it fetches the newest Windows release and keeps your game data, model sets, settings and saves.

Linux: see...

Read more

EDuke VR v0.1.10 (Linux ARM64 / Steam Frame)

Choose a tag to compare

@ObeseCatLord ObeseCatLord released this 03 Nov 16:00

EDuke VR v0.1.10 for Linux on 64-bit ARM: the Steam Frame on SteamOS, and other arm64 Linux.

Changes in v0.1.10

  • Co-op: joining a game already in progress shows doors and lifts as they really are. A player who joined after a door or lift had moved (for example a door that closes by itself when the level starts) could see it in its starting state for the rest of the level, open where it was really shut. Found by the new multiplayer test bots, which have now used every switch, keycard scanner, security screen, door, lift, teleporter, touch plate and crane in episodes 1 to 4.
  • Plays with v0.1.9 servers and players (no network change).

Changes in v0.1.9

  • Everyone sees the world at Duke's size. The game measures how high your eyes are above the floor when you stand and scales your head movement, eye separation and hands so your eyes are at Duke's height (about 1.58 m). Tall and short players get the same view, and every player's body is the same Duke size to the others (bodies used to grow or shrink with the player's height, and grew after a jump).
  • Co-op: keycard scanners work when other players stand near them. Another player standing by a scanner or switch used to catch your "use" instead (E1L2's yellow scanner could not be opened).
  • Co-op: security screens show the camera instead of teleporting you to it.
  • Co-op: the Toxic Dump cranes stay on their rails (one could be pushed off and never reach anyone again) and carry you smoothly instead of jerking several times a second.
  • Co-op: doors, lifts and platforms move the same for every player. Another player could see a door or lift you used stuck half open, or a lift going up and down, while it was really at rest. Leaving a security screen could also crash the server.
  • Co-op: friendly fire is off by default. Turn it on with -ffire on the server's command line or mp_friendlyfire 1 in its console.
  • Mirrors show 3D models the right way round (on the desktop your own Duke showed his back), and other VR players appear once in a mirror instead of twice.
  • Co-op: other players' dead bodies no longer look inside out (Voxel Duke) or keep springing back up and dying again.
  • Co-op: the scream from the Death Row electric chair no longer repeats forever on dedicated servers.
  • Voice chat is louder than the game in VR. Voice chat has its own volume now, and the first time you play in VR, sound effects and music still at their default levels are turned down a little.
  • New mod, Hit Feedback, on by default: enemies you hit throw extra blood (more for harder hits), sometimes gibs and wall splats; drones, recon cars, tanks and turrets throw sparks, smoke and scrap. Gameplay is unchanged. Set EDUKE32_VR_HITFEEDBACK=0 to play without it. It's a normal EDuke32 CON module (data/mods/hitfeedback).
  • Server command net_givekeys gives every player all three keycards.
  • If you built the Voxel Duke model set yourself, the launcher rebuilds it once (for the inside-out bodies fix).
  • The server and all players need v0.1.9; older versions can't join a v0.1.9 server.

Changes in v0.1.8

  • Faster on big open maps on the Steam Frame and other standalone headsets. Voxel objects more than 24 m away are now drawn as their normal sprites; at that distance they look the same, but each one cost as much as a nearby voxel. A Shaky Grounds view went from 18 to about 68 fps. Option: vr_voxeldistance (0 = draw every voxel).
  • Room-over-room maps (many Alien Armageddon maps) render both eyes in one pass instead of one eye at a time, with foveated rendering on the Frame. Images are identical to before.
  • Shadows of voxel and 3D objects no longer flicker against the floor or look different in each eye.
  • Plays with v0.1.6 and v0.1.7 servers and players (no network change).

Changes in v0.1.7

  • Much faster on the Steam Frame (and other SteamOS / Mesa systems). SteamOS's graphics driver was writing a trace message for nearly every drawing call (hundreds of thousands per second). EDuke VR now switches that off for itself. The Shaky Grounds episode went from about 30 to a steady 72 fps on the Frame, with Voxel Duke on.
  • Decals on the floor (scorch marks, splats) no longer flicker or look different in each eye.
  • No scuba mask overlay in VR (it was stuck flat across both eyes).
  • The updater works while the game is running (it used to fail half way on Linux and then report itself up to date). It now finishes or retries in full; on Windows it asks you to close the game first.
  • New option vr_voxeldistance (metres, 0 = all): voxel objects farther away draw as flat sprites, for extra speed on heavy maps.
  • If you built the Voxel Duke model set yourself: the freeze gun is now held from the back, with the side handle as the second hand's grip. The launcher rebuilds the set automatically.
  • Plays with v0.1.6 servers and players (no network change).

Changes in v0.1.6

  • Menus and the crosshair no longer look squashed narrow on headsets whose eye image is square or taller than wide (Valve Index, Bigscreen Beyond and others). Menus, the crosshair and other 2D art now have the same proportions as on a normal monitor.
  • Point at menus with a laser. With a menu open, a beam from your controller shows what you point at; pull the trigger to select (sliders drag too). Pull the other hand's trigger to switch hands. The A / X buttons and the sticks still work. Option: VR Setup > Menu laser pointer.
  • Co-op: shared keycards. A keycard one player picks up opens doors for everyone, including players who join later (host option "Share Keys", on by default). Your own keys now also show on your HUD in multiplayer.
  • Name tags over other players' heads in multiplayer, in their colour, shown as ((Name)) while they talk. Option: VR Setup > Name tags (multiplayer).
  • Radio push-to-talk. In push-to-talk mode, hold a hand up to your ear or mouth like a walkie-talkie to talk; a chirp marks the mic opening and closing. Option: Voice Chat Setup > Hand to head talks (radio), on by default.
  • The server and all players need v0.1.6; older versions can't join a v0.1.6 server.

Changes in v0.1.5

  • Co-op plays through the whole campaign. Finishing an episode's last level goes on to the next episode's first level (after episode 4, or the last one the server has, back to episode 1). Everyone restarts the new episode with the pistol and full health, as in single player.
  • Co-op players see the episode endings (the cutscene and end screen), then join the next episode. The server doesn't wait, so whoever skips the ending first starts playing first.
  • End screens can be dismissed in VR. "Press a button" screens after an episode's ending stayed frozen in the headset and ignored the controllers, in single player too.
  • Multiplayer: no more broken maps when a level loads slowly. A player whose level took a while to load (e.g. first time on a map) could get a corrupted level, or die outside the map at once.

Changes in v0.1.4

  • Multiplayer: everyone moves to the next level together. When someone uses the exit (for example the nuke button), the server now tells every player. Before, the other players' games changed level late, at a different moment, or not at all, which caused broken levels and freezes.
  • Valve Index: use/open (left grip) works with a light squeeze, instead of needing your whole hand closed around the handle.

Changes in v0.1.3

  • SteamVR: the game renders in VR while SteamVR's dashboard or a system screen has focus. Before, it showed only a flat 2D screen in the headset, for example on the Steam Frame when started outside Steam. Controllers work once the game has focus.
  • Tipping ("shake it baby"): Duke pinches the stack of bills between thumb and index and holds it out, instead of the bills clipping into his palm.
  • Tested on a Steam Frame (native ARM build): VR at a steady 72 fps, and joining a multiplayer server works.

Changes in v0.1.2

  • Windows: the game no longer crashes at startup. It used to crash right after "Initialized … cache", especially with the Voxel Duke pack. The cause was a compiler optimisation (link-time optimisation) in the Windows build corrupting memory; it is now built without it.
  • Multiplayer level changes through the exit work. Before, the next level could load broken (wrong geometry), freeze, or keep putting other players outside the map.
  • Switching to the pistol in multiplayer no longer flips the view to a flat screen for a moment.
  • Voice chat: automatic gain control. Every talker is brought to the same loudness; quiet microphones are raised up to 8x (voice_agc, voice_agc_max_gain).
  • Ducking for real now adapts to sitting down. Seated players were stuck crouched ("very short"). vr_physicalcrouch 0 turns ducking-to-crouch off.
  • One-time map triggers fire once in multiplayer. The E1L1 opening line no longer loops; secret areas and exits also fire once.
  • VR starts on OpenXR 1.0 runtimes such as SteamVR on the Steam Frame.
  • Network statistics in the game log once a minute: round trip, jitter, packet loss.

The server and all players need v0.1.6 or newer (Windows, Linux and ARM releases of the same version play together). To update: ./update.sh / powershell -ExecutionPolicy Bypass -File update.ps1.

Install / update

Existing installs: run ./update.sh, which fetches this release on ARM machines. New installs: extract the archive, then run ./play.sh vr or ./play.sh desktop. ./join.sh HOST[:PORT] joins a server. On SteamOS, add play.sh as a non-Steam game. Requires glibc 2.31+, SDL2, and for VR an OpenXR runtime that supports OpenGL (SteamVR on the Frame lists it).

You need your own Duke Nukem 3D data (DUKE3D.GRP): put it in data/grp/, or let the game find an installed copy. Multiplayer works with v0.1.0 players and servers.

**Not yet confirmed on a Frame heads...

Read more

EDuke VR v0.1.10 (Linux)

Choose a tag to compare

@ObeseCatLord ObeseCatLord released this 03 Nov 15:59

EDuke VR v0.1.10: Duke Nukem 3D in VR (OpenXR) and on the desktop, based on EDuke32 r10669. You need your own Duke Nukem 3D data (DUKE3D.GRP, e.g. the 20th Anniversary World Tour on Steam): put it in data/grp/ or let the game find an installed copy.

Changes in v0.1.10

  • Co-op: joining a game already in progress shows doors and lifts as they really are. A player who joined after a door or lift had moved (for example a door that closes by itself when the level starts) could see it in its starting state for the rest of the level, open where it was really shut. Found by the new multiplayer test bots, which have now used every switch, keycard scanner, security screen, door, lift, teleporter, touch plate and crane in episodes 1 to 4.
  • Plays with v0.1.9 servers and players (no network change).

Changes in v0.1.9

  • Everyone sees the world at Duke's size. The game measures how high your eyes are above the floor when you stand and scales your head movement, eye separation and hands so your eyes are at Duke's height (about 1.58 m). Tall and short players get the same view, and every player's body is the same Duke size to the others (bodies used to grow or shrink with the player's height, and grew after a jump).
  • Co-op: keycard scanners work when other players stand near them. Another player standing by a scanner or switch used to catch your "use" instead (E1L2's yellow scanner could not be opened).
  • Co-op: security screens show the camera instead of teleporting you to it.
  • Co-op: the Toxic Dump cranes stay on their rails (one could be pushed off and never reach anyone again) and carry you smoothly instead of jerking several times a second.
  • Co-op: doors, lifts and platforms move the same for every player. Another player could see a door or lift you used stuck half open, or a lift going up and down, while it was really at rest. Leaving a security screen could also crash the server.
  • Co-op: friendly fire is off by default. Turn it on with -ffire on the server's command line or mp_friendlyfire 1 in its console.
  • Mirrors show 3D models the right way round (on the desktop your own Duke showed his back), and other VR players appear once in a mirror instead of twice.
  • Co-op: other players' dead bodies no longer look inside out (Voxel Duke) or keep springing back up and dying again.
  • Co-op: the scream from the Death Row electric chair no longer repeats forever on dedicated servers.
  • Voice chat is louder than the game in VR. Voice chat has its own volume now, and the first time you play in VR, sound effects and music still at their default levels are turned down a little.
  • New mod, Hit Feedback, on by default: enemies you hit throw extra blood (more for harder hits), sometimes gibs and wall splats; drones, recon cars, tanks and turrets throw sparks, smoke and scrap. Gameplay is unchanged. Set EDUKE32_VR_HITFEEDBACK=0 to play without it. It's a normal EDuke32 CON module (data/mods/hitfeedback).
  • Server command net_givekeys gives every player all three keycards.
  • If you built the Voxel Duke model set yourself, the launcher rebuilds it once (for the inside-out bodies fix).
  • The server and all players need v0.1.9; older versions can't join a v0.1.9 server.

Changes in v0.1.8

  • Faster on big open maps on the Steam Frame and other standalone headsets. Voxel objects more than 24 m away are now drawn as their normal sprites; at that distance they look the same, but each one cost as much as a nearby voxel. A Shaky Grounds view went from 18 to about 68 fps. Option: vr_voxeldistance (0 = draw every voxel).
  • Room-over-room maps (many Alien Armageddon maps) render both eyes in one pass instead of one eye at a time, with foveated rendering on the Frame. Images are identical to before.
  • Shadows of voxel and 3D objects no longer flicker against the floor or look different in each eye.
  • Plays with v0.1.6 and v0.1.7 servers and players (no network change).

Changes in v0.1.7

  • Much faster on the Steam Frame (and other SteamOS / Mesa systems). SteamOS's graphics driver was writing a trace message for nearly every drawing call (hundreds of thousands per second). EDuke VR now switches that off for itself. The Shaky Grounds episode went from about 30 to a steady 72 fps on the Frame, with Voxel Duke on.
  • Decals on the floor (scorch marks, splats) no longer flicker or look different in each eye.
  • No scuba mask overlay in VR (it was stuck flat across both eyes).
  • The updater works while the game is running (it used to fail half way on Linux and then report itself up to date). It now finishes or retries in full; on Windows it asks you to close the game first.
  • New option vr_voxeldistance (metres, 0 = all): voxel objects farther away draw as flat sprites, for extra speed on heavy maps.
  • If you built the Voxel Duke model set yourself: the freeze gun is now held from the back, with the side handle as the second hand's grip. The launcher rebuilds the set automatically.
  • Plays with v0.1.6 servers and players (no network change).

Changes in v0.1.6

  • Menus and the crosshair no longer look squashed narrow on headsets whose eye image is square or taller than wide (Valve Index, Bigscreen Beyond and others). Menus, the crosshair and other 2D art now have the same proportions as on a normal monitor.
  • Point at menus with a laser. With a menu open, a beam from your controller shows what you point at; pull the trigger to select (sliders drag too). Pull the other hand's trigger to switch hands. The A / X buttons and the sticks still work. Option: VR Setup > Menu laser pointer.
  • Co-op: shared keycards. A keycard one player picks up opens doors for everyone, including players who join later (host option "Share Keys", on by default). Your own keys now also show on your HUD in multiplayer.
  • Name tags over other players' heads in multiplayer, in their colour, shown as ((Name)) while they talk. Option: VR Setup > Name tags (multiplayer).
  • Radio push-to-talk. In push-to-talk mode, hold a hand up to your ear or mouth like a walkie-talkie to talk; a chirp marks the mic opening and closing. Option: Voice Chat Setup > Hand to head talks (radio), on by default.
  • The server and all players need v0.1.6; older versions can't join a v0.1.6 server.

Changes in v0.1.5

  • Co-op plays through the whole campaign. Finishing an episode's last level goes on to the next episode's first level (after episode 4, or the last one the server has, back to episode 1). Everyone restarts the new episode with the pistol and full health, as in single player.
  • Co-op players see the episode endings (the cutscene and end screen), then join the next episode. The server doesn't wait, so whoever skips the ending first starts playing first.
  • End screens can be dismissed in VR. "Press a button" screens after an episode's ending stayed frozen in the headset and ignored the controllers, in single player too.
  • Multiplayer: no more broken maps when a level loads slowly. A player whose level took a while to load (e.g. first time on a map) could get a corrupted level, or die outside the map at once.

Changes in v0.1.4

  • Multiplayer: everyone moves to the next level together. When someone uses the exit (for example the nuke button), the server now tells every player. Before, the other players' games changed level late, at a different moment, or not at all, which caused broken levels and freezes.
  • Valve Index: use/open (left grip) works with a light squeeze, instead of needing your whole hand closed around the handle.

Changes in v0.1.3

  • SteamVR: the game renders in VR while SteamVR's dashboard or a system screen has focus. Before, it showed only a flat 2D screen in the headset, for example on the Steam Frame when started outside Steam. Controllers work once the game has focus.
  • Tipping ("shake it baby"): Duke pinches the stack of bills between thumb and index and holds it out, instead of the bills clipping into his palm.
  • Tested on a Steam Frame (native ARM build): VR at a steady 72 fps, and joining a multiplayer server works.

Changes in v0.1.2

  • Windows: the game no longer crashes at startup. It used to crash right after "Initialized … cache", especially with the Voxel Duke pack. The cause was a compiler optimisation (link-time optimisation) in the Windows build corrupting memory; it is now built without it.
  • Multiplayer level changes through the exit work. Before, the next level could load broken (wrong geometry), freeze, or keep putting other players outside the map.
  • Switching to the pistol in multiplayer no longer flips the view to a flat screen for a moment.
  • Voice chat: automatic gain control. Every talker is brought to the same loudness; quiet microphones are raised up to 8x (voice_agc, voice_agc_max_gain).
  • Ducking for real now adapts to sitting down. Seated players were stuck crouched ("very short"). vr_physicalcrouch 0 turns ducking-to-crouch off.
  • One-time map triggers fire once in multiplayer. The E1L1 opening line no longer loops; secret areas and exits also fire once.
  • VR starts on OpenXR 1.0 runtimes such as SteamVR on the Steam Frame.
  • Network statistics in the game log once a minute: round trip, jitter, packet loss.

The server and all players need v0.1.6 or newer (Windows, Linux and ARM releases of the same version play together). To update: ./update.sh / powershell -ExecutionPolicy Bypass -File update.ps1.

Linux x86_64

Run ./play.sh vr or ./play.sh desktop; ./join.sh HOST[:PORT] joins a server; ./install.sh adds menu entries. Needs glibc 2.38+ (Ubuntu 24.04, Debian 13, Fedora 39, Arch...), SDL2, and for VR an OpenXR runtime (SteamVR, Monado/Envision, WiVRn). Update later with ./update.sh: it fetches the newest Linux release and keeps your game data, model sets, settings and saves.

Windows: see the -windows...

Read more

EDuke VR v0.1.9 (Windows)

Choose a tag to compare

@ObeseCatLord ObeseCatLord released this 03 Nov 11:19

EDuke VR v0.1.9: Duke Nukem 3D in VR (OpenXR) and on the desktop, based on EDuke32 r10669. You need your own Duke Nukem 3D data (DUKE3D.GRP, e.g. the 20th Anniversary World Tour on Steam): put it in data/grp/ or let the game find an installed copy.

Changes in v0.1.9

  • Everyone sees the world at Duke's size. The game measures how high your eyes are above the floor when you stand and scales your head movement, eye separation and hands so your eyes are at Duke's height (about 1.58 m). Tall and short players get the same view, and every player's body is the same Duke size to the others (bodies used to grow or shrink with the player's height, and grew after a jump).
  • Co-op: keycard scanners work when other players stand near them. Another player standing by a scanner or switch used to catch your "use" instead (E1L2's yellow scanner could not be opened).
  • Co-op: security screens show the camera instead of teleporting you to it.
  • Co-op: the Toxic Dump cranes stay on their rails (one could be pushed off and never reach anyone again) and carry you smoothly instead of jerking several times a second.
  • Co-op: doors, lifts and platforms move the same for every player. Another player could see a door or lift you used stuck half open, or a lift going up and down, while it was really at rest. Leaving a security screen could also crash the server.
  • Co-op: friendly fire is off by default. Turn it on with -ffire on the server's command line or mp_friendlyfire 1 in its console.
  • Mirrors show 3D models the right way round (on the desktop your own Duke showed his back), and other VR players appear once in a mirror instead of twice.
  • Co-op: other players' dead bodies no longer look inside out (Voxel Duke) or keep springing back up and dying again.
  • Co-op: the scream from the Death Row electric chair no longer repeats forever on dedicated servers.
  • Voice chat is louder than the game in VR. Voice chat has its own volume now, and the first time you play in VR, sound effects and music still at their default levels are turned down a little.
  • New mod, Hit Feedback, on by default: enemies you hit throw extra blood (more for harder hits), sometimes gibs and wall splats; drones, recon cars, tanks and turrets throw sparks, smoke and scrap. Gameplay is unchanged. Set EDUKE32_VR_HITFEEDBACK=0 to play without it. It's a normal EDuke32 CON module (data/mods/hitfeedback).
  • Server command net_givekeys gives every player all three keycards.
  • If you built the Voxel Duke model set yourself, the launcher rebuilds it once (for the inside-out bodies fix).
  • The server and all players need v0.1.9; older versions can't join a v0.1.9 server.

Changes in v0.1.8

  • Faster on big open maps on the Steam Frame and other standalone headsets. Voxel objects more than 24 m away are now drawn as their normal sprites; at that distance they look the same, but each one cost as much as a nearby voxel. A Shaky Grounds view went from 18 to about 68 fps. Option: vr_voxeldistance (0 = draw every voxel).
  • Room-over-room maps (many Alien Armageddon maps) render both eyes in one pass instead of one eye at a time, with foveated rendering on the Frame. Images are identical to before.
  • Shadows of voxel and 3D objects no longer flicker against the floor or look different in each eye.
  • Plays with v0.1.6 and v0.1.7 servers and players (no network change).

Changes in v0.1.7

  • Much faster on the Steam Frame (and other SteamOS / Mesa systems). SteamOS's graphics driver was writing a trace message for nearly every drawing call (hundreds of thousands per second). EDuke VR now switches that off for itself. The Shaky Grounds episode went from about 30 to a steady 72 fps on the Frame, with Voxel Duke on.
  • Decals on the floor (scorch marks, splats) no longer flicker or look different in each eye.
  • No scuba mask overlay in VR (it was stuck flat across both eyes).
  • The updater works while the game is running (it used to fail half way on Linux and then report itself up to date). It now finishes or retries in full; on Windows it asks you to close the game first.
  • New option vr_voxeldistance (metres, 0 = all): voxel objects farther away draw as flat sprites, for extra speed on heavy maps.
  • If you built the Voxel Duke model set yourself: the freeze gun is now held from the back, with the side handle as the second hand's grip. The launcher rebuilds the set automatically.
  • Plays with v0.1.6 servers and players (no network change).

Changes in v0.1.6

  • Menus and the crosshair no longer look squashed narrow on headsets whose eye image is square or taller than wide (Valve Index, Bigscreen Beyond and others). Menus, the crosshair and other 2D art now have the same proportions as on a normal monitor.
  • Point at menus with a laser. With a menu open, a beam from your controller shows what you point at; pull the trigger to select (sliders drag too). Pull the other hand's trigger to switch hands. The A / X buttons and the sticks still work. Option: VR Setup > Menu laser pointer.
  • Co-op: shared keycards. A keycard one player picks up opens doors for everyone, including players who join later (host option "Share Keys", on by default). Your own keys now also show on your HUD in multiplayer.
  • Name tags over other players' heads in multiplayer, in their colour, shown as ((Name)) while they talk. Option: VR Setup > Name tags (multiplayer).
  • Radio push-to-talk. In push-to-talk mode, hold a hand up to your ear or mouth like a walkie-talkie to talk; a chirp marks the mic opening and closing. Option: Voice Chat Setup > Hand to head talks (radio), on by default.
  • The server and all players need v0.1.6; older versions can't join a v0.1.6 server.

Changes in v0.1.5

  • Co-op plays through the whole campaign. Finishing an episode's last level goes on to the next episode's first level (after episode 4, or the last one the server has, back to episode 1). Everyone restarts the new episode with the pistol and full health, as in single player.
  • Co-op players see the episode endings (the cutscene and end screen), then join the next episode. The server doesn't wait, so whoever skips the ending first starts playing first.
  • End screens can be dismissed in VR. "Press a button" screens after an episode's ending stayed frozen in the headset and ignored the controllers, in single player too.
  • Multiplayer: no more broken maps when a level loads slowly. A player whose level took a while to load (e.g. first time on a map) could get a corrupted level, or die outside the map at once.

Changes in v0.1.4

  • Multiplayer: everyone moves to the next level together. When someone uses the exit (for example the nuke button), the server now tells every player. Before, the other players' games changed level late, at a different moment, or not at all, which caused broken levels and freezes.
  • Valve Index: use/open (left grip) works with a light squeeze, instead of needing your whole hand closed around the handle.

Changes in v0.1.3

  • SteamVR: the game renders in VR while SteamVR's dashboard or a system screen has focus. Before, it showed only a flat 2D screen in the headset, for example on the Steam Frame when started outside Steam. Controllers work once the game has focus.
  • Tipping ("shake it baby"): Duke pinches the stack of bills between thumb and index and holds it out, instead of the bills clipping into his palm.
  • Tested on a Steam Frame (native ARM build): VR at a steady 72 fps, and joining a multiplayer server works.

Changes in v0.1.2

  • Windows: the game no longer crashes at startup. It used to crash right after "Initialized … cache", especially with the Voxel Duke pack. The cause was a compiler optimisation (link-time optimisation) in the Windows build corrupting memory; it is now built without it.
  • Multiplayer level changes through the exit work. Before, the next level could load broken (wrong geometry), freeze, or keep putting other players outside the map.
  • Switching to the pistol in multiplayer no longer flips the view to a flat screen for a moment.
  • Voice chat: automatic gain control. Every talker is brought to the same loudness; quiet microphones are raised up to 8x (voice_agc, voice_agc_max_gain).
  • Ducking for real now adapts to sitting down. Seated players were stuck crouched ("very short"). vr_physicalcrouch 0 turns ducking-to-crouch off.
  • One-time map triggers fire once in multiplayer. The E1L1 opening line no longer loops; secret areas and exits also fire once.
  • VR starts on OpenXR 1.0 runtimes such as SteamVR on the Steam Frame.
  • Network statistics in the game log once a minute: round trip, jitter, packet loss.

The server and all players need v0.1.6 or newer (Windows, Linux and ARM releases of the same version play together). To update: ./update.sh / powershell -ExecutionPolicy Bypass -File update.ps1.

Windows x64

Run play.bat vr or play.bat desktop; join.bat HOST[:PORT] joins a server; install.ps1 (right-click > Run with PowerShell) adds Start menu entries. VR needs an OpenXR runtime (SteamVR, Meta/Oculus, WMR, Virtual Desktop). Update later with powershell -ExecutionPolicy Bypass -File update.ps1: it fetches the newest Windows release and keeps your game data, model sets, settings and saves.

Linux: see the -linux release.

Features

  • Tracked hands with held 3D weapons; two-handed aiming; physical pipebomb throws; mighty foot.
  • Full IK body, also seen by other players.
  • Wrist HUD; weapon and gadget wheels with ammo rings.
  • Original and original-lowres model sets.
  • Client/server multiplayer (co-op and DukeMatch) with voice chat; VR and desktop players together. The server and all clients must run the same version; Windows and Linux releases with the same number play together.
  • Fixed in this release:
    • Multiplayer level changes no longer cr...
Read more

EDuke VR v0.1.9 (Linux ARM64 / Steam Frame)

Choose a tag to compare

@ObeseCatLord ObeseCatLord released this 03 Nov 11:17

EDuke VR v0.1.9 for Linux on 64-bit ARM: the Steam Frame on SteamOS, and other arm64 Linux.

Changes in v0.1.9

  • Everyone sees the world at Duke's size. The game measures how high your eyes are above the floor when you stand and scales your head movement, eye separation and hands so your eyes are at Duke's height (about 1.58 m). Tall and short players get the same view, and every player's body is the same Duke size to the others (bodies used to grow or shrink with the player's height, and grew after a jump).
  • Co-op: keycard scanners work when other players stand near them. Another player standing by a scanner or switch used to catch your "use" instead (E1L2's yellow scanner could not be opened).
  • Co-op: security screens show the camera instead of teleporting you to it.
  • Co-op: the Toxic Dump cranes stay on their rails (one could be pushed off and never reach anyone again) and carry you smoothly instead of jerking several times a second.
  • Co-op: doors, lifts and platforms move the same for every player. Another player could see a door or lift you used stuck half open, or a lift going up and down, while it was really at rest. Leaving a security screen could also crash the server.
  • Co-op: friendly fire is off by default. Turn it on with -ffire on the server's command line or mp_friendlyfire 1 in its console.
  • Mirrors show 3D models the right way round (on the desktop your own Duke showed his back), and other VR players appear once in a mirror instead of twice.
  • Co-op: other players' dead bodies no longer look inside out (Voxel Duke) or keep springing back up and dying again.
  • Co-op: the scream from the Death Row electric chair no longer repeats forever on dedicated servers.
  • Voice chat is louder than the game in VR. Voice chat has its own volume now, and the first time you play in VR, sound effects and music still at their default levels are turned down a little.
  • New mod, Hit Feedback, on by default: enemies you hit throw extra blood (more for harder hits), sometimes gibs and wall splats; drones, recon cars, tanks and turrets throw sparks, smoke and scrap. Gameplay is unchanged. Set EDUKE32_VR_HITFEEDBACK=0 to play without it. It's a normal EDuke32 CON module (data/mods/hitfeedback).
  • Server command net_givekeys gives every player all three keycards.
  • If you built the Voxel Duke model set yourself, the launcher rebuilds it once (for the inside-out bodies fix).
  • The server and all players need v0.1.9; older versions can't join a v0.1.9 server.

Changes in v0.1.8

  • Faster on big open maps on the Steam Frame and other standalone headsets. Voxel objects more than 24 m away are now drawn as their normal sprites; at that distance they look the same, but each one cost as much as a nearby voxel. A Shaky Grounds view went from 18 to about 68 fps. Option: vr_voxeldistance (0 = draw every voxel).
  • Room-over-room maps (many Alien Armageddon maps) render both eyes in one pass instead of one eye at a time, with foveated rendering on the Frame. Images are identical to before.
  • Shadows of voxel and 3D objects no longer flicker against the floor or look different in each eye.
  • Plays with v0.1.6 and v0.1.7 servers and players (no network change).

Changes in v0.1.7

  • Much faster on the Steam Frame (and other SteamOS / Mesa systems). SteamOS's graphics driver was writing a trace message for nearly every drawing call (hundreds of thousands per second). EDuke VR now switches that off for itself. The Shaky Grounds episode went from about 30 to a steady 72 fps on the Frame, with Voxel Duke on.
  • Decals on the floor (scorch marks, splats) no longer flicker or look different in each eye.
  • No scuba mask overlay in VR (it was stuck flat across both eyes).
  • The updater works while the game is running (it used to fail half way on Linux and then report itself up to date). It now finishes or retries in full; on Windows it asks you to close the game first.
  • New option vr_voxeldistance (metres, 0 = all): voxel objects farther away draw as flat sprites, for extra speed on heavy maps.
  • If you built the Voxel Duke model set yourself: the freeze gun is now held from the back, with the side handle as the second hand's grip. The launcher rebuilds the set automatically.
  • Plays with v0.1.6 servers and players (no network change).

Changes in v0.1.6

  • Menus and the crosshair no longer look squashed narrow on headsets whose eye image is square or taller than wide (Valve Index, Bigscreen Beyond and others). Menus, the crosshair and other 2D art now have the same proportions as on a normal monitor.
  • Point at menus with a laser. With a menu open, a beam from your controller shows what you point at; pull the trigger to select (sliders drag too). Pull the other hand's trigger to switch hands. The A / X buttons and the sticks still work. Option: VR Setup > Menu laser pointer.
  • Co-op: shared keycards. A keycard one player picks up opens doors for everyone, including players who join later (host option "Share Keys", on by default). Your own keys now also show on your HUD in multiplayer.
  • Name tags over other players' heads in multiplayer, in their colour, shown as ((Name)) while they talk. Option: VR Setup > Name tags (multiplayer).
  • Radio push-to-talk. In push-to-talk mode, hold a hand up to your ear or mouth like a walkie-talkie to talk; a chirp marks the mic opening and closing. Option: Voice Chat Setup > Hand to head talks (radio), on by default.
  • The server and all players need v0.1.6; older versions can't join a v0.1.6 server.

Changes in v0.1.5

  • Co-op plays through the whole campaign. Finishing an episode's last level goes on to the next episode's first level (after episode 4, or the last one the server has, back to episode 1). Everyone restarts the new episode with the pistol and full health, as in single player.
  • Co-op players see the episode endings (the cutscene and end screen), then join the next episode. The server doesn't wait, so whoever skips the ending first starts playing first.
  • End screens can be dismissed in VR. "Press a button" screens after an episode's ending stayed frozen in the headset and ignored the controllers, in single player too.
  • Multiplayer: no more broken maps when a level loads slowly. A player whose level took a while to load (e.g. first time on a map) could get a corrupted level, or die outside the map at once.

Changes in v0.1.4

  • Multiplayer: everyone moves to the next level together. When someone uses the exit (for example the nuke button), the server now tells every player. Before, the other players' games changed level late, at a different moment, or not at all, which caused broken levels and freezes.
  • Valve Index: use/open (left grip) works with a light squeeze, instead of needing your whole hand closed around the handle.

Changes in v0.1.3

  • SteamVR: the game renders in VR while SteamVR's dashboard or a system screen has focus. Before, it showed only a flat 2D screen in the headset, for example on the Steam Frame when started outside Steam. Controllers work once the game has focus.
  • Tipping ("shake it baby"): Duke pinches the stack of bills between thumb and index and holds it out, instead of the bills clipping into his palm.
  • Tested on a Steam Frame (native ARM build): VR at a steady 72 fps, and joining a multiplayer server works.

Changes in v0.1.2

  • Windows: the game no longer crashes at startup. It used to crash right after "Initialized … cache", especially with the Voxel Duke pack. The cause was a compiler optimisation (link-time optimisation) in the Windows build corrupting memory; it is now built without it.
  • Multiplayer level changes through the exit work. Before, the next level could load broken (wrong geometry), freeze, or keep putting other players outside the map.
  • Switching to the pistol in multiplayer no longer flips the view to a flat screen for a moment.
  • Voice chat: automatic gain control. Every talker is brought to the same loudness; quiet microphones are raised up to 8x (voice_agc, voice_agc_max_gain).
  • Ducking for real now adapts to sitting down. Seated players were stuck crouched ("very short"). vr_physicalcrouch 0 turns ducking-to-crouch off.
  • One-time map triggers fire once in multiplayer. The E1L1 opening line no longer loops; secret areas and exits also fire once.
  • VR starts on OpenXR 1.0 runtimes such as SteamVR on the Steam Frame.
  • Network statistics in the game log once a minute: round trip, jitter, packet loss.

The server and all players need v0.1.6 or newer (Windows, Linux and ARM releases of the same version play together). To update: ./update.sh / powershell -ExecutionPolicy Bypass -File update.ps1.

Install / update

Existing installs: run ./update.sh, which fetches this release on ARM machines. New installs: extract the archive, then run ./play.sh vr or ./play.sh desktop. ./join.sh HOST[:PORT] joins a server. On SteamOS, add play.sh as a non-Steam game. Requires glibc 2.31+, SDL2, and for VR an OpenXR runtime that supports OpenGL (SteamVR on the Frame lists it).

You need your own Duke Nukem 3D data (DUKE3D.GRP): put it in data/grp/, or let the game find an installed copy. Multiplayer works with v0.1.0 players and servers.

Not yet confirmed on a Frame headset: if VR still doesn't start there, the game's log from that run shows where it failed.

x86_64 Linux: see the -linux release. Windows: see the -windows release.

License

GPL v2 (EDuke32 and this port) plus Ken Silverman's BUILD license for the engine (non-commercial). Third-party library licenses are in licenses/. The source is this tag (the "Source code" downloads below). No game data is included.

EDuke VR v0.1.9 (Linux)

Choose a tag to compare

@ObeseCatLord ObeseCatLord released this 03 Nov 11:14

EDuke VR v0.1.9: Duke Nukem 3D in VR (OpenXR) and on the desktop, based on EDuke32 r10669. You need your own Duke Nukem 3D data (DUKE3D.GRP, e.g. the 20th Anniversary World Tour on Steam): put it in data/grp/ or let the game find an installed copy.

Changes in v0.1.9

  • Everyone sees the world at Duke's size. The game measures how high your eyes are above the floor when you stand and scales your head movement, eye separation and hands so your eyes are at Duke's height (about 1.58 m). Tall and short players get the same view, and every player's body is the same Duke size to the others (bodies used to grow or shrink with the player's height, and grew after a jump).
  • Co-op: keycard scanners work when other players stand near them. Another player standing by a scanner or switch used to catch your "use" instead (E1L2's yellow scanner could not be opened).
  • Co-op: security screens show the camera instead of teleporting you to it.
  • Co-op: the Toxic Dump cranes stay on their rails (one could be pushed off and never reach anyone again) and carry you smoothly instead of jerking several times a second.
  • Co-op: doors, lifts and platforms move the same for every player. Another player could see a door or lift you used stuck half open, or a lift going up and down, while it was really at rest. Leaving a security screen could also crash the server.
  • Co-op: friendly fire is off by default. Turn it on with -ffire on the server's command line or mp_friendlyfire 1 in its console.
  • Mirrors show 3D models the right way round (on the desktop your own Duke showed his back), and other VR players appear once in a mirror instead of twice.
  • Co-op: other players' dead bodies no longer look inside out (Voxel Duke) or keep springing back up and dying again.
  • Co-op: the scream from the Death Row electric chair no longer repeats forever on dedicated servers.
  • Voice chat is louder than the game in VR. Voice chat has its own volume now, and the first time you play in VR, sound effects and music still at their default levels are turned down a little.
  • New mod, Hit Feedback, on by default: enemies you hit throw extra blood (more for harder hits), sometimes gibs and wall splats; drones, recon cars, tanks and turrets throw sparks, smoke and scrap. Gameplay is unchanged. Set EDUKE32_VR_HITFEEDBACK=0 to play without it. It's a normal EDuke32 CON module (data/mods/hitfeedback).
  • Server command net_givekeys gives every player all three keycards.
  • If you built the Voxel Duke model set yourself, the launcher rebuilds it once (for the inside-out bodies fix).
  • The server and all players need v0.1.9; older versions can't join a v0.1.9 server.

Changes in v0.1.8

  • Faster on big open maps on the Steam Frame and other standalone headsets. Voxel objects more than 24 m away are now drawn as their normal sprites; at that distance they look the same, but each one cost as much as a nearby voxel. A Shaky Grounds view went from 18 to about 68 fps. Option: vr_voxeldistance (0 = draw every voxel).
  • Room-over-room maps (many Alien Armageddon maps) render both eyes in one pass instead of one eye at a time, with foveated rendering on the Frame. Images are identical to before.
  • Shadows of voxel and 3D objects no longer flicker against the floor or look different in each eye.
  • Plays with v0.1.6 and v0.1.7 servers and players (no network change).

Changes in v0.1.7

  • Much faster on the Steam Frame (and other SteamOS / Mesa systems). SteamOS's graphics driver was writing a trace message for nearly every drawing call (hundreds of thousands per second). EDuke VR now switches that off for itself. The Shaky Grounds episode went from about 30 to a steady 72 fps on the Frame, with Voxel Duke on.
  • Decals on the floor (scorch marks, splats) no longer flicker or look different in each eye.
  • No scuba mask overlay in VR (it was stuck flat across both eyes).
  • The updater works while the game is running (it used to fail half way on Linux and then report itself up to date). It now finishes or retries in full; on Windows it asks you to close the game first.
  • New option vr_voxeldistance (metres, 0 = all): voxel objects farther away draw as flat sprites, for extra speed on heavy maps.
  • If you built the Voxel Duke model set yourself: the freeze gun is now held from the back, with the side handle as the second hand's grip. The launcher rebuilds the set automatically.
  • Plays with v0.1.6 servers and players (no network change).

Changes in v0.1.6

  • Menus and the crosshair no longer look squashed narrow on headsets whose eye image is square or taller than wide (Valve Index, Bigscreen Beyond and others). Menus, the crosshair and other 2D art now have the same proportions as on a normal monitor.
  • Point at menus with a laser. With a menu open, a beam from your controller shows what you point at; pull the trigger to select (sliders drag too). Pull the other hand's trigger to switch hands. The A / X buttons and the sticks still work. Option: VR Setup > Menu laser pointer.
  • Co-op: shared keycards. A keycard one player picks up opens doors for everyone, including players who join later (host option "Share Keys", on by default). Your own keys now also show on your HUD in multiplayer.
  • Name tags over other players' heads in multiplayer, in their colour, shown as ((Name)) while they talk. Option: VR Setup > Name tags (multiplayer).
  • Radio push-to-talk. In push-to-talk mode, hold a hand up to your ear or mouth like a walkie-talkie to talk; a chirp marks the mic opening and closing. Option: Voice Chat Setup > Hand to head talks (radio), on by default.
  • The server and all players need v0.1.6; older versions can't join a v0.1.6 server.

Changes in v0.1.5

  • Co-op plays through the whole campaign. Finishing an episode's last level goes on to the next episode's first level (after episode 4, or the last one the server has, back to episode 1). Everyone restarts the new episode with the pistol and full health, as in single player.
  • Co-op players see the episode endings (the cutscene and end screen), then join the next episode. The server doesn't wait, so whoever skips the ending first starts playing first.
  • End screens can be dismissed in VR. "Press a button" screens after an episode's ending stayed frozen in the headset and ignored the controllers, in single player too.
  • Multiplayer: no more broken maps when a level loads slowly. A player whose level took a while to load (e.g. first time on a map) could get a corrupted level, or die outside the map at once.

Changes in v0.1.4

  • Multiplayer: everyone moves to the next level together. When someone uses the exit (for example the nuke button), the server now tells every player. Before, the other players' games changed level late, at a different moment, or not at all, which caused broken levels and freezes.
  • Valve Index: use/open (left grip) works with a light squeeze, instead of needing your whole hand closed around the handle.

Changes in v0.1.3

  • SteamVR: the game renders in VR while SteamVR's dashboard or a system screen has focus. Before, it showed only a flat 2D screen in the headset, for example on the Steam Frame when started outside Steam. Controllers work once the game has focus.
  • Tipping ("shake it baby"): Duke pinches the stack of bills between thumb and index and holds it out, instead of the bills clipping into his palm.
  • Tested on a Steam Frame (native ARM build): VR at a steady 72 fps, and joining a multiplayer server works.

Changes in v0.1.2

  • Windows: the game no longer crashes at startup. It used to crash right after "Initialized … cache", especially with the Voxel Duke pack. The cause was a compiler optimisation (link-time optimisation) in the Windows build corrupting memory; it is now built without it.
  • Multiplayer level changes through the exit work. Before, the next level could load broken (wrong geometry), freeze, or keep putting other players outside the map.
  • Switching to the pistol in multiplayer no longer flips the view to a flat screen for a moment.
  • Voice chat: automatic gain control. Every talker is brought to the same loudness; quiet microphones are raised up to 8x (voice_agc, voice_agc_max_gain).
  • Ducking for real now adapts to sitting down. Seated players were stuck crouched ("very short"). vr_physicalcrouch 0 turns ducking-to-crouch off.
  • One-time map triggers fire once in multiplayer. The E1L1 opening line no longer loops; secret areas and exits also fire once.
  • VR starts on OpenXR 1.0 runtimes such as SteamVR on the Steam Frame.
  • Network statistics in the game log once a minute: round trip, jitter, packet loss.

The server and all players need v0.1.6 or newer (Windows, Linux and ARM releases of the same version play together). To update: ./update.sh / powershell -ExecutionPolicy Bypass -File update.ps1.

Linux x86_64

Run ./play.sh vr or ./play.sh desktop; ./join.sh HOST[:PORT] joins a server; ./install.sh adds menu entries. Needs glibc 2.38+ (Ubuntu 24.04, Debian 13, Fedora 39, Arch...), SDL2, and for VR an OpenXR runtime (SteamVR, Monado/Envision, WiVRn). Update later with ./update.sh: it fetches the newest Linux release and keeps your game data, model sets, settings and saves.

Windows: see the -windows release.

Features

  • Tracked hands with held 3D weapons; two-handed aiming; physical pipebomb throws; mighty foot.
  • Full IK body, also seen by other players.
  • Wrist HUD; weapon and gadget wheels with ammo rings.
  • Original and original-lowres model sets.
  • Client/server multiplayer (co-op and DukeMatch) with voice chat; VR and desktop players together. The server and all clients must run the same version; Windows and Linux releases with the same number play together.
  • Fixed in this release:
    • Multiplayer level changes no longer crash or kill t...
Read more

EDuke VR v0.1.8 (Windows)

Choose a tag to compare

@ObeseCatLord ObeseCatLord released this 02 Nov 15:23

EDuke VR v0.1.8: Duke Nukem 3D in VR (OpenXR) and on the desktop, based on EDuke32 r10669. You need your own Duke Nukem 3D data (DUKE3D.GRP, e.g. the 20th Anniversary World Tour on Steam): put it in data/grp/ or let the game find an installed copy.

Changes in v0.1.8

  • Faster on big open maps on the Steam Frame and other standalone headsets. Voxel objects more than 24 m away are now drawn as their normal sprites; at that distance they look the same, but each one cost as much as a nearby voxel. A Shaky Grounds view went from 18 to about 68 fps. Option: vr_voxeldistance (0 = draw every voxel).
  • Room-over-room maps (many Alien Armageddon maps) render both eyes in one pass instead of one eye at a time, with foveated rendering on the Frame. Images are identical to before.
  • Shadows of voxel and 3D objects no longer flicker against the floor or look different in each eye.
  • Plays with v0.1.6 and v0.1.7 servers and players (no network change).

Changes in v0.1.7

  • Much faster on the Steam Frame (and other SteamOS / Mesa systems). SteamOS's graphics driver was writing a trace message for nearly every drawing call (hundreds of thousands per second). EDuke VR now switches that off for itself. The Shaky Grounds episode went from about 30 to a steady 72 fps on the Frame, with Voxel Duke on.
  • Decals on the floor (scorch marks, splats) no longer flicker or look different in each eye.
  • No scuba mask overlay in VR (it was stuck flat across both eyes).
  • The updater works while the game is running (it used to fail half way on Linux and then report itself up to date). It now finishes or retries in full; on Windows it asks you to close the game first.
  • New option vr_voxeldistance (metres, 0 = all): voxel objects farther away draw as flat sprites, for extra speed on heavy maps.
  • If you built the Voxel Duke model set yourself: the freeze gun is now held from the back, with the side handle as the second hand's grip. The launcher rebuilds the set automatically.
  • Plays with v0.1.6 servers and players (no network change).

Changes in v0.1.6

  • Menus and the crosshair no longer look squashed narrow on headsets whose eye image is square or taller than wide (Valve Index, Bigscreen Beyond and others). Menus, the crosshair and other 2D art now have the same proportions as on a normal monitor.
  • Point at menus with a laser. With a menu open, a beam from your controller shows what you point at; pull the trigger to select (sliders drag too). Pull the other hand's trigger to switch hands. The A / X buttons and the sticks still work. Option: VR Setup > Menu laser pointer.
  • Co-op: shared keycards. A keycard one player picks up opens doors for everyone, including players who join later (host option "Share Keys", on by default). Your own keys now also show on your HUD in multiplayer.
  • Name tags over other players' heads in multiplayer, in their colour, shown as ((Name)) while they talk. Option: VR Setup > Name tags (multiplayer).
  • Radio push-to-talk. In push-to-talk mode, hold a hand up to your ear or mouth like a walkie-talkie to talk; a chirp marks the mic opening and closing. Option: Voice Chat Setup > Hand to head talks (radio), on by default.
  • The server and all players need v0.1.6; older versions can't join a v0.1.6 server.

Changes in v0.1.5

  • Co-op plays through the whole campaign. Finishing an episode's last level goes on to the next episode's first level (after episode 4, or the last one the server has, back to episode 1). Everyone restarts the new episode with the pistol and full health, as in single player.
  • Co-op players see the episode endings (the cutscene and end screen), then join the next episode. The server doesn't wait, so whoever skips the ending first starts playing first.
  • End screens can be dismissed in VR. "Press a button" screens after an episode's ending stayed frozen in the headset and ignored the controllers, in single player too.
  • Multiplayer: no more broken maps when a level loads slowly. A player whose level took a while to load (e.g. first time on a map) could get a corrupted level, or die outside the map at once.

Changes in v0.1.4

  • Multiplayer: everyone moves to the next level together. When someone uses the exit (for example the nuke button), the server now tells every player. Before, the other players' games changed level late, at a different moment, or not at all, which caused broken levels and freezes.
  • Valve Index: use/open (left grip) works with a light squeeze, instead of needing your whole hand closed around the handle.

Changes in v0.1.3

  • SteamVR: the game renders in VR while SteamVR's dashboard or a system screen has focus. Before, it showed only a flat 2D screen in the headset, for example on the Steam Frame when started outside Steam. Controllers work once the game has focus.
  • Tipping ("shake it baby"): Duke pinches the stack of bills between thumb and index and holds it out, instead of the bills clipping into his palm.
  • Tested on a Steam Frame (native ARM build): VR at a steady 72 fps, and joining a multiplayer server works.

Changes in v0.1.2

  • Windows: the game no longer crashes at startup. It used to crash right after "Initialized … cache", especially with the Voxel Duke pack. The cause was a compiler optimisation (link-time optimisation) in the Windows build corrupting memory; it is now built without it.
  • Multiplayer level changes through the exit work. Before, the next level could load broken (wrong geometry), freeze, or keep putting other players outside the map.
  • Switching to the pistol in multiplayer no longer flips the view to a flat screen for a moment.
  • Voice chat: automatic gain control. Every talker is brought to the same loudness; quiet microphones are raised up to 8x (voice_agc, voice_agc_max_gain).
  • Ducking for real now adapts to sitting down. Seated players were stuck crouched ("very short"). vr_physicalcrouch 0 turns ducking-to-crouch off.
  • One-time map triggers fire once in multiplayer. The E1L1 opening line no longer loops; secret areas and exits also fire once.
  • VR starts on OpenXR 1.0 runtimes such as SteamVR on the Steam Frame.
  • Network statistics in the game log once a minute: round trip, jitter, packet loss.

The server and all players need v0.1.6 or newer (Windows, Linux and ARM releases of the same version play together). To update: ./update.sh / powershell -ExecutionPolicy Bypass -File update.ps1.

Windows x64

Run play.bat vr or play.bat desktop; join.bat HOST[:PORT] joins a server; install.ps1 (right-click > Run with PowerShell) adds Start menu entries. VR needs an OpenXR runtime (SteamVR, Meta/Oculus, WMR, Virtual Desktop). Update later with powershell -ExecutionPolicy Bypass -File update.ps1: it fetches the newest Windows release and keeps your game data, model sets, settings and saves.

Linux: see the -linux release.

Features

  • Tracked hands with held 3D weapons; two-handed aiming; physical pipebomb throws; mighty foot.
  • Full IK body, also seen by other players.
  • Wrist HUD; weapon and gadget wheels with ammo rings.
  • Original and original-lowres model sets.
  • Client/server multiplayer (co-op and DukeMatch) with voice chat; VR and desktop players together. The server and all clients must run the same version; Windows and Linux releases with the same number play together.
  • Fixed in this release:
    • Multiplayer level changes no longer crash or kill the player.
    • Joining no longer counts as a death.
    • Weapon switching no longer flickers in multiplayer.
    • Use follows the left hand.
    • Vents are easier: jumping in works, and ducking crouches.
    • Your head is kept out of walls.

License

GPL v2 (EDuke32 and this port) plus Ken Silverman's BUILD license for the engine (non-commercial). Third-party library licenses are in licenses/. The source is this tag (the "Source code" downloads below). No game data is included.