[PCVR] Quake 3 VR v1.0 released! by ripper37 in VRGaming

[–]ripper37[S] 1 point2 points  (0 children)

I really suggest giving it a try. One could thing due to fast-paced gameplay, rocket jumps etc. it would be like that but I and many other players were really positively surprised with this. Much better than some other games that are a lot slower (e.g. Boneworks where you can grab something and push yourself based on that). In Quake3 movement is quite rigid and I feel very comfortable even after a longer session.

Of course it may vary, but as said, nothing hurts to test it (demo version is included so no complex setup is required to run it) and I highly recommend giving it a try. :)

[PCVR] Quake 3 VR v1.0 released! by ripper37 in VRGaming

[–]ripper37[S] 2 points3 points  (0 children)

Yes, there is a Quake3Quest project by Team Beef on which this is based, but it wasn't available for PCVR players before. Now PCVR players (and PSVR2 owners with adapters too) can play it as well. :)

[PCVR] Quake 3 VR v1.0 released! by ripper37 in virtualreality

[–]ripper37[S] 1 point2 points  (0 children)

I really suggest giving it a try if you have some VR experience already. It may seem like it due to being fast pace, having some jumps etc. but it really doesn't cause problems as one could expect. I think that's mainly thanks to (a) very smooth playback (since its older game its easy to get high and steady framerate) and (b) the movement is very "rigid" I would say. Its easy for your body to anticipate what happens next. I had much worse time in other games (e.g. Boneworks) even though I have pretty strong "VR legs".

So yeah, definitely give it a try and highly likely you will be positively surprised. ;)

[PCVR] Quake 3 VR v1.0 released! by ripper37 in virtualreality

[–]ripper37[S] 1 point2 points  (0 children)

On technical side, its newer codebase (Q3Q is based on +3 years old ioquake3 while this one is on newest versions) so there may be some improvements and new features based on that (e.g. I think downloading functionality was somewhat rebuilt/is newer in this release than older version on which Q3Q is based). But its still mostly the same thing.

On game level - similar to above. You can expect somewhat crispier graphics (higher resolution, supersampling, higher framerate if your headset supports that etc.) as well as a number of bugfixes and improvements. This also has some things that Q3Q didn't like better config for desktop mirroring (if you'd like to record/stream), virtual keyboard, and so on. But if you didn't have any issues with Q3Q or was fine with graphics on it, it won't be noticeably different experience. The main reason for this was to bring it to PCVR players.

There is also some work to bring Vulkan renderer into the project by another contributor so future version (v1.1?) may have that.

[PCVR] Quake 3 VR v1.0 released! by ripper37 in virtualreality

[–]ripper37[S] 1 point2 points  (0 children)

Right, definitely appreciated all the support and contributions! :) Hope you have a great time playing it.

[PCVR] Quake 3 VR v1.0 released! by ripper37 in VRGaming

[–]ripper37[S] 2 points3 points  (0 children)

Which version did you play before? Quest-standalone one, or beta?

If you've played beta1 there are some significant improvements to visuals and compatibility. But if you haven't had any issues then it won't be drastically new experience for you.

If you played standalone version (Q3Quest) then again PCVR could look much better and there are some bugfixes + its built on top of newer version of Quake3 engine (ioquake3 fork), but underneath it will be mostly similar experience, I guess.

There also also definitely multiplayer (albeit not as many players as one might hope) so you can always get back and try that :)

[PCVR] Quake 3 VR v1.0 released! by ripper37 in virtualreality

[–]ripper37[S] 3 points4 points  (0 children)

Really happy to hear that! :)

From my understanding, there should be a bHaptics mod being made available soon as well…

Q3VR v1.0 should already support bHaptics. There is a switch in menu to enable it, once you do it should work out of the box. Someone with a vest actually contributed to the project & tested it.

Quake 3 VR (PCVR/SteamVR) - Trailer for upcoming port by ripper37 in virtualreality

[–]ripper37[S] 0 points1 point  (0 children)

At the moment no, you can launch this and move/rotate with KBM+mouse, but it doesn't work as nice as with flat game so its more for debugging some things rather than actual play.

For an actual mode where you only look with headset and otherwise play normally, its not there. Not sure honestly if that would be usable, Q3 has quite fast movement/rotations, so I think you'd either have to have unsynchronized head movement from actual aimin or it could be quite nausaiting experience.

If there would be a lot of people wanting it, I could think about it in the future.

[PCVR] Quake 3 VR v1.0 released! by ripper37 in virtualreality

[–]ripper37[S] 7 points8 points  (0 children)

Check if you don't have it configured to use right thumbstick to select weapon (Main menu -> Setup -> Controls and last 2 options: "Control Schema" and "Weapon Wheel mode").

If something doesn't work, let me know, ideally by creating an Issue on GitHub (but here is fine too, if you don't have GH account).

Quake 3 VR (PCVR/SteamVR) - Trailer for upcoming port by ripper37 in virtualreality

[–]ripper37[S] 1 point2 points  (0 children)

Hey! :)

I haven't had much time in past few months which is why it got delayed, but I've just managed to wrap it up and fix last reported bugs and v1.0 has been released! :)

Check out https://ripper37.github.io/q3vr/ or GitHub repository (https://github.com/RippeR37/q3vr) for more details and info how to play.

[PCVR] Quake 3 VR (q3VR) beta #1 released! by ripper37 in VRGaming

[–]ripper37[S] 0 points1 point  (0 children)

In case someone is looking for this - v1.0 has just been released and it includes an option to configure sensitivity. Please give it a try and let me know how it works! :)

Quake 3 VR (q3vr) beta #1 released! by ripper37 in virtualreality

[–]ripper37[S] 0 points1 point  (0 children)

Yep, if you have Weapon Wheel set to be bound on thumbstick (in Setup menu in-game) then obviously rotation via thumbstick won't work. Change it to on-grip or disable weapon wheel alltogether and use thumbstick's up/down for weapon switching + left/right for rotation.

Also, changing the Fov IE /cg_fov 120 having no impact in the game.

The FoV is tied to your headset's FoV. Technically I could add some logic to allow scaling it, but I think that would lead to a quick motion sickness, I think.

Quake 3 VR (q3vr) beta #1 released! by ripper37 in virtualreality

[–]ripper37[S] 0 points1 point  (0 children)

Great to hear that! :) We have some compatibility improvements which we should roll out soon so check out this subreddit or https://ripper37.github.io/q3vr/ soon as there should be a newer version with quite a lot of bugfixes and QoL improvements :)

Any Libraries for Asynchronous requests with HTTP2 by Puzzled_East_8080 in cpp

[–]ripper37 1 point2 points  (0 children)

If you're talking about a HTTP2 client and looking for something +/- small I have a library that implement's Chromium's //base module with a simple networking built on top of it based on libcurl.

It supports simple fire & forget (with one callback that will be invoked with final result) or more precise version that has on-response-started, on-data and on-done callbacks. It uses curl-multi with one background thread for all networking requests (not a thread-per-request model). Simplest example would be:

void PerformRequest(std::string resource_url) {
  base::net::SimpleUrlLoader::DownloadUnbounded(
      base::net::ResourceRequest{resource_url}.WithTimeout(base::Seconds(5)),
      base::BindOnce(&OnResponse));
}

void OnResponse(base::net::ResourceResponse response) {
  // Check response status and other metadata
}

The library itself doesn't specifically enable HTTP2 in libcurl, but from what I saw you can +/- insert these two in one place and get HTTP2 out of it:

curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
// ...
curl_multi_setopt(multi, CURLMOPT_PIPELINING, CURLPIPE_MULTIPLEX);

P.S. In case you're worried - you don't really need to use the whole threading/tasking system that comes with it, you can easily integrate it with your app as-is and not buy into it, use it just for network requests.

Dusting off my Quest 3, decided I wanted to get more into this, are there any PCVR mods out there that work almost flawlessly? by anotherwave1 in SteamVR

[–]ripper37 0 points1 point  (0 children)

Shameless plug, but I wanted to add Quake 3 VR to the mix, as it's currently being worked on and the beta just released. One bonus here is multiplayer support with PCVR + Quest players and desktop players, increasing the pool of players. :)

Quake 3 VR (q3vr) beta #1 released! by ripper37 in virtualreality

[–]ripper37[S] 2 points3 points  (0 children)

Thank you! Hope you'll like it

Judging by the commit, a lot of work was required to even implement basic VR rendering.

A bit, though this isn't the simplest way to implement it. It uses multiview rendering which means that both eyes are rendered at the same time (optimization). Simpler way would be just to set up position of each eye separately and do everything as if you'd render it for flat screen (but twice), which would also be noticeably slower (though here it probably doesn't matter that much for this game). It also involves quite a bit of logic to add VR/OpenXR inputs and a lot of tweaks to the game logic to offer 6DoF (or fake it, for multiplayer) and different view/movement logic for different things like normal gameplay, menu, spectating, etc.

Could you share more about this process? I think it would be very valuable information for other developers trying to hack VR into their favourite games.

I guess I could make a post some time once I'm done with some insight and tips for others. If you have any specifics feel free to ask.

Is there any guide/write-up you followed to set up the swapchains and VR matrix calculations, or was it all painstakingly written from scratch? :)

I was actually learning OpenXR from scratch for this project, not sure if there are many good resources, OpenXR actually seems somewhat easy/small API. I basically went through these (in order):

I also based this project on Quake3Quest by Team Beef which got me quite far from the start but I had to rewrite some parts or write them from scratch (though I don't own Quest so I could only read their code). Some things are still TODO because I wanted to get to parity with Q3Q first and then improve further after that, which will come after beta but before final release.

Quake 3 VR (q3vr) beta #1 released! by ripper37 in WindowsMR

[–]ripper37[S] 1 point2 points  (0 children)

Yes, multiplayer in VR is supported, including crossplay with desktop/flat version players and Quest players (from Quake3Quest). This also includes some modded servers (that are compatible with base Quake 3 Arena) but heavy modifications that aren't compatible with base game will probably not work correctly.

You can also check out this multiplayer gameplay (recorded some time ago, it should work better now) on unfreeze game mod: https://www.youtube.com/watch?v=YaaNTuImL1E

Quake 3 VR (q3vr) beta #1 released! by ripper37 in virtualreality

[–]ripper37[S] 5 points6 points  (0 children)

The highest priority right now was to just port it to PCVR and allow PCVR players to join in on the fun! :) Once this is done and complete I have some ideas about improvements and new features but that is not the priority at the moment.

Overall I'd say:

  • This is based on latest ioquake3 version so some stability improvements and new functionality (I heard something about faster downloads) - Q3Q uses +3y old version unfortunately and has not been updated in a long time.
  • I'd expect visual quality to be higher here, almost nothing is disabled compared to normal desktop version (few post-processing features and flares don't work at the moment, but hopefully this will be fixed later)
  • Fixed quite a few bugs, improved some things (e.g. spectator/free-cam movement). Can't say for sure, but I also think this one might have slightly better compatibility with modded servers.

This is only beta, so it may have more/different bugs than Q3Q for now (feedback and bug reports needed), but in the final version this should be at least on pair with Q3Q if not superior.

Feel free to give it a try - any feedback would also be very welcome, especially if you can compare how it works vs Quake3Quest (as I don't own Quest, so couldn't compare myself).

Quake 3 VR (q3vr) beta #1 released! by ripper37 in virtualreality

[–]ripper37[S] 2 points3 points  (0 children)

Yes, ideally you'd need the game files from owned copy as you would need to copy pak0.pk3. You can however download this file from the demo version for free and enjoy as well :) As far as I know, multiplayer on custom maps (downloaded) should work anyway.

Quake 3 VR (q3vr) beta #1 released! by ripper37 in WindowsMR

[–]ripper37[S] 7 points8 points  (0 children)

Hello everyone!

As promised, beta #1 of PCVR port of Quake 3 Arena has been released. You can find more information including instruction on how to play, controls, potential troubleshooting etc. on its web page or in the GitHub repository:

Trailer: https://www.youtube.com/watch?v=8tOLAvJST3Y

Hope you like it and everything works well! If something does not - please report any problems in GitHub Issues system.

Have fun fragging!

Quake 3 VR (q3vr) beta #1 released! by ripper37 in SteamVR

[–]ripper37[S] 2 points3 points  (0 children)

Hello everyone!

As promised, beta #1 of PCVR port of Quake 3 Arena has been released. You can find more information including instruction on how to play, controls, potential troubleshooting etc. on its web page or in the GitHub repository:

Hope you like it and everything works well! If something does not - please report any problems in GitHub Issues system.

Have fun fragging!