Eu implementei grande parte da minha lógica de jogo no momento, mas ainda crio meus mapas com desagradáveis loops on-the-fly para poder trabalhar com alguma coisa. Agora eu queria seguir em frente e fazer algumas pesquisas sobre como (des) serializar esses dados. (Não procuro um editor de mapas - estou falando do próprio arquivo de mapa)
Por enquanto, estou procurando sugestões e recursos, como implementar um formato de arquivo personalizado para meus mapas, que deve fornecer a seguinte funcionalidade (com base no método MoSCoW):
- Deve ter
- Extensibilidade e compatibilidade com versões anteriores
- Manipulação de diferentes camadas
- Metadados sobre se um bloco é sólido ou pode ser passado através
- Serialização especial de entidades / gatilhos com propriedades / metadados associados
- Poderia ter
- Algum tipo de inclusão do conjunto de peças para evitar a dispersão de arquivos / conjuntos de peças
Estou desenvolvendo com C ++ (usando SDL) e segmentando apenas o Windows. Qualquer ajuda útil, dicas, sugestões, ... seria apreciada!
Resultado da discussão abaixo
Estive projetando meu formato de arquivo de mapa nas últimas horas e criei um esqueleto (contém apenas camadas por enquanto - deixarei o resto para todos que projetam seu próprio formato) que gostaria de compartilhar com todos os interessados - se você tem as mesmas intenções de obter algum tipo de inspiração. A captura de tela em tamanho real pode ser baixada em Imgur .
fonte
Respostas:
Pessoalmente, sou mais fã de formatos binários com seções (como o Windows PE, apenas muito mais simples). Eles também são mais fáceis de analisar (mas essa é apenas a minha opinião ... Eu trabalhei com XML o suficiente para me causar dores de cabeça, verificando se getElementByName retornou um único valor ou uma lista de valores ... ugh). Então, se eu fosse você, eu faria algo assim:
,
Vantagens:
Desvantagens:
Mas a melhor coisa nessa abordagem, na minha opinião, é: você pode fazer tudo sozinho. Muitas tentativas e erros, mas no final, você acaba aprendendo muito.
fonte
Você pode usar o formato de mapa TMX usado pelo editor de mosaicos (assim como vários outros editores de mapas).
Mesmo se você não usar o Tiled, o formato TMX suporta toda a funcionalidade mencionada e possui vários carregadores / analisadores existentes para uma variedade de idiomas. Também é muito fácil entender o formato e estendê-lo para o seu próprio jogo.
fonte