BGE: Adding support for Bullet’s collision masks. Each object now has a collision mask and a
collision group. Object A and object B collide if object A’s groups is in object B’s mask and
object B’s group is in object A’s mask. In other words, the group defines what the object is
(collision wise) and the group defines what the object can collide with.
They also mention that it’s been heavily tested so any remaining issues that blocked its inclusion in 2.64 is likely resolved. You should now be able to find this new feature in any build after Rev. 51769 as well as expect to see it in 2.65.
I know that it’s been a long wait for this, but now you can be excited that you can finally make use of it in your games.
It means you can have different sets of objects that collide with some of the other sets, but not others.
So you have objects A, B, C, and D.
-Objects A and B are in collision group 1
-Objects C and D are in collision group 2
-You can set it so object A can collide with B, but won’t collide with C and D (it will just go through them as if it was a ghost object).
As an example, you can use it to create invisible barriers for a select group of objects, you can also use it for trick platforms that the player falls through but the enemies don’t, and that is just for starters.
However, I think I may have found a bug. I have some objects who are in group 2 but are only masked to collide with group 1. If the game starts without any of the objects intersecting, it works fine: they float straight through one another. But, if the game starts with them intersecting one another, they pop away like normal, before ignoring collisions once more.
That does indeed seem to be the case. It looks like if you want to have objects that don’t collide with one another on starting the engine, you’ll need to position them safely away and then move them after the game begins. I think you should post a bug report on the game engine bug tracker. That helps to give bugs a centralized place for sorting.