Jeff Harris

Software engineer, hobbyist game developer

Evaluating Nvidia PhysX

I’m not happy with the JigLibX results, and I don’t see much active development on it. I’m looking at a couple of different physics library options. Right now I am evaluating PhysX (through the StillDesign C# wrapper). I also want to check out Havok.

Im sure it won’t be perfect (game physics is at best a black art!) but i’ve seen a few videos on youtube where PhysX looks great. And being owned(?) by Nvidia, its bound to be more actively developed and supported than ODE/JigLib/etc.


Flic parser

Tonight I wrote a flic file parser. Flic files are animation files. Handling compressed frames was a bit tricky, but it was good fun. In Carmageddon flic files are used for various texture animations in the UI and in game. Looking through the Data\Anim folder, I found some funny images that were obviously used during development before being replaced with the final versions. I just love hidden stuff :)


C1 crush data (update)

I havent had much time to work on this lately - I’m in London for 2 weeks working on a project 7 days a week.

So basically, the way the crush data seems to work - there are many of these structures in the car file:

Vertex index
bbox min
bbox max
scale1
scale2
list of affected vertices

So taking a vertex, if it collides with something, it can move within the defined bounding box. The amount it moves for a collision is scaled by either scale1 or scale2 (not sure how this is determined yet).

Then the list of affected vertices is used to move points around the main vertex to make it look like the bodywork is compressing around it. Each affected vertex has some sort of scale (1-255), at 1, all vertexes move down, at 255 they all move upwards.