Criar nível para jogos 2D

Olá pessoal,

Há um tempo eu aprendi a criar mapas para jogos usando o método de tiles. Este método define “blocos” que são unidos e juntos formam o nível de um jogo (tanto visual quanto físico). É muito eficiente em memória, e economiza um pouco de processamento ao verificar se o personagem colide com a plataforma.
Só que eu estou precisando de algo um pouco mais complexo. Este método só me permite criar estruturas retangulares. Eu gostaria de implementar relevos, cordas(como para uma ponte), estruturas circulares e etc para meu chão e paredes.
Pensei em criar cada “chão” como um objeto e colocar em uma fila de execução, mas iria gastar bastante processamento.

Alguém com conhecimentos na área conhece algum método eficiente? Espero ter sido claro na minha explicação rs

Abraço

Use a Box2D:
http://box2d.org/
http://code.google.com/p/jbox2d/
A vantagem é que ela já dá suporte a objetos articulados, círculos, polígonos convexos arbitrários, transferência de forças e outras coisas legais.
Além de ser extremamente otimizada. O AngryBirds e o Limbo são implementados nessa engine.

Se fazer você mesmo o teste de colisão, dê uma olhada no funcionamento de QuadTrees.
http://www.kyleschouviller.com/wsuxna/quadtree-source-included/

Elas permitem que você torne o processamento das colisões em tempo aceitável.

Embora que, para os processadores de hoje, a menos que você tenha centenas de objetos na tela ao mesmo tempo, é bem provável que seja possível fazer o teste de colisão sem esse tipo de otimização.