Game Development Community

No animation for new clients

by Nmuta Jones · in Torque Game Engine · 12/27/2007 (7:23 am) · 18 replies

I built a custom character for the main player in the game. When I host multiplayer, the NEW clients who join....none of them have animation.

Yet if one of the other people hosts, THEY have animation but none of the rest of us do. So whomever hosts the game, their player works but no one else's will.

What's also weird is that they cannot see any of the other player animations either. So if I host, I can see my own animations (running, etc) but none of the other players can see my animaiton. They see my character moving but no animation.

I am using AFX Core-Tech on TGE 1.5

What could be causing this?

#1
12/27/2007 (7:46 am)
Are you calling animations manually or are you using the default animations like 'run' and 'side'?

I've never heard of anyone having this problem.
#2
12/27/2007 (8:08 am)
I am using default animations.

Mind you, this is a custom character. the other npcs in the game work fine and their animations are seen across all clients.

there must be something about all players who join after the first player........... it doesn't make sense, though. I cannot figure it out.
#3
12/27/2007 (10:00 am)
The only suggestion I can make is to make sure all clients have the exact same script base, folder structure, and media files.
#4
12/27/2007 (12:31 pm)
GPGT mentions something about calling animations locally vs servercmd'ing them... could this be the problem?

I'm just curious if i am considering this the right way or if this is way out in left field.
#5
12/27/2007 (2:36 pm)
@Neurosys
Well the issue is that this problem never happens when using the orc as the player model.

@Sean H.
I was hoping the issue was that i was using different versions of the game on the two computers but i recopied into a cd and made sure both versions were exactly the same. and they are now, same problem persists.
#6
12/27/2007 (5:56 pm)
In "data/shapes/myCoolPlayer/player.cs"
Make sure you have "datablock TSShapeConstructor(PlayerDts)" unique to your player. Your player.dts must be unique as well.
I had this problem when I was trying to get ava and adam working nicely together. Each player.dts must have a unique name, and the dsq files must start with the same unique name. Such as, change:
datablock TSShapeConstructor(PlayerDts)
{
   baseShape = "./player.dts";
   sequence0 = "./player_root.dsq root";
   sequence1 = "./player_forward.dsq run";
   sequence2 = "./player_back.dsq back";
   sequence3 = "./player_side.dsq side";
   sequence4 = "./player_lookde.dsq look";
   sequ....etc.....
to read:
datablock TSShapeConstructor(myCoolPlayerDts)
{
   baseShape = "./myCoolplayer.dts";
   sequence0 = "./myCoolplayer_root.dsq root";
   sequence1 = "./myCoolplayer_forward.dsq run";
   sequence2 = "./myCoolplayer_back.dsq back";
   sequence3 = "./myCoolplayer_side.dsq side";
   sequence4 = "./myCoolplayer_lookde.dsq look";
   sequ....etc.....
#7
12/30/2007 (5:53 pm)
Yeah, I already have a unique name for my TSShapeConstructor for the player.

@mike: are you sure you were having this exact same issue?

note that animations for the character ALWAYS work on the host but never on any of the new clients who join the game. When i switch computers and make the other computer the host, it works for THAT ONE as the host, but the other one, which used to be the host and is now the client, animations no longer work for my character.
#8
12/30/2007 (5:58 pm)
Yes, I'm sure that was the same problem I was having. It about drove me nuts until someone told me to make sure everything, including the animations were named differently. I figured I could just dirive those animations from the stock player, but it didn't work.
#9
07/06/2008 (7:54 am)
Hi all,

I know this is an old thread, but I'm having the same problem as Nmuta Jones with client animations not showing properly. Hope you have already solved your problem and can point me in the right direction to solve mine...

Animations works like a charm on the server (whoever the server is) but client animations seems to "mix" or just not play at all. By "mix" I mean, for example, when attack animation should play, "some kind of" distorted death animation plays instead or, as I said, they just not play.

I have double checked all my players TSShapeConstructor datablocks and sequences as Mike Rowley recommends but no luck :(

Please if someone knows how to fix that or where the problem may be... I'll be very grateful.

Thanks in advance!!!


David L
#10
07/06/2008 (10:18 am)
David

Which version of the TGE head are you using? Are you using TGE 1.5.2 or Arcane FX mod of TGE 1.5.2 or earlier.
#11
07/06/2008 (2:59 pm)
Thanks for the quick response Nmuta.

I'm using TGE 1.5.2 and then added server side melee system and team system found in the resources section, but no Arcane FX.
If you need more info please ask :)

Thanks again!!


David
#12
07/18/2008 (1:43 pm)
Hi,
I'm still trying to fix this issue... anybody got any clue about where to look or what may be causing this strange client animation behavior?
I'm really getting mad, if anyone knows anything about it please reply...

Thank you!!!
#13
07/19/2008 (5:50 am)
Dave

I am out of the house all day but will be working on Torque again tonight. I have finally finished my player/character and she is in the engine.

when I get back to work tonight I will load up this new character on two computers and test the mulitplayer animation issue again. this is a brand new character so I'm curious to see if the same thing happens twice.

Question for you: are your animations embedded in the .dsq file, or are they separate. ?

I am on Eastern time gmt -4 .

thanks.
#14
07/20/2008 (4:56 am)
Nmuta

Thanks for your reply!. I'm using separate dsq files for each animation. Here is an example of one of my players cs file:

datablock TSShapeConstructor(warriorDts)
{
   baseShape = "./warrior.dts";
   sequence0 = "./warrior_root.dsq root";
   sequence1 = "./warrior_run.dsq run";
   sequence2 = "./warrior_back.dsq back";
   sequence3 = "./warrior_side.dsq side";
   sequence4 = "./warrior_look.dsq look";
   sequence5 = "./warrior_look.dsq head";
   sequence6 = "./warrior_fall.dsq fall";
   sequence7 = "./warrior_land.dsq land";
   sequence8 = "./warrior_jump.dsq jump";
   sequence9 = "./warrior_death.dsq death1";
   sequence10 = "./warrior_death.dsq death2";
   sequence11 = "./warrior_death.dsq death3";
   sequence12 = "./warrior_death.dsq death4";
   sequence13 = "./warrior_death.dsq death5";
   sequence14 = "./warrior_death.dsq death6";
   sequence15 = "./warrior_death.dsq death7";
   sequence16 = "./warrior_death.dsq death8";
   sequence17 = "./warrior_death.dsq death9";
   sequence18 = "./warrior_death.dsq death10";
   sequence19 = "./warrior_death.dsq death11";
   sequence20 = "./warrior_attack.dsq attack";
   sequence21 = "./warrior_combo.dsq combo";
   sequence22 = "./warrior_damage.dsq damage";
};

Hope you can reproduce the issue again and fix it.
I'm looking forward to hearing from you.

Thanks again!!!
#15
07/20/2008 (6:51 am)
OK, we got home really really late, we had gone out to the shore.

I will contact you some time later today when I get back into the swing of things.

the only thing is that my new character has built in animations so it may not be comparble comparison as it relates to the anim piece, but hey we'll see.
#16
06/17/2009 (5:57 pm)
I have finally come back to this issue and it still persists. If anyone has any suggestions, PLEASE let me know. I tried Mike Rowley's suggestion of renaming animation names but it did not work for me.
#17
06/18/2009 (7:56 am)
Anyone have any solution to this?
#18
03/22/2010 (10:51 am)
By the way, I found the fix for this:
If ANY of your animations are not loading properly, it causes this problem.

In other words, if you have 10 animations, and the 8th one, "standjump" for example, is non existent or does not load properly, your main host animations will all work but incoming client animations will only show up on the host computer. The clients themselves will show frozen characters.

ALSO, don't use placeholders. If you only have 3 animations done, only use those three:

datablock TSShapeConstructor(warriorDts)
{
   baseShape = "./warrior.dts";
   sequence0 = "./warrior_root.dsq root";
   sequence1 = "./warrior_run.dsq run";

}

Leave it at that. The extra one you put in there will cause your clients to freeze unless the .dsq files actually exist.