Better Locomotion

I sent a private message to silverlight on Reddit about this 4 months ago but I think it needs some real discussions and feedback.

This is the old message:

The biggest thing for me is that if you mix teleportation and touchpad locomotion in a MMO, then it is important that player’s avatars do not ‘blink’ around as they teleport. I would find that not only annoying but a from of cheating, particularity if PVP is ever adopted.

One solution that comes to mind is to have the player’s avatar and the VR camera rig separate when using teleport. When standing still the camera rig would be parented to the avatar’s head or eyes and inverse kinematics would control the avatars movements. However when the player needs to move, they point their bezier pointer to a place on the ground that is flagged as accessible form their current position and when they release the button their avatar starts pathing to the pointers location.

The camera rig however, which is the HMD and controllers, remain still in their previous location. The player now see their avatar pathing towards the destination point. Other players in the game only every see the avatar, not the camera rig, so from their perspective the teleporting player just starts walking like normal. Others are completely oblivious that the player is even using teleport movement. This is kind of like in spell fighter when using teleportation, except instead of a ghost model pathing to the point it will be your actual avatar. During the pathing process of the avatar the player can press a button at any time to ‘snap’ back into the avatar at its current location an resume control. Also if during the avatar’s pathing process it aggros mobs and triggers combat then the player is automatically snapped back to the avatar and resumes control. The player should also have the option of parenting the camera rig above the avatar, floating like a ghost in 3rd person perspective behind the avatar during pathing.

My original idea probably had some flaws in it for sure, but the basic idea was recently adopted into the game Pavlov VR as OOB locomotion. Here is a description of it from the Steam page:

OOB Locomotion
OOB stands for “out of body”, a teleport variation without actually teleporting, your “avatar” moves into the target location while you snap every half a second to it. This works great for people who are prone to motion sickness without breaking the game for other people, this means you can play with regular players.

I find their solution which snaps you back into the avatar every second is actually better than the way I was planning. If you haven’t got to try it out yet then I highly recommend spending the 6 dollars and doing so.

The reason I keep bringing this back up is because I feel quite strongly that this is a better approach for people that use teleportation locomotion. It solves so many issues with balance that are caused by having blink teleportation and smooth trackpad locomotion present in the same online game.

I would love you to hear the opinion of the OrbusVR devs on this. Thanks!

2 Likes

DISCLAIMER: I haven’t played Orbus yet, but I can’t wait. I do play plenty of MMOs and am a VR early-adopter and enthusiast.

Interesting notion.

Another possible approach would be to restrict range and frequency of teleports based on proximity to other players while in PVP zones. An approach like this would let you preserve the freedom of teleport while farther away from players in PVP and while in PVE areas and should be fairly easy to implement, since range and frequency are probably already values stored in the system.

For the purpose of discussion, I think it is important to establish what the behavior you want to achieve is. What would the objective behavior be? I think you want to keep PVPers together long enough for the fight to conclude.

If you could only teleport about half the distance of your room when you’re next to someone, and maybe slightly further when you’re half the distance apart from them, I think that would do it. Couple that with a timeout inversely proportional to proximity to the nearest other player, with the timeout assessed when you teleport.

This way, two people engaged in melee could range across a battlefield and never lose one another, if at least one of them wants to stay engaged. (the one who is left behind could immediately teleport to the one leaving and would have slightly longer range and shorter timeout on his teleport.)

In the case where you have a ranged DPS attacking a melee, the melee can close on the DPS once he is within the range where the system takes over. As he is on the outside, closing in, every jump he make shortens the jumps the ranged can make and his timeout is always shorter than that of the ranged. The ranged still gets some time to DPS while the melee closes in which could present a balance to the two skillsets.

Overall, I think this could lead to an interesting cat-and-mouse aspect to PVP. I wonder how it would play out in game.

2 Likes

Some discussion there, if you’ve not seen it yet.

I also remember seeing a post where Riley was talking about the option of preventing teleportation when players are engaged in PvP. I like the sound of what you’re talking about though!

Thanks bro, good link. Definitely food for thought and frames the problem well. I personally like to have both TP and slide at the same time, such as is optional in SaigentoVR. The slide there is just a small offset, maybe 2meters max, but really helps with fine positioning or dodging enemy fire. The variable roomscale aspect is an interesting problem. My first inclination is: everyone is different, you can’t solve the fairness problem. Some people have freakishly long arms, their reach with a sword will give them an advantage in PvP. Some people get motion sickness. Some people have bigger rooms. It may be a problem worth tackling only to the first approximation.

1 Like

Thanks for the post. I brought this up again because I noticed a problem during the last pre-alpha. I was the healer in a group that did the dungeon and quickly learned that successfully healing party members that can randomly teleport in a random direction at a random time, is next to impossible.

The problem arises because I have to load a heal-shot into the rifle and then successfully hit a teammate with the shot to heal them.This was challenging enough during the boss fight, but not impossible with the track-pad motion players since I could lead them with the shot.

However, doing it with randomly teleporting players is not feasible. If a teleporting player was low on health, I would load a heal-shot and aim at them, then just as I fired, they would teleport away and the shot would miss. They would then die and be angry that I didn’t heal them. :tired_face: I couldn’t load another shot because I just wasted it and had to wait for another heal-shot to appear.

This is just one of numerous issues that are going to exist due to trying to mix both locomotion methods together in a single online game. The solution I posted, the OOB method of Pavlov’s or some other variation of it would solve this issue and all future ones that are going to crop up if it is not dealt with early on.

4 Likes

I really like the OOB approach you’re talking about. At first I just thought it would make the game feel more realistic without seeing other people pop in and out of existence constantly. I hadn’t considered the difficulty of trying to target someone that can teleport instantly. This solution would definitely help resolve that issue. It also provides the OOB mechanic that could be used to restrict room-scale movement (mentioned in the article linked above).

Perhaps, to prevent reworking the warning zone timing, your teleport could result in a quicker dash or roll animation when in combat? Probably still tricky to target, but at least you would have an indication of what the other player is doing and where they will end up.

2 Likes

You know, i kinda like the roll thing you mentioned, it seems like something that would work better

1 Like

I’ve seen this post but have refrained from answering it until I had the time to sit down and properly write up a response. I think it’s important to note that the main difference between something like Pavlov and what we’re doing is the core intent of the combat.

Pavlov is designed to basically simulate combat like Counter Strike. That is, avatars moving realistically by walking/running through space. They anticipate that you will have people running around constantly while firing guns at the same time, etc.

Our combat is not based around that. The core idea of the combat in OrbusVR is that you are standing in a strategically selected position in the battlefield, and then you are going to teleport infrequently (but quickly) to dodge attacks from enemies such as red areas on the ground. It’s less about constant movement, and more about reacting quickly to situations. I think for this type of combat teleportation makes the most sense.

The sliding locomotion we have in the game is really a convenience measure – it’s easier just to “slide” long distances than it is to have to teleport 200 times to get where you want to go. But that’s why we don’t have a full-body avatar with legs walking around, for example.

I do agree that right now in combat especially for healers you might miss your shots or things like that, which is why we’re planning to add an indicator visible to everyone that shows when you activate your teleportation and where you are going to land. That should solve most of that problem, I think. In addition, we’ve already made changes to the current build where if you “overshoot” the teleportation boundary by a little bit, you still just teleport to the max range, which was another common complaint.

Anywho, just giving you some of our thinking behind those current decisions. That’s not to say we won’t eventually adopt a style where the avatars more smoothly transition between their current positions for people who are actively sliding, because we very well might. But at its core, the combat in OrbusVR is built around strategic positioning and forcing you to make decisions about when to move to dodge attacks, it’s not about a high-paced FPS-style combat.

Finally, let me just say that at this point, nothing is set in stone. The Stress Tests were really about just getting the game up and running and making sure that we could get the networking to work correctly, that it was even possible to have 100 people in VR in the same place, etc. The Alpha will really be about honing the overall mechanisms of the gameplay, like balancing the combat, introducing all the combat abilities, getting the economy up and running…there’s still a lot left to do. So if we get a month into Alpha and it’s clear that our vision for the combat isn’t fun or doesn’t work or is very flawed, we’re not going to be stubborn about it, we’re going to say, “Okay let’s try something else!” But I just mainly wanted to respond to this to let you all know that we are considering these issues, and the decisions we’re making on them do have a purpose :slight_smile:

6 Likes

A very well thought out answer in my opinion, I was gonna bring up the difference in combat with FPS titles and how that adapts really well to the teleportation system in the game. I also want to add that dodging cannot be done on long distances very frequently, as I had a look myself it seemed like most of the time (especially when you do a skill against your opponent or something else) you will be spending around 2-3 seconds at your current position. This might not seem much but it is plenty for a quick attack or skill to be used if done correctly. The biggest problem might be the healer since unlike in PvP they have to make every heal count. Now I do believe that this mechanism will force more of an active cooperation and communication between the healer and a tank, which would add to the depth of the game. The question is, will the communication be too hard and frustrating or can it be done in a way that deepens the feel of combat.

These are just my thoughts on the matter, we shall see how things will really unfold when the alpha-beta tests start.

1 Like

Pretty much exactly how I’m looking at it from my own perspective as well :slight_smile:

2 Likes