Um demo foi colocado no Youtube também, o resultado ficou legal.
O processo de recomputar a superfície após colisão é um pouco custoso, então foi utilizada uma thread para realizar esse processo em paralelo. Para observar melhor a diferença, um amigo piorou um pouco o algoritmo. Dá para ver no vídeo abaixo que quando há colisão sem threads, o jogador fica lagado e não consegue se movimentar, enquanto com thread o resultado fica bem melhor.
Até mais!