Both the oil and the "dirtiness" of the car were simple variables stored in the car's data file. These values just changed from say 100 for maximum shine/clean oil, down to 0 for minimum shine/dirty oil. The point is that these were just numbers for the game code - the game looked at these numbers and then multiplied them in somewhere else. The shinyness was multiplied into rendering the car, the oil was multiplied into the BHP figure. It's like, one line of code calling on these things and a few more to actually change them.
However, with skid marks, you need to decide on a few things:
- Are you going to have different colours/consistencies, or just one generic black streak?
- How accurately are you going to track the skid?
Now, I imagine you don't want a chunk of a rhombus for your skid mark, you want a curve matching where the car went. In which case, you're going to need an algorithm that tracks when any of your four tyres break traction - that's fine, that's already there to know when to generate tyre smoke. So, we just need to expand that to lay down "rubber". To get anything like a realistic shape, individual rectangular segments of rubber couldn't be more than about 1cm long in the game world.
Let's say we have a car sliding around a corner at 80km/h. At 80km/h, you travel just over 22 metres per second, or roughly 2,222 centimetres per second. So for every second the car slides, we have to make another 2,222 calculations per tyre, so for four tyres, that's 8,888 calculations per second. Rectangles will be the simplest shape to draw, so we're going to need the 4 coordinates for the corners of the rectangle: 35,552 calculations a second now. On top of that, since we're only drawing the screen 60 times a second, we're going to have to store that data somewhere until the next draw pass.
When you take into account the extra routines to actually draw the "rubber", then you can get even more pedantic and calcualte individual tyre widths, both "stock" or under compression as the wheel warps with pressure, different textures/consistencies for the "rubber", it quickly becomes a logistical nightmare.
Damage in GT2... yeah, that was an interesting blip on the radar.