[HELP] stop character walking through moving kinematic actor

adc2008

28-09-2008 17:12:39

Hey guys, I'm just debating the best way to do this in NxOgre.
I am porting the character controller from 0.9 to the latest SVN release, and hopefully 1.0.22 ;)
But, I am just curious as to the best way to prevent players on a network game from walking through each other before I do.

As it is now:
On each client there are numerous kinematic objects being replayed (from a network server which is in contact with all players) so these kinematic actors are just happily going around, representing other players positions, sent in based on there CharacterControllers position, and the client has a character controller too, enabling them to move around the world freely.
So each client has only one CharacterController, used by the client, and other actors positions are kinematic yes actors.

The problem to overcome:
Now, both being kinematic, players can walk though each other, there walking through kinematic: yes actors with there character (CharacterController) the character won't walk through a stationary kinematic, but a moving one can pass through the character without problems etc, so, if a character on the server is stood still, you can't walk through them, but if your both moving, well, it's like ghosts, this should be the case because there kinematic, the problem lies with not wanting players to walk through each other.

To stop players walking through each other, I simply need to prevent the client application from allowing the character to pass through kinematic actors that are being played back, so to speak.
Because if there are two players, both walking towards each other, and both there client applications won't pass through the kinematic: yes actor that is in front of them, representing the other actor, they won't walk through each other.

The method to do it:

I have a few idea, but I don't think kinematic/kinematic callback works after playing around, so I have a quick fix solution, where when players come in range with a kinematic object representing another character, a stationary kinematic is placed in there position, so the character cant pass through it as it isn't moving, though the range is big enough to detect if your too close, but small enough to enable either or both players to be out of range again with a simple strafe or opposite direction movements, at the point of being too close, neither player can walk through the other player directly, but they can walk around, but this of curse isn't the best way, it's a fixed solution unfit for any proper use.

I have read up on the forums and the PhysX SDK and gone and confused myself.
Right, so, what is the best way to achieve this non pass through / collision result, other than a quick solution like I have used?

Tia

mcaden

01-10-2008 16:33:56

I'm not sure of the best way to fix the problem, but if you get the character system ported would you mind making a .patch available?

I'm having a really hard time doing a character system for myself manually as can be seen from my character movement thread. If you can get it ported and it works I'm sure there would be many appreciative people.

Rasengan

02-10-2008 14:29:14

What about actorGroups and callbacks with characterContoller?
You can't set the specific behavior for "character vs character" collision?

EDIT:
...
I have a few idea, but I don't think kinematic/kinematic callback works after playing around...


:?