Monthly Archives: August 2005

Cameras, GUIs and Physics Calcs

Working on the camera- finally managed to separate camera from server control, allowing smooth client-side animation and hopefully removing the ‘judder’ that some users were experiencing. Improvements of the in-battle GUIs (thanks Jim). Spent quite some time removing client/server physics drift — realised for example that Torque normally only invokes onCollision callbacks on the server, whereas we need it on client too; other problems were due to compression/rounding errors when sending commands from client to server. Spent lots more time with collision resolution — there are serious bugs in the method used by Torque for rigid body dynamics, so I had to patch together a reasonable replacement. Also had to synchronise the order of object simulation on client & server, because otherwise collisions would not turn out to be the same and we would be back in a drift situation. These problems of drift wouldn’t really be noticed in a real-time game where the client nudges the objects slowly back to position over a period of a second or two, but you really notice it when those objects are otherwise not moving!

Got basic waypoint-based racing AI working. Here we have a set of bots racing around the track, with speeds and collisions being logged in the database.

[This is an historical blog post which used to live on my Darkwind website]