Dancing is a noun (dancing is good for you), dance is a noun with a different meaning. I'm good at dancing.
Painting is a noun (painting is relaxing), paint is a noun with a different meaning. I'm good at painting.
Swimming is a noun (swimming is good exercise), swim is a noun with a different meaning. I'm good at swimming.
Chess is a noun, there's no 'ing' form of the noun. I'm good at chess.
Tennis is a noun, there's no 'ing' form of the noun. I'm good at tennis.
If there is an 'ing' form of the noun, then that is the one we use after I'm good at.
At least that's what I think.