Collision
1dominator1
Join Date: 2010-11-19 Member: 75011Members
Thread to discuss collision system.
IMO in any game featuring extensive melee combat a good collision system is one of the most crucial mechanics. This is why I find NS2's situation rather worrying, considering that in my experience the collision is absolutely god awful. I cannot count the amount of times I have phased through enemies or they have phased through me like both of us were nothing more than mist. IMO this is not fun for anyone and is stupid and prohibitive to decent and consistent melee gameplay. Does anyone share this concern?
Below are some observations about the collision system and its inconsistencies.
-Lack of collision mostly occurs when both parties are moving, if one of them is standing still they will be as solid as rock if rather thin.
-Part of the problem is that players are too thin I think, it is far too easy to slide around a marine if you are not aiming perfectly dead center on their model. In my memory NS1 collision meshes were considerably fatter and less slippery.
-Marine feet appear to have almost no collision during jumps, I cannot number the amount of times I have seen marine legs go right through my view as a skulk or seeing skulks phase through or right under me when jumping as a rine.
-Lag or low tick rate worsen the problem considerably.
All in all the most upsetting thing imo is that collision has barely improved since the begging of the beta (in fact in 220 it seems even worse than many of the previous builds, but that might just be it becoming more noticeable because of the decreased range on skulk. Since you pretty much have to touch the enemy to hit them now.) While performance has improved considerably and as a result collision has become smoother the core system still seems to me to be fundamentally flawed due to being far too soft for such a melee oriented game.
TL;DR Collision is too soft robbing melee of consistency, intuitiveness and adding to its hectic cluster-###### like feel.
Let me however append that whenever I am fleeing as a fade or onos and my teammates are trying to rush past me the collision suddenly becomes as solid as rock.
IMO in any game featuring extensive melee combat a good collision system is one of the most crucial mechanics. This is why I find NS2's situation rather worrying, considering that in my experience the collision is absolutely god awful. I cannot count the amount of times I have phased through enemies or they have phased through me like both of us were nothing more than mist. IMO this is not fun for anyone and is stupid and prohibitive to decent and consistent melee gameplay. Does anyone share this concern?
Below are some observations about the collision system and its inconsistencies.
-Lack of collision mostly occurs when both parties are moving, if one of them is standing still they will be as solid as rock if rather thin.
-Part of the problem is that players are too thin I think, it is far too easy to slide around a marine if you are not aiming perfectly dead center on their model. In my memory NS1 collision meshes were considerably fatter and less slippery.
-Marine feet appear to have almost no collision during jumps, I cannot number the amount of times I have seen marine legs go right through my view as a skulk or seeing skulks phase through or right under me when jumping as a rine.
-Lag or low tick rate worsen the problem considerably.
All in all the most upsetting thing imo is that collision has barely improved since the begging of the beta (in fact in 220 it seems even worse than many of the previous builds, but that might just be it becoming more noticeable because of the decreased range on skulk. Since you pretty much have to touch the enemy to hit them now.) While performance has improved considerably and as a result collision has become smoother the core system still seems to me to be fundamentally flawed due to being far too soft for such a melee oriented game.
TL;DR Collision is too soft robbing melee of consistency, intuitiveness and adding to its hectic cluster-###### like feel.
Let me however append that whenever I am fleeing as a fade or onos and my teammates are trying to rush past me the collision suddenly becomes as solid as rock.
Comments
This feels like CS:Source Beta all over again where you would slide through the barrels instead of colliding with them like later versions of the Source engine do.
<!--quoteo(post=1980880:date=Sep 20 2012, 10:50 AM:name=1dominator1)--><div class='quotetop'>QUOTE (1dominator1 @ Sep 20 2012, 10:50 AM) <a href="index.php?act=findpost&pid=1980880"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->-Part of the problem is that players are too thin I think, it is far too easy to slide around a marine if you are not aiming perfectly dead center on their model. In my memory NS1 collision meshes were considerably fatter and less slippery.<!--QuoteEnd--></div><!--QuoteEEnd-->
this part in particular is an interesting point
edit: removed screenshot of the wrong collision boxes, thanks yuuki :s
<img src="http://i.imgur.com/IS7hj.png" border="0" class="linked-image" />
Which might explain why you can put your head into the wall:
<img src="http://i.imgur.com/mcW2a.png" border="0" class="linked-image" />
They used to be cylinder with flat bottoms, they were changed to these pills shaped thing, which might explain why skulk can slide so easily under marines.
Could we have friendly and enemy collision models? Is that a thing we can feasibly do?
Could we have friendly and enemy collision models? Is that a thing we can feasibly do?<!--QuoteEnd--></div><!--QuoteEEnd-->
TF2 manages it.
TF2 has no friendly collision models, and that sucks.
TFC used very nice collision models for everyone!
Perhps for the marine collision capsule they should reduce the radius of the round so skulks don't go under you so easily but still makes getting around the map easier..
There is no shared reality. This makes player-player collisions really difficult to do well. The only "cure" that sort of works is large player-player collision boxes, low latency and high tick-rate or removing player-player collisions and letting players clip through each other(which I favour for teammates)
But does it, though?
E.g. imagine two players that cross at perpendicular angles. One of the players sees themself clip through the other, because he is seeing where the other player was 200 ms ago(e.g. 50 ms ping, 100 ms interp, 50 ms from low server tick-rate). The other player sees the first player 200 ms in the past and to him it looks like they were never even near each other(400 ms distant at 7 speed is 3 meters away).
If two players collide at right angles on the server, and the total latency with interp and everything is 200 ms both will percieve it as if they went past each other, then 100 ms after they didn't collide the server janks them back to where it claims they collided.
The only way to make this more consistent is lower latency, higher tickrate, lower interp, larger player-player collision boxes. Everything else is just sort of tinkering around at the margins.
lol yeah that would go well...
<!--quoteo(post=1981126:date=Sep 21 2012, 02:08 AM:name=Wheeee)--><div class='quotetop'>QUOTE (Wheeee @ Sep 21 2012, 02:08 AM) <a href="index.php?act=findpost&pid=1981126"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->also the way collisions work and the reduced bite range means that skulks have a real hard time biting marines that are running away from them.<!--QuoteEnd--></div><!--QuoteEEnd-->
That's more of a hitbox/attack cone issue, isn't it?
TFC used very nice collision models for everyone!<!--QuoteEnd--></div><!--QuoteEEnd-->
TF2 has hard collision rectangles for enemy players, and soft collision for friendlies that block projectiles and hitscan and push the player away. This is probably the best form of collision for team mates. The soft collision models are not interpolated so they don't take up extra processing power. TFC collision boxes were engine specific.
Thats the collision mesh, the hitbox is pretty much the same as the model.
<!--quoteo(post=1981126:date=Sep 20 2012, 10:08 PM:name=Wheeee)--><div class='quotetop'>QUOTE (Wheeee @ Sep 20 2012, 10:08 PM) <a href="index.php?act=findpost&pid=1981126"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->also the way collisions work and the reduced bite range means that skulks have a real hard time biting marines that are running away from them.<!--QuoteEnd--></div><!--QuoteEEnd-->
Also the fact that you have to be pretty much on top of them to hit marines means that the collision problems will become that much more noticeable.
Something to do with lag and overlap would be my guess.
I'll try to ballpark it.
Delays in processing client positioning and reconciling the differences with model positions often means that the server experiences some slightly weird situations. Example, if you and another person are both trying to move towards each other, the server can accidentally tell you "you can keep going forward" for too long, which means that when it resolves the motion for both clients it finds out that not only has it told both of them to hit each other, it's told them to keep going. Now you have a situation where two object have collided but not stopped, and as a result your two players are actually slightly <i>inside</i> each other.
So the two clients that are inside each other just a tiny bit on the edge will have a collision. More than just a collision though, because they portion of them that is overlapping is colliding with every part of the other overlapping model at once, as many collisions per second as the engine can register. This leads to some wierd-ass behavior. Most of the time if both clients are on the ground, friction will keep them in check and they'll just slide apart. If one of them is in the air though, it winds up getting pushed away from the stationary one an extremely high amount of times in a short period, leading to a large impulse.
No idea if this is actually how NS2 handles these, but that's often the explanation for behaviors like these.
Delays in processing client positioning and reconciling the differences with model positions often means that the server experiences some slightly weird situations. Example, if you and another person are both trying to move towards each other, the server can accidentally tell you "you can keep going forward" for too long, which means that when it resolves the motion for both clients it finds out that not only has it told both of them to hit each other, it's told them to keep going. Now you have a situation where two object have collided but not stopped, and as a result your two players are actually slightly <i>inside</i> each other.
So the two clients that are inside each other just a tiny bit on the edge will have a collision. More than just a collision though, because they portion of them that is overlapping is colliding with every part of the other overlapping model at once, as many collisions per second as the engine can register. This leads to some wierd-ass behavior. Most of the time if both clients are on the ground, friction will keep them in check and they'll just slide apart. If one of them is in the air though, it winds up getting pushed away from the stationary one an extremely high amount of times in a short period, leading to a large impulse.
No idea if this is actually how NS2 handles these, but that's often the explanation for behaviors like these.<!--QuoteEnd--></div><!--QuoteEEnd-->
<sarcasm> or maybe it's the new skill-based movement </sarcasm>
SHUT UP DADBOAT YOU'RE NOT MY REAL DAD!
That means that when both you and the marine run towards each other, you are seeing each other at 3m bigger distance than the actual distance. You are not actually colliding with the current position of the enemy player, but where he was 200ms ago - he is actually colliding with you at the same time, but he is colliding with where you were 200ms ago. So you have already passed each other when you collide - at those speeds.
Fortunately, as soon as melee combat starts, the relative speeds drops quite a bit - 2-3m/s, which means that you are only off by like 0.5m rather than 3. Hmm.. at those speeds, bigger collision capsules might actually help...