This week I’ve been spending a lot of time improving the physics collisions to fix a number of funny issues that people could do in game. Such as standing where the Owner spawns and the owner spawning on your head, or using props to “Prop Jump” into the floors above.
After moving to Unity 5, with its improvements to the physics system, these glitches were even easier to do. Pushing the characters upwards on top of colliders if they penetrated too far into the object. This problem was even worse when walking through doors, pushing characters through the roof or on top of door frames, and sometimes both.
As funny as the glitches can be, it isn’t exactly normal.
The problem lay in the type of collider I was using, which was the Character Controller. A useful component that is notorious for having a number of physics related issues in specific scenarios.
I ended up replacing it with something that behaves similar to the existing movement controls, but without the problems. Changing the Character Controller to a rigid body capsule to allow for more “realistic” results. It still behaves the same, and is less glitchy. It even feels a little bit smoother.
It’s not a ground breaking change and is pretty standard for Unity FPS games.
Thanks to those changes however, I have to rewrite how a number of interactive objects are handled along with the how the AI will deal with these changes.
It’s kind of sad to see the glitches go, but it does open the door to some more interesting game mechanics to do with physics. And I have no doubts that people will also figure out other ways to have fun with the physics.