Collision

1dominator11dominator1 Join Date: 2010-11-19 Member: 75011Members
edited September 2012 in NS2 General Discussion
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.
«13

Comments

  • DghelneshiDghelneshi Aims to surpass Fana in post edits. Join Date: 2011-11-01 Member: 130634Members, Squad Five Blue, Reinforced - Shadow
    Agreed.

    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.
  • rantologyrantology Join Date: 2012-02-05 Member: 143750Members, NS2 Developer, NS2 Playtester, Squad Five Gold, NS2 Map Tester, Reinforced - Shadow, WC 2013 - Gold
    edited September 2012
    Collision has gotten a little better throughout the beta but I agree with the OP, still needs work.


    <!--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
  • YuukiYuuki Join Date: 2010-11-20 Member: 75079Members
    Are you sure rantology? that looks more like the hitboxes to me. Here is what I get by typing "physics":

    <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.
  • 1dominator11dominator1 Join Date: 2010-11-19 Member: 75011Members
    Yuukis graphs do seem more in line with my in game observations, and match what I remember hearing about collision meshes tapering to a tip at the top and bottom.
  • WilsonWilson Join Date: 2010-07-26 Member: 72867Members
    I agree. IMO this would be a top priority for a melee combat focused game. It's worse when playing with high ping as the collisions boxes sometimes seem to lag behind the player and you can bump into a player running when he is actually 5ft in front.
  • rantologyrantology Join Date: 2012-02-05 Member: 143750Members, NS2 Developer, NS2 Playtester, Squad Five Gold, NS2 Map Tester, Reinforced - Shadow, WC 2013 - Gold
    Yeah mine was wrong, thanks yuuki! Typing collision in game brought up what I got. It used to bring up hit boxes and I guess it still does. my bad ;/ The cylinders in yuuki's screen are dead on though.
  • TechercizerTechercizer 7th Player Join Date: 2011-06-11 Member: 103832Members
    I feel like the marine collision models work fine for other marines, but they cause problems when you try to fight them as a skulk. Look at the legs in particular; skulk heads go right through marine legs.

    Could we have friendly and enemy collision models? Is that a thing we can feasibly do?
  • 1dominator11dominator1 Join Date: 2010-11-19 Member: 75011Members
    <!--quoteo(post=1980926:date=Sep 20 2012, 02:47 PM:name=Techercizer)--><div class='quotetop'>QUOTE (Techercizer @ Sep 20 2012, 02:47 PM) <a href="index.php?act=findpost&pid=1980926"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I feel like the marine collision models work fine for other marines, but they cause problems when you try to fight them as a skulk. Look at the legs in particular; skulk heads go right through marine legs.

    Could we have friendly and enemy collision models? Is that a thing we can feasibly do?<!--QuoteEnd--></div><!--QuoteEEnd-->

    TF2 manages it.
  • VitdomVitdom Join Date: 2012-04-30 Member: 151345Members, Reinforced - Supporter, Reinforced - Silver, Reinforced - Gold, Reinforced - Diamond, Reinforced - Shadow, WC 2013 - Shadow
    <!--quoteo(post=1980929:date=Sep 20 2012, 08:57 PM:name=1dominator1)--><div class='quotetop'>QUOTE (1dominator1 @ Sep 20 2012, 08:57 PM) <a href="index.php?act=findpost&pid=1980929"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->TF2 manages it.<!--QuoteEnd--></div><!--QuoteEEnd-->
    TF2 has no friendly collision models, and that sucks.

    TFC used very nice collision models for everyone!
  • elmo9000elmo9000 Join Date: 2012-03-24 Member: 149324Members
    Not a huge fan of the capsule/spherical collision "boxes" as they allow skulks to slide under marines, and generally feel much more unreliable jumping onto stuff than flat ended boxes/cylinders they used to be. You just keep sliding off or going under/on top of your enemies and get weird climbing crap on railings/crates etc. with the current implementation. Definitely agree that this area still needs a lot of work as its one of the most important aspects in a melee combat focused game.
  • MOOtantMOOtant Join Date: 2010-06-25 Member: 72158Members
    As you can see on the picture NS2 uses capsules while Source uses boxes. I'm not sure if NS2 uses capsules for all marine/skulk collisions but Source used hitboxes for bullet collisions and 1 big box for movement collisions.
  • 1dominator11dominator1 Join Date: 2010-11-19 Member: 75011Members
    I think NS1 collision was near some sort of ideal for range vs melee. It was predictable, consistent and fair to both parties.
  • CodeineCodeine Join Date: 2010-11-22 Member: 75155Members
    ive been shot into the air about 50metres straight up a few times as a fade by blinking or sidestepping into marines/exosuits. So there is defiantly collision issues.
  • WheeeeWheeee Join Date: 2003-02-18 Member: 13713Members, Reinforced - Shadow
    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.
  • kababkabab Join Date: 2003-12-15 Member: 24384Members, Constellation
    edited September 2012
    If they could get the server to run faster the physics engine could run at a finer step which means it would do more sub frame collision checks which would reduce people going through each other..

    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..
  • Soylent_greenSoylent_green Join Date: 2002-12-20 Member: 11220Members, Reinforced - Shadow
    What the server sees and what the clients see is all totally different. Hell, what you see on screen is not even what your client sees, but slightly in the past(interp).

    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)
  • Soylent_greenSoylent_green Join Date: 2002-12-20 Member: 11220Members, Reinforced - Shadow
    <!--quoteo(post=1981147:date=Sep 20 2012, 10:02 PM:name=kabab)--><div class='quotetop'>QUOTE (kabab @ Sep 20 2012, 10:02 PM) <a href="index.php?act=findpost&pid=1981147"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->If they could get the server to run faster the physics engine could run at a finer step which means it would do more sub frame collision checks which would reduce people going through each other..<!--QuoteEnd--></div><!--QuoteEEnd-->

    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.
  • FroztyFrozty SWEDEN Join Date: 2012-01-22 Member: 141596Members
    Best would be to send the information to Player-Player not Player-Server-Player.
  • RobustPenguinRobustPenguin Join Date: 2012-08-17 Member: 155719Members
    Wow, skulk hitbox is ###### huge.
  • TimMcTimMc Join Date: 2012-02-06 Member: 143945Members
    <!--quoteo(post=1981705:date=Sep 22 2012, 04:56 AM:name=BuzterOne)--><div class='quotetop'>QUOTE (BuzterOne @ Sep 22 2012, 04:56 AM) <a href="index.php?act=findpost&pid=1981705"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Best would be to send the information to Player-Player not Player-Server-Player.<!--QuoteEnd--></div><!--QuoteEEnd-->

    lol yeah that would go well...
  • countbasiecountbasie Join Date: 2008-12-27 Member: 65884Members
    edited September 2012
    I find square collision boxes better than round ones.

    <!--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?
  • NeoRussiaNeoRussia Join Date: 2012-08-04 Member: 154743Members
    edited September 2012
    <!--quoteo(post=1980951:date=Sep 20 2012, 03:47 PM:name=Vitdom)--><div class='quotetop'>QUOTE (Vitdom @ Sep 20 2012, 03:47 PM) <a href="index.php?act=findpost&pid=1980951"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->TF2 has no friendly collision models, and that sucks.

    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.
  • 1dominator11dominator1 Join Date: 2010-11-19 Member: 75011Members
    edited September 2012
    <!--quoteo(post=1981743:date=Sep 22 2012, 09:18 AM:name=RobustPenguin)--><div class='quotetop'>QUOTE (RobustPenguin @ Sep 22 2012, 09:18 AM) <a href="index.php?act=findpost&pid=1981743"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Wow, skulk hitbox is ###### huge.<!--QuoteEnd--></div><!--QuoteEEnd-->

    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.
  • elodeaelodea Editlodea Join Date: 2009-06-20 Member: 67877Members, Reinforced - Shadow
    Anyone with technical knowledge know why collision will sometimes randomly bounce me back at warp 10 speed sometimes as a skulk?
  • 1dominator11dominator1 Join Date: 2010-11-19 Member: 75011Members
    <!--quoteo(post=1981883:date=Sep 22 2012, 08:59 PM:name=elodea)--><div class='quotetop'>QUOTE (elodea @ Sep 22 2012, 08:59 PM) <a href="index.php?act=findpost&pid=1981883"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Anyone with technical knowledge know why collision will sometimes randomly bounce me back at warp 10 speed sometimes as a skulk?<!--QuoteEnd--></div><!--QuoteEEnd-->

    Something to do with lag and overlap would be my guess.
  • TechercizerTechercizer 7th Player Join Date: 2011-06-11 Member: 103832Members
    <!--quoteo(post=1981889:date=Sep 22 2012, 08:27 PM:name=1dominator1)--><div class='quotetop'>QUOTE (1dominator1 @ Sep 22 2012, 08:27 PM) <a href="index.php?act=findpost&pid=1981889"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Something to do with lag and overlap would be my guess.<!--QuoteEnd--></div><!--QuoteEEnd-->
    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.
  • WheeeeWheeee Join Date: 2003-02-18 Member: 13713Members, Reinforced - Shadow
    <!--quoteo(post=1981929:date=Sep 23 2012, 12:23 AM:name=Techercizer)--><div class='quotetop'>QUOTE (Techercizer @ Sep 23 2012, 12:23 AM) <a href="index.php?act=findpost&pid=1981929"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->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.<!--QuoteEnd--></div><!--QuoteEEnd-->

    <sarcasm> or maybe it's the new skill-based movement </sarcasm>
  • TechercizerTechercizer 7th Player Join Date: 2011-06-11 Member: 103832Members
    <!--quoteo(post=1981936:date=Sep 23 2012, 12:12 AM:name=Wheeee)--><div class='quotetop'>QUOTE (Wheeee @ Sep 23 2012, 12:12 AM) <a href="index.php?act=findpost&pid=1981936"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec--><sarcasm> or maybe it's the new skill-based movement </sarcasm><!--QuoteEnd--></div><!--QuoteEEnd-->
    SHUT UP DADBOAT YOU'RE NOT MY REAL DAD!
  • Know painKnow pain Join Date: 2012-09-04 Member: 157674Members
    Love charging out of a marine base or running away and hitting a marine, dead stop. But an alien can run right thru a marine in a vent or look like he does.
  • matsomatso Master of Patches Join Date: 2002-11-05 Member: 7000Members, Forum Moderators, NS2 Developer, Constellation, NS2 Playtester, Squad Five Blue, Squad Five Silver, Squad Five Gold, Reinforced - Shadow, NS2 Community Developer
    Lets do some math... A skulk moves at 7-9m/s, a marine at 5-6m/s, so peak closing speed is about 15m/s. You are running at about 200ms latency (half net, half interpolation), so the distance to the marine is off with upto 3m.

    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...
Sign In or Register to comment.