It's hard to show off a VR game that has very placeholdery graphics and where most of the work I've been putting in is for the way it feels to play, especially when I I'm not sure if I want to spoil one of the biggest features!
I am still working on my VR game, though, taking longer than expected to get a demo ready because I keep thinking of little things that I can improve before sharing it. I might be getting pretty close, though.
Recently, I added things to make it work (reasonably well) if the player is sitting down. That's slightly more complicated than it sounds, because the entire game gets scaled based on how tall the player is in real life, so that every player will (theoretically) be able to reach or not reach the same ledges (for example). If a sitting player was treated as being short, they would be scaled up and have very long arms!
Then, I spent a lot of time working on a system that attempts to predict which way the player's body is facing, so that it can use a forward direction for the body that isn't just the direction the head is facing. It took longer than it should have because I didn't realize (or forgot) that Unity uses a left-handed coordinate system, making vector cross products point the opposite direction than you might expect.
Then I saw an interesting video that breaks down how Valve handles real-world movement in Half-Life: Alyx and decided to implement something similar. The main idea is: you have to allow the player to walk wherever their real legs take them, because making that stop when they hit a virtual wall can make them sick. So, allow that, but only until they use artificial locomotion again. If they walked to somewhere they shouldn't be, teleport them back to their last legal position and continue their artificial movement from there. https://www.youtube.com/watch?v=UPrfC7r2c78
Here's another teaser image, even though it doesn't show a lot. To give a sense of scale, the squares in the placeholder texture on that building are 1 meter each, and the player character is about 2 meters tall:
![]()