The Good:
Old English gÅd has a Germanic source; it is related to Dutch goed and German gut.
The Ugly:
Ugly is from Old Norse uggligr ‘to be dreaded’, from ugga ‘to dread’, therefore the primary sense reflects the effect on the observer rather than the appearance itself of the person or object observed.
And The Bad:
The source of this derogatory adjective is not altogether clear but is perhaps Old English bǽddel ‘hermaphrodite’ or ‘womanish man’, and so it probably owes its semantic core to homophobic feelings. The sense is refelcted in the obsolete word badling (Old English) which was an ‘effeminate or worthless man’.
Source: The Oxford Dictionary of Word Histories; Glynnis Chantrell, ed. Oxford University Press (UK), 2002