• Stars
    star
    186
  • Rank 207,316 (Top 5 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Quake VR mod supporting room-scale movement, hand interactions, and melee attacks.

Quake VR

The timeless classic from 1996, reimagined for virtual reality.

(Visit the official landing page for videos and more information.)

Main Features

  • Smooth locomotion
  • Teleportation
  • Fully room-scale (including jumping)
  • Hand tracking (including full finger tracking)
  • Weapon models with hands and ironsights
  • VR interactions (melee, headbutts, pick up items, press buttons)
  • Rebalanced for VR (hitboxes, difficulty, projectile speed)
  • Steam VR Input API support (can rebind inputs in Steam VR settings)
  • Many customization options (e.g. melee damage/range, hand/body item pickup, and more)
  • Brand new particle system (smoke, blood, lightning effects, and more)
  • Haptic feedback (weapons, melee, damage, interactions with items)
  • Full Scourge of Armagon support (weapons, enemies, maps)
  • Full Dissolution of Eternity support (weapons, enemies, maps)
  • Two-handed weapon aiming (with virtual stock support)
  • Weapon weight simulation
  • Grappling hook (from Dissolution of Eternity)
  • Positional damage (headshots, leg shots)
  • Dual-wielding
  • Weapon holster system (hip and shoulders, fully customizable)
  • Weapon throwing & force grabbing
  • Multiplayer support (also with bots)
  • Weapon reload system
  • Sandbox map

Disclaimer

  • This is a free open-source project done for fun and to contribute to the VR community. Donations are appreciated, but making money is not a goal for Quake VR.
  • The project is still in an early stage. Expect bugs and lack of polish. It was fully tested only with a Valve Index headset and controllers.
  • Tweaking the settings in-game is highly recommended before playing. The default settings might not be ideal for your hardware and body proportions.
  • The game heavily relies on modified QuakeC files. Therefore, mods or expansion packs are not compatible out of the box, but should be easy to port.
  • Feel free to open issues or contact me at [email protected] for any issue, feature request, or question about the code.
  • Join us on the official Discord for discussion, feedback, and beta testing. (Direct invite link.)

Installation

  1. Install "Visual C++ x64 Redistributable" package.

  2. Install 7zip

  3. Install "Quake". The Steam version works well.

  4. Grab the latest binary from the releases page.

  5. Extract the Quake VR archive into a new, empty folder (e.g. C:/Games/id/Quake/quakevr).

  6. Navigate to the id1 folder in your installation of Quake (e.g. C:/Program Files/Steam/steamapps/common/Quake/id1) and copy both PAK0.PAK and PAK1.PAK to Quake VR's id1 folder (e.g. C:/Games/id/Quake/quakevr/id1).

  7. Run the quakevr.exe executable in the root folder to launch the game!

  8. (optional) To enable music, copy the music folder from the 'remaster' (e.g. C:/Program Files/Steam/steamapps/common/Quake/rerelease/id1/music) to Quake VR's id1 folder as well.

Mission Packs

Quake VR supports both of the official mission packs. They can be installed alongside the regular Quake files, enabling you to switch between them without having to restart Quake VR.

NOTE: With the release of the Quake 'remaster', both mission packs are included with the base game and no longer need to be purchased seperately.

Mission Pack 1: Scourge of Armagon

  1. Navigate to the hipnotic folder in your installation of Quake (e.g. C:/Program Files/Steam/steamapps/common/Quake/hipnotic)

  2. Make a copy of PAK0.PAK, and rename it to PAK2.PAK.

  3. Copy the newly created PAK2.PAK into your Quake VR's id1 folder (e.g. C:/Games/id/Quake/quakevr/id1).

Mission Pack 2: Dissolution of Eternity

  1. Navigate to the rogue folder in your installation of Quake (e.g. C:/Program Files/Steam/steamapps/common/Quake/rogue)

  2. Make a copy of PAK0.PAK, and rename it to PAK3.PAK.

  3. Copy the newly created PAK3.PAK into your Quake VR's id1 folder (e.g. C:/Games/id/Quake/quakevr/id1).

The contents of your id1 folder should now contain:

  • Official Quake files: PAK0.PAK and PAK1.PAK;
  • Scourge of Armagon mission pack files: PAK2.PAK;
  • Dissolution of Eternity mission pack files: PAK3.PAK;
  • Quake VR files: PAK10.PAK, PAK11.PAK, PAK12.PAK.

(The load order of .PAK files is based on their naming. You can rename the mission pack files to anything else, as long as it is before the Quake VR specific .PAK files. This allows you to also add extra .PAK files, such as high-resolution models or other compatible additions.)

When a mission pack is installed, it overwrites Quake 1's start.bsp with its own starting map. In order to play Quake 1 maps, use the "Change Map" functionality under "Quake VR Settings".

HD Textures and Soundtrack

The HD Textures and Soundtrack (alternative link addon is highly recommended to improve immersion.

Extra Multiplayer Maps with Bot Support

Quake VR comes with Frikbot X++, which adds AI opponents for deathmatch. As the vanilla multiplayer map pool is quite limited, the following map pack and Frikbot waypoint collection are strongly advised if you are interested in playing against bots:

Custom Maps

For supported custom maps, please see CUSTOM_MAPS.md.

Vispatching/Colored Lighting

The Quake VR engine supports transparent water and colored lighting, however original Quake maps need to be patched in order for it to work properly. It is therefore highly recommended that you patch your Quake maps.

You can find the patch files here. Merely copy all the .vis and .lit files from the maps directory of the downloaded archive into your maps directory in your Quake VR installation's id1 folder (e.g. C:/Games/id/Quake/quakevr/id1/maps) (this might break lighting on the level select maps start.bsp but shouldn't interfere with the actual levels. If you want, you can delete start.lit and start.vis from the maps folder to prevent this).

Once your maps are patched, go through the options in the "Transparency Options" menu under "Quake VR Settings" to enable/tweak transparency levels.

First Steps

SteamVR Bindings

The first thing you should do after starting Quake VR is opening the "Controller Bindings" interface on SteamVR and ensure that in-game actions are mapped to the motion controllers. There are two action sets to bind: one for in-game actions, and one for menu control. See an example video here.

In-Game Configuration

After setting up your bindings, please go through all the options in "Quake VR Settings", and tweak the game to your liking. Do not forget to:

  • Calibrate your height;
  • Tweak the position of the "VR torso" and of the holsters ("hotspots");
  • Go through the "Immersion Settings".

There is no "best" way of playing Quake VR. Simply use the settings that you enjoy the most!

Multiplayer

Versus Bots

To play against bots, select "Multiplayer & Bots" from the main menu, then "New Game" and follow the on-screen instructions. When in-game, spawn new bots from the "Bot Control" menu under "Multiplayer & Bots".

On the Internet

Coordinate with other players on the official Quake VR Discord. The host of the game will start a server by going to "Multiplayer & Bots" from the main menu, then "New Game". The host will then share their public IPV4 address with other players, which will connect from the "Join a Game" menu. The virtual keyboard can be used to insert the IP address.

Note that the host needs to properly forward their ports and ensure that their public IP is accessible from the Internet.

At the moment there is no server browser and no dedicated server support. Also, only Windows servers are supported. Dedicated Linux servers and an easier way to play together will be the next goals for Quake VR.

Troubleshooting

  • The game seems to work fine, but there is no audio!

    • Ensure that the correct audio output device is set (HMD) and that the volume is turned up.

    • Open the Desktop view from your Steam VR dashboard, and make sure that the Quake VR window is in focus. You can bring it in focus by clicking on it.

    • Check that the in-game audio settings are correct.

  • How do I obtain the grappling hook?

    • The grappling hook is available in the sandbox map, accessible through the "single player" menu.

    • The grappling hook is also available through cheats: it is a very fun toy but it would completely break the progression of most levels. To obtain it, go to the "Debug Utilities" sub-menu under the "Quake VR Dev Tools" menu - there will be an option to enable it there. You can then spawn it by using the "Impulse 14 (Spawn All)" command, or cycle to it if you have weapon cycling enabled.

  • My issue is not listed here!

Credits

(Please forgive me if I am forgetting someone. I will update this list as needed.)

Fan Coverage

(Thanks everyone for playing Quake VR! If you have created content related to the mod, please let me know and I'll add it to this list.)

More Repositories

1

SSVOpenHexagon

C++20 FOSS clone of "Super Hexagon". Depends on SSVStart, SSVEntitySystem, SSVLuaWrapper, SSVMenuSystem, JSONcpp, SFML2.0. Features JSON/LUA customizable game files, a soundtrack by BOSSFIGHT, pseudo-3D effects.
C
609
star
2

ecst

[WIP] Experimental C++14 multithreaded compile-time entity-component-system library.
C++
460
star
3

Tutorials

Repository for my YouTube tutorials + code snippets
C++
228
star
4

camomilla

Simple Python script that simplifies C++ compiler errors. Useful when using heavily-templated libraries.
Python
181
star
5

scelta

(experimental) Syntactic sugar for variant and optional types.
C++
149
star
6

cppcon2015

Repository for the slides and the code of my CppCon 2015 talks.
C++
94
star
7

cppcon2014

Repository for the slides and the code of my "Quick game development with C++11/C++14" CppCon 2014 talk.
C++
88
star
8

SSVUtils

[HEADER-ONLY] C++14 multi-purpose utility library that only depends on the STL.
C++
61
star
9

vr-game-checklist

Checklist for Virtual Reality game developers.
54
star
10

vittorioromeo.info

Latest iteration of my static webpage/blog generator
Assembly
51
star
11

cppnow2016

Repository for my C++Now 2016 sessions.
Assembly
41
star
12

bcs_thesis

My bachelor's thesis on the Entity-Component-System pattern and ECST
TeX
37
star
13

vrm_core

Lightweight C++14 utility library. (Modernized, stripped and cleaned-up version of SSVUtils.)
C++
33
star
14

SSVSCollision

[HEADER-ONLY] C++14 AABB simple collision detection/response framework for games. Depends on SSVStart, SFML2.0. It has nice performance. Features interchangeable spatial partitioning and resolution systems, a way to prevent the "crack problem", easy to use C++11 lambda callbacks for collision events. It's not perfect, but it should work very well for any simple 2D game.
C++
30
star
15

orizzonte

WIP
Assembly
26
star
16

unosolo

Work-in-progress Rust application that converts C++ header-only libraries to single self-contained headers.
Rust
26
star
17

SSVBloodshed

C++14 arcade game, spiritual successor to "Operation Carnage"
C++
22
star
18

SSVEntitySystem

[HEADER-ONLY] C++14 simple entity/component system for realtime games. Simplicity of use is preferred over a real "entity-component-system" hierarchy. Components update and draw themselves (users create their own components and override the virtual methods). Fast, easy to use and to expand. Should be fine for any simple game.
C++
20
star
19

meetingcpp2016

Repository for my Meeting C++ 2016 sessions.
Assembly
18
star
20

vscode-expand-selection-to-scope

Extension that introduces a command to incrementally expand the selection to the nearest outer scope.
TypeScript
18
star
21

DelversChoice

Game originally created for GGJ2015...
C++
15
star
22

SSVStart

[HEADER-ONLY] C++14 SFML2.0 application/game development framework. Features asset loading, windows, cameras, file system, logging, vector calculations, and many other game-dev oriented features.
C++
15
star
23

vrm_pp

Small C++ preprocessor library
C++
13
star
24

Experiments

Experimental/work-in-progress code
Assembly
11
star
25

oreilly

Material and work for O'Reilly courses and publications
C++
11
star
26

presentations

Repository containing all my presentations/tutorials/talks.
10
star
27

cpponsea2019

Repository for my "C++ On Sea 2019" talks.
10
star
28

meetingcpp2015

My Meeting C++ lightning talks: "Meaningful Casts" and "Static If".
C++
10
star
29

git-ws

C++14 command line utility (git plugin) to work with multiple git repositories at once
C++
9
star
30

accu2018

Repository for my ACCU 2018 presentations.
9
star
31

cppcon2021

Repository for my CppCon 2021 talks.
8
star
32

VeeGen

(ABANDONED) 2D terrain/dungeon generation library for games
C#
8
star
33

DiscountCpp

[HEADER-ONLY] C++11 wrapper for the markdown library "Discount"
C++
8
star
34

majsdown

WIP
C++
7
star
35

cppnow2015

Repository for my C++Now 2015 Lightning Talk: "for_each_arg explained and expanded"
C++
7
star
36

Specimen

(ABANDONED) An example game using SFMLStart, VeeEntitySystem2012, VeeCollision and VeeShadow
C#
6
star
37

cppcon2019

Repository for my CppCon 2019 talks.
6
star
38

cppnow2019

Repository for my C++ Now 2019 talks.
5
star
39

sokoban-rs-cpp

C++
5
star
40

cppnow2017

Repository for my C++Now 2017 talks.
5
star
41

cpplondon

Repository for my C++ London Meetup talks.
Shell
5
star
42

SSVLuaWrapper

[HEADER-ONLY] A C++11 LUA wrapper written by Tomaka17. The original project is discontinued. I created a repository with the original code, remove the non-C++11 parts and formatted it. I take no credit. This is a good project and I believe it should be maintained (and expanded) by someone experienced with C++ and LUA.
C++
5
star
43

NetLayer

[C++14] (University project) (WIP) - Modern C++ library that allows users to quickly create efficient callback-based network applications, binding packets to functions at compile-time and abstracting away the underlying communication protocol.
C++
5
star
44

accu2017

Repository for my ACCU 2017 presentations.
5
star
45

AutoSyncGen

Networking project for UNIME
TeX
4
star
46

cppnow2018

Repository for my C++Now 2018 talks.
4
star
47

accu2021

Repository for my ACCU 2021 talks.
4
star
48

SFMLStart

(ABANDONED) A high-level library for SFML.NET developers
C#
4
star
49

VeeEntitySystem2012

(ABANDONED) A component-based entity system for real-time games
C#
4
star
50

VeeBulletHell

(ABANDONED) A Touhou clone I made a while ago - buggy and deprecated
C#
4
star
51

vrm_cmake

Shared CMake aliases, macros and functions (WIP)
CMake
4
star
52

latexpp

C++14 simple LaTeX preprocessor intended for personal use.
C++
4
star
53

meetingcpp2017

4
star
54

SSVMenuSystem

[HEADER-ONLY] C++14 lambda-based library for quick creation of menus. Supports multiple nested menus (categories). Supports Single/Toggle/Slider menu item types. Useful in game development or console applications-
C++
4
star
55

cppcon2016

Repository for my `cppcon2016` talk: "Implementing static control flow in C++14"
Assembly
4
star
56

db2

Experimental NoSQL projects for UNIME.
Python
3
star
57

ggj2016

WIP
C++
3
star
58

TestGenericShooter

(ABANDONED) A top-down shooting game resembling Operation Carnage
C#
3
star
59

corecpp2022

Repository for my Core C++ 2022 talks.
C++
3
star
60

ndctechtown2020

Material for my NDC TechTown 2020 workshop
C++
3
star
61

accu2019

Repository for my ACCU 2019 talks.
2
star
62

veeForum

WIP
TeX
2
star
63

cppnow2021

Repository for my C++Now 2021 talks.
2
star
64

SSVNewRogue

(EXPERIMENTAL, WIP)
C++
2
star
65

DRODRoguelike

(ABANDONED) My first completed game: a roguelike inspired by DROD
C#
2
star
66

VeeTileEngine2012

(ABANDONED) Component-based entity system for tile-based games
C#
2
star
67

SSVCrateBox

(ABANDONED) C++11 test game. Depends on SSVStart, SSVEntitySystem, SSVSCollision, SFML2.0. It is mainly used to try new features I implement in the mentioned libraries. The code is quite clean - it's a great example if you want to start using my libraries.
C++
2
star
68

GGJ2015

GlobalGameJam2015
C++
1
star
69

itcpp2015

C++
1
star
70

VeeTresette

(ABANDONED) An old Tresette game
C#
1
star
71

WEBVittorioRomeo2

New version of my website (vittorioromeo.info)
HTML
1
star
72

VeeCollision

(ABANDONED) Simple AABB collision detection and resolution library
C#
1
star
73

SSVAutoUpdater

C++14 simple utility/library to automatically update files from a server
CMake
1
star
74

SSVJsonCpp

[DEPRECATED] Now included in SSVUtilsJson - [HEADER-ONLY] Cleaned up fork of JsonCpp 0.6.0-rc2.
C++
1
star
75

UNIME

University-related projects
PHP
1
star
76

dotfiles

(OUTDATED) My config dotfiles
CSS
1
star
77

test_linuxday

1
star
78

SSVGenetic

[SCHOOL THESIS PROJECT] Genetic algorithm ant simulation
C++
1
star
79

AllocSim

Repository for my OS course project (UNIME 2015)
Python
1
star
80

SSVOpenHexagonServer

(ABANDONED)
C++
1
star
81

TestUDPChat

C++
1
star
82

cpprussia2019

Repository for my C++ Russia 2019 talks.
1
star
83

WEBVittorioRomeo

(ABANDONED) My personal website, written in C++ with CTemplate and JSONCpp
JavaScript
1
star
84

LD27

Ludum Dare #27 Entry (Theme: 10 seconds)
C++
1
star
85

TimeDRODPOF

(ABANDONED) A clone of the puzzle game DROD, featuring a component-based tile-based entity system, level editing, JPS and breadth-first fast pathfinding
C#
1
star
86

SSVRPGSystem

(EXPERIMENTAL, WIP) Simple lambda-base C++11 RPG status/inventory/... system
C++
1
star
87

accu2022

Repository for my ACCU 2022 presentations.
1
star
88

VeeTileEngineOLD

(ABANDONED) An old and deprecated tile-based game engine
C#
1
star
89

VeeShadow

(ABANDONED) AABB 2d shadow-casting library that can be adapted for field-of-view detection
C#
1
star
90

cppcon2022

Repository for my CppCon 2022 talks.
1
star
91

SSVUtilsJson

[DEPRECATED] [HEADER-ONLY] C++14 utility library that depends on SSVUtils. Includes a fork of JsonCpp.
C++
1
star
92

UNIME_numerical_calculus

Numerical calculus projects/exercises for UNIME
C++
1
star
93

SSVPiet

[SCHOOL THESIS PROJECT] Random Piet-inspired artwork generator
C++
1
star
94

VeeSharpTemplate

(ABANDONED) A C#-scripting-based C# code generator (template system)
C#
1
star
95

linuxDay2014

Presentation for the Linux Day 2014 event in Messina
1
star
96

linuxDay2013

My talk for "Linux Day 2013 - Messina - Istituto Jaci": "Sviluppo di videogiochi in Linux"
C++
1
star
97

VRDevUtils

(ABANDONED) Bash scripts and other files that may be useful when developing/building
Shell
1
star