I've been looking for translations online, but all of them don't fit what I want to say. I'm having trouble translating something like "He is good at playing the piano" in French, because what I get is "Il est bon à jouer du piano" which can also be "He is good for playing the piano". So what I'm basically asking is how to translate sentences like "They are good at cooking, "She is bad at playing the guitar" or "We are bad at studying".
There are several ways to translate that, but usually in French the "at -ing" form will be translated by a preposition and a noun. "good" will be translated by "bon" or synonyms like "doué", "fort"...
He is good at playing the piano. -> Il est doué au piano.
If you want to use a verb you can use the following form, with the adverb "bien":
Il joue bien du piano
It may be ambiguous because you don't know if "il" is at the instant playing well the piano or if he is just skilled in general, but the context should make that clear.
Some other examples:
They are good at cooking. -> Ils sont forts en cuisine.
They are good at cooking. -> Ils cuisinent bien.
She is bad at playing the guitar -> Elle joue mal de la guitare / Elle est mauvaise en guitare
We are bad at studying -> Nous n'étudions pas bien / Nous ne sommes pas doués pour les études.
This is a kind of sentence which is hard to translate easily from english. For instance, your examples would become:
Il est doué au piano
Il est doué pour jouer du piano
Ils sont bons en cuisine
Elle est mauvaise à la guitare
On n'est pas doué pour étudier
Here, you may use « doué » and « bon », but on an oral conversion, you will often hear « doué » for this kind of sentence. The difference with englsih is that in french, we won't use a verb but a noun after "good at", it makes it a little tricky to translate...