Problems Deploying NxOgre

jchmack

07-02-2008 03:11:00

OK i am trying to get my game on another one of my computers to test out the net code. I created an installer using visual studio's setup project to deploy. In my installer i packaged my entire game directory the installer for dirextx and the ageia system software (its the same as the one i have installed on my computer (PhysX_7.09.13_SystemSoftware.exe)). The game installs properly and after i install directx and PhysX it runs.

BUT there is one problem. The Characters don't move...... If i spawn them in the air they don't fall due to gravity. If on the ground they cant be moved with the move commands. They are animated correctly and everything else works fine. Even the projectiles which are also controlled by physX. Its only the characters. Any Ideas on why this might happen...

Here is my code to move my character:


void GameCharacter::MoveCharacter(float Time)
{
float CalculatedMovespeed = MoveSpeed;
float Cos45 = .7071;
NxVec3 FinalMovement = NxVec3(0,0,0);
//mCharacter->addMovement(Character::DR_Backward, CalculatedMovespeed);
//mCharacter->setRawNextMovementDirection(
//mCharacter->addMovement(Character::DR_Forward);

switch(mMoveState)
{
case BackwardLeft:
FinalMovement+=(NxVec3(-Cos45,0,Cos45) * CalculatedMovespeed);
break;

case Backward:
FinalMovement+=(NxVec3(0,0,1) * CalculatedMovespeed);
break;

case BackwardRight:
FinalMovement+=(NxVec3(Cos45,0,Cos45) * CalculatedMovespeed);
break;

case Left:
FinalMovement+=(NxVec3(-1,0,0) * CalculatedMovespeed);
break;

case Neutral:
break;

case Right:
FinalMovement+=(NxVec3(1,0,0) * CalculatedMovespeed);
break;

case ForwardLeft:
FinalMovement+=(NxVec3(-Cos45,0,-Cos45) * CalculatedMovespeed);
break;

case Forward:
FinalMovement+=(NxVec3(0,0,-1) * CalculatedMovespeed);
//mCharacter->setRawNextMovementDirection(NxVec3(0,0,-1) * CalculatedMovespeed);
break;

case ForwardRight:
FinalMovement+=(NxVec3(Cos45,0,-Cos45) * CalculatedMovespeed);
//mCharacter->setRawNextMovementDirection(NxVec3(Cos45,0,-Cos45) * CalculatedMovespeed);
break;

default:
break;
}


if(Jumping==true)
{
if(JumpVector== NxVec3(0,0,0))
JumpVector = NxVec3(0,JumpForce,0);

//cout << "Jumping" << endl;
//mCharacter->setRawNextMovementDirection( * CalculatedMovespeed);
//mCharacter->addMovement(Character::DR_Jump_Up);
}

if(JumpVector!= NxVec3(0,0,0))
{
FinalMovement+= JumpVector;
JumpVector.y -= 9.80665 * Time;
//JumpVector += NxVec3(0,-.5,0);
//mMovementVector.y = 9.80665 * 0.75;
}

if(JumpVector.y < 0)
JumpVector= NxVec3(0,0,0);

static bool iscrouching = false;
if(Crouching == true)
{
if(iscrouching==false)
{
//NxOgre::NxCapsuleController* Temp;
//CharacterHeight CharacterCrouchHeight
//mCharacter->setCapsuleSize(CharacterHeight,CharacterRadius); // this crashes.......
iscrouching = true;
cout << "started crouching" << endl;
}

cout << "crouching" << endl;
}
else
{
if(iscrouching==true)
{
iscrouching = false;
cout << "stopped crouching" << endl;
}
}

mCharacter->setRawNextMovementDirection(FinalMovement);

//cout << JumpVector.y << endl;
}



i am using these on both systems :

NxOgre (NxOgre 0.9-38) Started, working with:

- PhysX => 2.7.2
- Ogre => 1.4.5 'Eihort'
- Platform => Windows

I have installed the same system software on both as well:
PhysX_7.09.13_SystemSoftware.exe
I understand its not the latest version but i wanted to ensure that I have it set up the EXACT same way.

Has anyone else deployed an NxOgre App? How did you deploy? Did you have this problem?

well any and all help is greatly appreciated. Thank you in advance guys =).

edit:
my (working) computer: Windows XP Professional version 2002 SP2
my (not working) computer: Windows XP Home version 2002 SP2

jchmack

07-02-2008 03:15:21

Also didn't ageia have a developers forum somewhere? Im going to ask there too but i cant seem to find it.....

SiWi

07-02-2008 09:06:52

devsupport.ageia.com

jchmack

10-02-2008 00:13:13

Ok I've narrowed down the problem. The characters can move if i don't create them before the game loop starts. I think it might might have something to do with simulating the character for a long time (like 10 seconds when the game is starting up). I still do not see why the game would run differently between computers. Anyone have any problems with frozen characters at the beginning of the application?

I don't believe I am doing anything too strangely:

NxOgre::CharacterParams Params;
Params.setToDefault();
Params.mType = NxOgre::CharacterParams::CT_Box;
Params.mSkinWidth = 0.5;
mCharacter = mScene->createCharacter(Name, NxOgre::Pose(InitialPosition,InitialOrientation) , Params);