You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+8-7Lines changed: 8 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,17 @@
1
+
**Update 2025:**
2
+
I've been working on the continuation of this project (closed source) called [GunSlaw VR](https://dafluffypotato.com/gunslaw). I've added some notes to the README based on my later findings.
3
+
1
4
**This repository is an example Python VR project.**
2
5
3
-
This was originally meant to be boilerplate for VR gamedev with ModernGL, Pygame, GLFW, and PyOpenXR, but I ended up going straight for making something functional. Some of the naming is strange as a result. There's a lot of spaghetti and dead code that I left in there as well. I'm cleaning it up in the closed source version for a multiplayer project.
6
+
This was originally meant to be boilerplate for VR gamedev with ModernGL, Pygame, GLFW, and PyOpenXR, but I ended up going straight for making something functional. Some of the naming is strange as a result. There's a lot of spaghetti and dead code that I left in there as well.
4
7
5
8
Various portions of the code are not fully optimized. The pathfinding especially can bog things down a bit. I get a stable 72fps with Link to my Quest 3 still. World generation and navmesh generation can take a few seconds when starting the demo.
6
9
7
10

8
11
9
-
I'm not entirely sure how OpenXR binding suggestions work. I've specified them for the Oculus Touch Controllers. They may or may not work for other controllers like the Index. I haven't looked into it. If it doesn't work, you can play around with the hardcoded bindings in `xrinput.py`. I only own a Rift CV1 and a Quest 3. lol
10
-
11
-
Audio device selection is hardcoded to select the Oculus Virtual Audio Device, which may cause some issues on some setups.
12
+
Based on testing with GunSlaw VR, the OpenXR input handling should be mostly compatible with most devices. There may be some crashes when unfocusing the VR application (especially on Index) though.
12
13
13
-
I'll be working more with other headsets soon, so I may update this README as I learn stuff that may affect this repository.
14
+
Audio device selection is hardcoded to select the Oculus Virtual Audio Device, which will cause some issues on some setups. There's also a bug in PyOpenAL I had to fix in later versions of this project in order to properly allow for device selection.
14
15
15
16
**Controls (Oculus Touch):**
16
17
- Left Stick: Movement (hand oriented, not head)
@@ -26,7 +27,7 @@ Health and kills (on your current life) are shown on the watch face. Extra mags
26
27
27
28
**Architecture:**
28
29
29
-
I made an architecture chart for my private continuation of this project ([GunSlawVR](https://dafluffypotato.com/gunslaw)) so you can see how all the dependencies are used. The only difference between this and the latest architecture is the addition of my framework Shobnet for netcode, which doesn't exist in this demo. There's also not as much GLM usage in this demo, which makes the math quite spaghetti.
30
+
I made an architecture chart for GunSlaw VR so you can see how all the dependencies are used. The only difference between this and the latest architecture is the addition of my framework Shobnet for netcode, which doesn't exist in this demo. There's also not as much GLM usage in this demo, which makes the math quite spaghetti.
30
31

31
32
32
-
**The PyOpenXR version listed in the requirements.txt may be incorrect! There was a memory leak in PyOpenXR when I was working on this project. I fixed it in a PR and it's been merged in, but the release was posted to PyPI after I forked GunSlaw VR to its own project, so I haven't tested this with it. The version in therequirements.txtis the first version with my fix in it (untested).**
33
+
**The PyOpenXR version listed in the requirements.txt may be incorrect! There was a memory leak in PyOpenXR when I was working on this project. I fixed it in a PR and it's been merged in, but the release was posted to PyPI after I forked GunSlaw VR to its own project, so I haven't tested this with it. The version in the**`requirements.txt`**is the first version with my fix in it (untested).**
0 commit comments