This project is read-only.

Foosball game and Xbox360 performance

Jul 12, 2007 at 8:30 AM
Hi, we finished our first XNA game, called "Xtreme Table Soccer" and succesfully entered the DBP contest with a windows version. This game uses BulletX for dynamics and collisions, and it's working really nice on the windows version.

You can watch some screenshot and video, in the Xna forums:

We are now working on the Xbox360 version and the first problem we encountere is that the physics performance on the console is dramatically lower, so the game became unplayable at all.

We are currently using the 2.50 alpha release, would it be any help to migrate to the latest source code check-in version?

If it would be of any help, we can give you access to the game source code.
Jul 12, 2007 at 8:14 PM
The game looks really nice to me. Great work.
There are major problem with Xbox version of BulletX - I don't have XNA Creators Club subscription so I can't test perfomance :(
If you wan't you can try to do something on your own. The biggest problem I think is memory allocation and GC... and latest source code check-in have nothing that can improve perfomance.

I had a plan to see if the perfomance will increase when I create all math methods to take parameters by reference but had no time (I'm working now on 2 jobs 6 days per week).

Hope this helps.
Jul 12, 2007 at 11:03 PM
Hi Klemix,

I've been inspecting your source code and have seen many floating points value operation that can be switched to reference function calls. That should improve the performance a bit, can't tell if it will be enough.

I'm gonna buy the subscription this very weekend, wish us good look.

I will keep you informed of any progress I make, ok?

Jul 13, 2007 at 8:50 AM
Wish you luck. If there will be questions feel free to ask them here.
Jul 19, 2007 at 4:48 AM

That looks really nice.

Perhaps you can use PIX tool to profile performance under Windows version? Or can PIX also tune the XBox 360 XNA version?
Jul 19, 2007 at 8:31 AM
We finally got the frame rate under playable levels, we used the following:

* Reduced the number of simultaneous CollisionObjects to the minimun. To do that, we automatically deactivate and detach all collisions on the stick and men that are safe to be ignored. Then they are attached to the wold while the ball is close enough.

* Reduced the physics precision by increase the third parameter of the StepSimulation method. Can't tell what it means, but the fact is that the physics became a bit less precise but the performance improved drastically.

StepSimulation(timeStep, 1, 1f / 30f);

We also tried to optimize the library itself by using the out/ref methods of the Vector3 class, we had to edit so many source code lines that we ended ruining it xD. I believe some work still can be done in such direction.

I'll showcase the game here and in the main forums when it's done, hope you like!
Jul 19, 2007 at 9:05 AM
It's great. Wish you look in the future.