gameflorist / quakespasm-openvr

Quake for Windows OpenVR (based on Fishbiter/Quakespasm-OpenVR with up-to-date Quakespasm)
GNU General Public License v2.0
9 stars 1 forks source link

QuakeSpasm-OpenVR

Latest Release

Windows Build Status

OpenVR support integrated into QuakeSpasm. The goal of this fork is primarily to keep it up-to-date with the current versions of QuakeSpasm and OpenVR. This allows maximized MOD support and support for the Enhanced Edition aka Re-Release of Quake.

There is however no big further development planned apart from minor features and bugfixes.

If your are looking for a much more feature rich VR experience, check out Quake VR (see section below on differences between both projects).

Here are the changes to the last iterations of QuakeSpasm-OpenVR by vittorioromero and Fishbiter:

Quake VR vs QuakeSpasm-OpenVR?

Vittorio Romeo expanded QuakeSpasm-OpenVR considerably into the most excellent Quake VR, which is definitely a much more feature rich VR implementation - including teleportation, finger tracking, VR interactions, two-handed weapons, dual wielding, holsters and much more.

It is however a heavily modified version of QuakeSpasm, which is not compatible with enhanced mods (like Arcane Dimensions) out-of-the-box, and does not allow multiplayer-crossplay with non-VR players.

I would recommend you to enjoy Quake VR primarily with vanilla Quake, it's official expansions as well as supported maps.

For a more bare-bone experience supporting all features of current QuakeSpasm (e.g. support for Arcane Dimensions and the Enhanced Edition), or cross-play multiplayer with non-VR-players QuakeSpasm-OpenVR would probably be the better option.

History

This fork of QuakeSpasm...

Setup and Usage

Extract the most recent release into your Quake or Quake\rerelease folder (where the subfolder Id1 resides).

Launch quakespasm-openvr.exe.

HD Textures

There is a HD textures package available. Simply extract the zip-file into the Id1 subfolder (where PAK0.PAK is located).

You can also download a HD texture pack for Arcane Dimensions here. Simply extract the textures folder into your ad directory.

Enhanced Models

There are also 3 mods available containing enhanced models for enemies and weapons. These can also be used with QuakeSpasm-OpenVR.

You can also use multiple MODs in conjunction. E.g. load the Authentic pack first as e.g. pak1.pak to get the wide arrange of models and then the Plague's Weapon Pack second e.g. as pak2.pak to get the better VR-optimized weapon models. Of course you have to set Gun Model Offsets to Plague in this case.

Controls

Both head-based (default) and controller-based movement is supported. You can change it in the VR options.

Input from VR Controllers are mapped to various joystick-related input (except the left Application Menu button is bound to ESCAPE). The fork comes with the following reasonable default binding:

Controller Button Key Mapping Default Action
Left Trigger LTRIGGER Jump
Right Trigger RTRIGGER Attack / Enter in Menu
Left Application Menu / B Button ESCAPE Toggle Menu / Escape
Right Application Menu / B Button BBUTTON Next Weapon
Left Pad/Stick Click LTHUMB Run
Right Pad/Stick Click RTHUMB Jump
Left Grip LSHOULDER Show Scores
Right Grip RSHOULDER Jump
Left A Button ABUTTON Show Scores
Right A Button XBUTTON Previous Weapon
Right Axis 2 Press YBUTTON none
Right Pad/Stick Up UPARROW none
Right Pad/Stick Down DOWNARROW none
Right Pad/Stick Left LEFTARROW none
Right Pad/Stick Right RIGHTARROW none

Important infos

Tips on weapon selection

Quick weapon selection is not so easily achievable with the limited buttons available on VR controllers, and just relying on next/previous weapon buttons is a disadvantage. There is a trick to mitigate this:

In Quake the normal Nailgun gets arguably obsolete, once the Super Nailgun is obtained. It is the same with the Shotguns, as well as Grenade- and Rocket-Launchers.

QuakeSpasm allows a button-binding e.g. like this: impulse 4; wait; impulse 5. This will select the Nailgun, if you have it, and then immediately try to select the Super Nailgun, if you have it. Effectively using this button as "Gimme the best nailgun!".

Now, if you use roomscale-turning, you have the right stick free for additional bindings. You could e.g. bind the directions like this in the config.cfg:

bind "UPARROW" "impulse 2; wait; impulse 3"
bind "DOWNARROW" "impulse 6; wait; impulse 7"
bind "LEFTARROW" "impulse 8"
bind "RIGHTARROW" "impulse 4; wait; impulse 5"

Throw in bind "RTHUMB" "impulse 1" to select the Axe on stick-press, and the perfect weapon for the current situation will always just a push or click away.

Mission Packs, Add-Ons and Mods

All mission packs, add-ons and mods (supported by QuakeSpasm) should work out of the box. This includes:

As usual, expansion packs and mods are placed inside subfolders and then launched by stating the subfolder via the game parameter (e.g. quakespasm-openvr.exe -game hipnotic).

Quake Enhanced Edtion (aka Re-Release) stores it's Add-Ons in C:\Users\<your-user>\Saved Games\Nightdive Studios\Quake\. You have to copy the subfolders (e.g. honey or q64) of this folder into the folder where quakespasm-openvr.exe is located and launch the Add-On like stated above.

Known Issues

Cvars


New cvars for analog stick (and touchpad?) tuning on VR controllers. Default values should behave the same as before, but note that this version has not been tested with snap turning enabled. These have only been tested with analog sticks (Oculus Touch and Index Controllers), no idea how they behave with Vive touchpads.

Note about weapons

Quake's weapons don't seem to be particularly consistently sized or offset. To work around this there are cvars to position/scale correct the weapons. Working default offsets are included for the following weapons:

Unsupported mods may require new offsets. You can modify offsets by using the following cvars:

There are 25 slots for weapon VR offsets. There are 5 cvars for each (nn can be 01 to 25):

Here are the nn values for all vanilla and mission pack weapons:

Weapon nn
Axe 01
Shotgun 02
Super Shotgun 03
Nailgun 04
Super Nailgun 05
Grenade Launcher 06
Rocket Launcher 07
Scourge of Armagon (hipnotic):
Thunderbold 08
Mjolnir Hammer 09
Laser Cannon 10
Proximity Launcher 11
Dissolution of Eternity (rogue):
Lava Nailgun 12
Lava Super Nailgun 13
Multi Grenade Launcher 14
Multi Rocket Launcher 15
Plasma Gun 16

You can place any modified cvars in an autoexec.cfg in the mod's directory to apply them for a mod, or in id1 to apply them globally.

If you have found working values for a mod, feel free to create an issue, and i will try to include support for them out-of-the-box!

Development and Building

Merging current QuakeSpasm

Here is how to merge the current version of QuakeSpasm:

git remote add sezero https://github.com/sezero/quakespasm.git
git fetch sezero --tags
git merge quakespasm-0.95.1 // use tag of new version to merge

Building on Windows

Here is how to build this fork on Windows:

  1. Install current version of Visual Studio (17.5.3 at the time of writing) with C++ workloads.
  2. Open the file .\Windows\VisualStudio\quakespasm.sln in Visual Studio
  3. Build quakespasm-sdl2.
  4. As usual you also need a id1 folder with a PAK0.PAK to be able to launch the game.