lgoritmo eficiente para colisões em jogos 2

Estou programando um Bomberman em Java, seguindo um tutorial (este é o meu primeiro jogo). O tutorial sugere o seguinte código para detectar colisões.

        for (int p=0; p<entities.size(); p++) {
            for (int s=p+1; s<entities.size(); s++) {
                Entity me = (Entity) entities.get(p);
                Entity him = (Entity) entities.get(s);

                if (me.collidesWith(him)) {
                    me.collidedWith(him);
                    him.collidedWith(me);
                }
            }

Por enquanto,entidade é uma lista de arrays que contém os inimigos e o jogador. Como também quero detectar que o jogador colide com paredes, devo colocar todos os ladrilhos de parede ou tijolos no nível na lista de entidades? Se sim, esse algoritmo não é muito ineficiente? Esses blocos não vão colidir com outros blocos, então eu estava pensando em gerenciar entidades de jogos em listas diferentes. O que você sugere? Existe um algoritmo mais eficiente para fazer isso?

Nota: Eu já li outras perguntas relacionadas a colisões em jogos 2D. Muito obrigado

questionAnswers(2)

yourAnswerToTheQuestion