Pensei em criar um jogo 2D Sidescroller simples como o SuperMario. Então eu me perguntava sobre como salvar, carregar ou criar os níveis para o jogo. A primeira coisa que pensei foi desenhar um png simples em blocos que representa o nível, e fazer todas as partes em que o jogador pode andar com uma cor especial (talvez lilás). Eu importaria o nível em blocos ou peças para que eu pudesse verificar a colisão.
então minhas perguntas são:
existem métodos melhores para isso?
Quais são os métodos profissionais para isso?
devo fazer isso com o Tiles e um editor de mapas com base em blocos? (por alguma razão eu não gosto disso, mas acho que se for o melhor método para usá-lo)
com um nível baseado em ladrilhos, como você perceberia as inclinações e como as verificaria quanto a colisões?
fonte
Uma maneira comum poderia ser apenas uma string, por exemplo
0,0,0,0,0,0,1,1,1,0,0,0,2
onde 0 seria um quarteirão, você pode caminhar sobre 1 poderia ser picos e 2 poderia ser a linha de chegada
basta ler isso através de um arquivo de texto (ou codificá-lo no jogo) e desenhar o bloco relativo que está associado ao número e ter sua lógica de colisão para lidar com a configuração.
Obviamente, você pode escolher o formato que desejar e talvez 0 signifique desenhar 5 blocos que possam ser percorridos.
Esta é apenas uma maneira de conseguir isso.
http://www.smudgedcat.com/tut_tiledlevel.html este link é um exemplo em c # usando a estrutura XNA. isso lhe dará uma idéia aproximada (NÃO contém inclinações, mas algo semelhante pode ser usado para definir esse tipo de caso)
Atenciosamente Mark
fonte
Muitos jogos usam um aplicativo de código aberto chamado Mappy . Ele tem seu próprio formato que suporta várias camadas e outros recursos. Você provavelmente deseja associar vários tipos de dados a um determinado bloco.
Eu acho que a abordagem do editor no nível do jogo é muito comum. O Modo Desenvolvedor é uma descrição interna de como os níveis de um jogo muito popular, Braid, foram projetados. O jogo tem um modo de desenvolvimento onde os níveis podem ser construídos / modificados. Os níveis em si têm uma camada de colisão coberta com blocos gráficos:
E eu pessoalmente não o recomendo, mas um programa de demonstração 2D para Allegro usou algum tipo de formato de modelagem 3D e o converteu para um formato personalizado no jogo. A vantagem era que ele podia modelar superfícies muito lisas e contínuas. (Era um jogo de skate em 2D baseado em física.)
fonte
Os métodos 'profissionais' provavelmente envolveriam um editor de mapas muito detalhado, provavelmente em C #, que lhes daria controle total sobre tudo.
Existem duas abordagens principais; um é mais fácil de fazer, mas não tão eficaz.
fonte
Eu tive pensamentos semelhantes (ou seja, voltar a escrever jogos como hobby - trabalho e outros compromissos ...)
Eu consideraria seriamente a rota de desenvolvimento do 'Map Editor' como parte do jogo / aplicativo.
Se o seu jogo ultrapassar o seu próprio PC, o conteúdo da comunidade seria um grande benefício.
fonte