Game Development Community

MultiPlayer Client Missing Sequences (Semi-Fixed)

by CSMP · in Torque Game Engine · 07/19/2009 (10:15 pm) · 28 replies

Ok, I've recently tried to do a network test of my demo and I've gotten a couple of errors that don't quite make sense having to do with the player animation sequences.
BTW: All of the below code works perfectly fine as singleplayer(multiplay hosted and non-hosted).


1. When a Client tries to log on using an exact copy of the demo the Client recieves an error stating "Missing Sequence" and inside of the console theres:
...
...
No such file 'common/data/shapes/ack/female/rLowKick1.dsq'.
No such file 'common/data/shapes/ack/female/rPunch1.dsq'.
No such file 'common/data/shapes/ack/female/female'.
Whereas rPunch1.dsq is #78 of #101 total animation sequences that are declared in my player.cs and are not declared to be in the "/female/" folder, but instead should be in "/anims/" folder.


Hers a sample of my sequence declarations inside of player.cs that work fine singlepayer and reflect that of working filepaths:
datablock TSShapeConstructor(soldierDts)
{
    baseShape = "~/data/shapes/ack/female/military.dts";
    sequence0 = "~/data/shapes/ack/anims/root.dsq root";
    sequence1 = "~/data/shapes/ack/anims/run.dsq run";
    ...
    ...
    sequence75 = "~/data/shapes/ack/anims/rKnee1.dsq rKnee1";
    sequence76 = "~/data/shapes/ack/anims/rKneeBlock1.dsq rKneeBlock1";
    sequence77 = "~/data/shapes/ack/anims/rLowKick1.dsq rLowKick1";
    sequence78 = "~/data/shapes/ack/anims/rPunch1.dsq rPunch1";
    sequence79 = "~/data/shapes/ack/anims/rSpinKick1.dsq rSpinKick1";
    sequence80 = "~/data/shapes/ack/anims/taekwondohighpunch.dsq taekwondohighpunch";
    sequence81 = "~/data/shapes/ack/anims/taekwondokickcombo1.dsq taekwondokickcombo1";
    sequence82 = "~/data/shapes/ack/anims/taekwondostance1.dsq taekwondostance1";
    ...
SO... I have no idea why the Client is searching inside of the "ack/female/" folder other than its loading from the directory that the baseShape is located!?

And the last error:
No such file 'common/data/shapes/ack/female/female'.
is scripted nowhere in any of my scripts and is being thrown in by the Client for some strange reason!


2. When I tried to put all the .dsq's in the folder with the baseShape I get it down to just this error:
*** Phase 1: Download Datablocks & Targets
Sending request for file common/data/shapes/ack/female/female
Connection error: Missing sequence common/data/shapes/ack/female/female for common/data/shapes/ack/female/military.dts.
So again for some strange reason the Client is throwing in this imaginary file/dir called 'common/data/shapes/ack/female/female' and considering it a missing sequence!?


I've seen a couple threads relating to this error, though none of the other threads had any actual fixes or reasons why this would happen, though one thread mentioned maybe a maximum number of animations were reched at 32 (even though in another thread it said there was a max of 512... which is more reasonable imo) so all in all very conflicting information.

If anyone can help me out as this is a VERY big hurdle in the development and release of my Free Demo that will be released here on GG as "MPGE: Alpha Project" (In which I was planning on releasing for bug testing anywhere from next week to the next month... though obviously depending on the state of this MAJOR bug).
Page «Previous 1 2
#1
07/19/2009 (10:28 pm)
Wow, strange error. Offhand I don't see anything in what you posted... my first guess would have been that you have a loose exec call somewhere -- but that would affect both multiplayer and singleplayer connections.

I don't know what the exact limit is on animations, though I've pushed past the 100 mark. I have heard of people having problems with an excessive number of animations, or it might have been the excessive length of sequence names, don't really remember.

Not much help I know, but do you need an early tester?
#2
07/19/2009 (10:39 pm)
Atm, I really could use all the help I can get.

Though i've got alot of stuff (source scripts and models) from content packs that I should probably lock up before I can send out an Early-Adopter version.
#3
07/19/2009 (11:19 pm)
Yeah, you'll definitely have to "lock up" all of your source before preparing a demo. Chances are that I've already got access to most everything (but not all) you're using, so if you need some help send me an email and I'll see if I can help you with anything.
#4
07/19/2009 (11:23 pm)
Hmmm, I just noticed this
datablock TSShapeConstructor(soldierDts)  
{  
    baseShape = "~/data/shapes/ack/female/military.dts";
I had thought that the name of a TSShapeConstructor also had to conform to that of the model name of the base shape. Such that larmor.dts would have a TSShapeConstructor named (larmorDts), marmor.dts would be (marmorDts), etc.

Just on the off chance that is causing some weird conflict for you, try changing the name of your TSShapeConstructor to militaryDts, instead of soldierDts.
#5
07/19/2009 (11:29 pm)
I'll try that..
#6
07/20/2009 (12:07 am)
No deal, though it was a very valid point and I will be keeping the change.

Still works for the Server, Client's still get the "Missing Sequence" error.
#7
07/20/2009 (4:54 am)
Try taking take off the ~ from your file path, and replace it with the exact path.

"~/data/shapes/ack/female/military.dts"

->

"starter.fps/data/shapes/ack/female/military.dts"
#8
07/20/2009 (1:07 pm)
I tried and no change.

Still getting:
...   
...   
No such file 'common/data/shapes/ack/female/rLowKick1.dsq'.   
No such file 'common/data/shapes/ack/female/rPunch1.dsq'.   
No such file 'common/data/shapes/ack/female/female'.

In which the Client is trying to load animations from the baseShape's folder, (where they are NOT declared to be)
And the Client's still trying to load some unknown female/female sequence.
#9
07/20/2009 (3:47 pm)
To Recap:

Question: Do the animation sequences HAVE to be in the folder with the baseShape for multiplayer instances?

Either way, I still get:
*** Phase 1: Download Datablocks & Targets   
Sending request for file common/data/shapes/ack/female/female   
Connection error: Missing sequence common/data/shapes/ack/female/female for common/data/shapes/ack/female/military.dts.

Question 2: Supposing I do put the sequences with the baseShape, Why would the engine be looking for the above error when there is no line written anywhere that reflects that line of code?
#10
07/20/2009 (4:34 pm)
Animations can be placed in any location so long as the TSShapeConstructor points to the correct locations is my thought -- but keep in mind that I never tried doing so with TGE. TGEa & Torque 3D both are set up to use "shared" animations across the differing shapes -- whether or not there had to be code changes for that I don't know.

Where exactly is your TSShapeConstructor located from? Is it in the player.cs file in the server scripts or is it the player.cs located where the shape is found at?
#11
07/20/2009 (4:40 pm)
It is located in the scripts/server/player.cs file (as was the original code for MG Starter Kit that I have not tried to change too dramatically)
#12
07/20/2009 (4:47 pm)
Is there one in the shapes directory? If so it might be exec'd somewhere and causing interference.

I'm kind of shooting in the dark here... but believe me I hate these types of problems too.
#13
07/20/2009 (4:51 pm)
One more shot in the dark, is your baseShape the same one declared as the shapeFile in the player datablock?
#14
07/20/2009 (4:51 pm)
Actually, there are some extra .cs files in the data/shapes/ack folder, I am removing them now and will retest...

Give me 10 and ill have the results...

P.S. yes, both baseShape and ShapeFile are the same
#15
07/20/2009 (5:11 pm)
No deal...

Still getting 'No such file' error
#16
07/20/2009 (7:32 pm)
I would say I'd just revert to the MG Starter Kit character but there are so many animations required for the scripts I have written that I think I'd just make more problems...

So... Damn, Guess I'll try from Stock TGE and go from there and see if I can't find out what might have produced the errors
#17
07/21/2009 (2:42 pm)
OK... Problem fixed.

Reverted to original .cs animation sequence file in the "/data/shapes/ack/" folder INSTEAD of MG Starter Kit Type "/scripts/server/player.cs" animation declarations and still had problem of the client searching for animations in the baseShape folder...

So at that point I gave up and decided to try adding the copies into the baseShape folder again... and it worked!

Seems like this could be avoided if the client would just search in the correct (and declared) folder for the animations, and I guess the F.A.C.K. is picky about its TSShapeConstructor .cs file location as well.

Either way it works!!! :)

Thanks everone for all the help, and thanks Michael for being so patient and extra helpful!

#18
07/21/2009 (4:31 pm)
Ah, wish I could have been more help, but at least you got it sorted out.

Over in Torque3D the TSShapeConstructor file is automagically loaded now so long as it's in the same directory and has the same name of the baseshape. This feature before now certainly would have made things easier, and less confusing for many people.
#19
07/24/2009 (8:15 pm)
OK, so this is not 100% fixed yet, though it seems if I comment out some of the last sequences it works...

Still doing some bug testing on this.
#20
07/31/2009 (6:42 pm)
There is an upper limit to the number of animations that you can put in a TSShapeConstructor. If the total packed size pushes the packet over 1500 bytes you will only get partial information on the client side. I've seen it range from 1100-1300 bytes. That changes based on what other information is going into that packet too.

It's a terrible limitation. My fix was to make the TSShapeConstructor pack nothing and just load the datablock both for the client and the server in a common spot. After the initial preload at start-up the downloaded version from the server does nothing. This only works because the TSShapeConstructor modifies the internal shape resource and only does it once anyways. We're now well into the hundreds of animations.

Although theoretically a client could change the animations on their side and potentially cause a crash.
Page «Previous 1 2