Bom, o update é sim uma convenção, mas o initialize não.
A linguagem de programação Ruby, se comunica através de métodos, isso é basicamente uma troca de mensagens.
A palavra reservada "def" é utilizada para criar (definir) diversas instruções que só será disparada quando existir uma chamada desse método.
O nome do método não importa, se você está criando um método novo, você pode dar qualquer nome para ele, o update é um desses casos, geralmente usamos um nome curto e explicativo para o método com base no que ele faz.
No caso o update se chama update porque ele "atualiza algo":
Colocamos um nome explicativo, pois temos que lembrar fácil desse nome depois para quando quisermos efetivamente atualizar o sprite (executar o código definido dentro do método update).
Você poderia dar qualquer nome para o método atualizar o sprite, poderia ser o nome "cachorro_quente", mas para atualizar a sprite você teria que chamar o mesmo nome.
Já no caso do initialize, é efetuada uma sobrescrita de método, pois o initialize já existe para grande parte das classes do Ruby, o método initialize é muito usado quando queremos executar algo no momento da criação da instância de classe "heroi = Heroi.new"
Aí você me pergunta "Resque, então devo chamar heroi.initialize quando eu quiser executar algo que está dentro do (def initiaze)?"
- Não, o que está dentro do initialize, vai ser chamando no momento que você chamar o ".new":
Sempre utilizamos o initialize quando queremos realmente inicializar algo.
Podemos também criar métodos para serem chamados no initialize, pos isso irá organizar o nosso código, e deixar o initialize mais fácil de ler
É isso!