Патч - это изменение кода или какой-либо библиотеки. То есть для написания патча надо ковыряться в исходном коде программы. Тут нужен как минимум какой-нибудь компилятор.
Аддон - это добавление чего-либо нового в программу без изменения кода, например новый уровень в игре. Тут для каждой игры по разному. Для создания уровней - нужен редактор уровней, для моделей - соответственно редактор моделей и т.д.
Например, давным давно у меня была игрушка Duke Nukem (которая 2D!), так вот там для создания уровня было достаточно текстового редактора (естественно HEX).