Game Development Community

Action Arcade Wrestling - Part 2

by David Horn · 11/16/2009 (9:59 pm) · 0 comments

Well we’ve made some good progress, but hit 2 fairly big snags.
First off, I have a brand new facebook page:

www.facebook.com/ActionArcadeWrestling

Please join up !
Here is a new screenshot showing off the brand new arena, more can be seen on the facebook page:
img690.imageshack.us/img690/7653/facebook05.jpg

So yeah, the good news. You can now play through an entire match. I have the create-a-wrestler working and all of the options saving out to XML beautifully. I love the pace of the game and I’m really happy with it so far.

So here are my problems.

One is the xbox (not the PC) frame rate. Now I’ve done a lot of testing and have concluded that the poor frame rate is due to the rendering of the T2DShape3D. I can BARELY have four wrestlers at once without the fps drop to about 12. Is there some reason why T2DShape3D objects are so processor intensive?? I mean the 3D objects on the TX3D side don’t take this much power to render. I’ve lowered the polys and it’s helped quite a bit, but not nearly to the degree to which I’d like and they are REALLY low poly now.

Here is the second problem – this is a big one.

The loading times on the xbox are unplayable- specifically loading the dsq files.
My pseudo-code to create a new wrestler (T2DShape3D) is as follows:
T2DShape3D shape = Game.gameShape.CloneT() as T2DShape3D;
String _shapeFile = @"data/shapes/testguy.dts";
shape.SetShape(_shapeFile);
fs = new FileStream(@"data/animations/stand.dsq", FileMode.Open, FileAccess.Read);
Shape dsq = reader.ImportSequence(fs);           
fs = new FileStream(@"data/animations/walk.dsq", FileMode.Open, FileAccess.Read);
dsq = reader.ImportSequence(fs);
fs = new FileStream(@"data/animations/walkb.dsq", FileMode.Open, FileAccess.Read);
dsq = reader.ImportSequence(fs);
//92 more animations
shape.AddThread("default", null, true);
            
TorqueObjectDatabase.Instance.Register(shape)
On the xbox (not the PC) it takes FOREVER to load the dsq files. Now this code runs every time I add a new wrestler. The problem is that I have over 95 animations dsq files to load with many more to come. Multiply that times four for a tag team match and you can see the problem.

Is there ANY way to improve this?

My only two thoughts were
1. Somehow cut out some fat from the reader.ImportSequence function.
2. Load this once and then clone my T2DShape3D so it would already have the shape and animations within that shape.

I’m really at a loss here. Any help would be appreciated.

Thanks everyone and God bless!