Mapas
Os mapas do jogo serão baseados em tiles, com camadas. Assim posso definir camadas de “fundo”, “frente”, “máscara”, etc. Dessa forma, um dos metadados de um mapa é uma matriz [l][a][c], onde:
- l é a largura do mapa, em tiles;
- a é a altura do mapa, também em tiles;
- c é o número de camadas do mapa.
Assim, a posição [12][10][1] daria o objeto na camada 1 e posição (12 * t,10 * t), sendo t o tamanho do tile.
Ainda devem ser definidos como devem ser detectadas as colisões do jogador com o mapa, como lidar com gatilhos de eventos de script e como posicionar os inimigos, o que nos leva a…
Inimigos
Uma coisa que deve ser levada em consideração é o posicionamento dos inimigos, mas isso depende de uma decisão de design: Os inimigos “reaparecem” quando o jogador passa por uma certa posição (pense Megaman), ou só reaparecem ao sair/entrar de um mapa (Castlevania SOTN e outros recentes)?
A primeira opção seria mais interessante com a implementação de um sistema de níveis, no qual o jogador pode acumular experiência ao eliminar inimigos. O problema é que esse sistema, se não balanceado corretamente, pode forçar o jogador a parar o progresso para alcançar um certo nível, o que considero uma forma artificial de aumentar o tempo de jogo, sem contar que é chato pacas. Sendo assim, creio que seja adequada a segunda opção.