Respostas:
Isso significa que, quando o plano de fundo é desenhado, nem tudo é redesenhado a cada quadro. Quando algo no mapa se move, a área que costumava ocupar é marcada como suja . Ao desenhar, você sabe que só precisa redesenhar essa parte do plano de fundo. Isso é benéfico, porque você só precisa redesenhar as áreas que não foram mostradas antes.
Portanto, isso é realmente benéfico apenas quando você não tem muitas coisas em movimento, caso contrário você gasta mais tempo tentando descobrir quais novas áreas desenhar do que se você apenas reformulasse todo o plano de fundo. Isso não é mais muito comum, já que a plataforma geralmente é rápida o suficiente para redesenhar tudo sem problemas. Como esse é realmente apenas um recurso de otimização, eu o ignoraria por enquanto e voltaria a ele se achar que o desempenho está faltando.
A renderização na maioria dos jogos ocorre dentro de um loop (o loop do jogo) e em cada iteração do loop do jogo, a totalidade backbuffer é limpo (neste caso, sua tela) e redesenhado do zero.
O termo renderização suja refere-se a uma técnica em que, em vez de limpar toda a tela a cada quadro, você a limpa somente sob demanda (ou seja, apenas quando algo mudou na cena) e possivelmente apenas uma parte dela (ou seja, apenas a parte em que algo mudou )
Esse processo de marcar apenas uma parte da sua tela para ser redesenhada é o que se refere a sujo (ou seja, essa parte da tela está suja e precisa ser redesenhada, mas todo o resto ainda está limpo e não deve ser tocado ).
Não faço ideia se existe alguma maneira especial de implementar isso no HTML5, mas encontrei esse recurso que pode lhe dar algumas idéias.