Design de nível 2D / edição / salvamento de perguntas [fechado]

12

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?

Simiil
fonte

Respostas:

10

Para um MMO 2D, usamos http://www.mapeditor.org/ . Usamos várias camadas para fundo, decoração de fundo, objetos no mesmo nível dos jogadores e objetos na frente do jogador. E uma camada adicional com apenas um quadrado vermelho para marcar colisões.

Não tenho certeza se esse recurso ou o software funciona para um scroller lateral 2D, mas pode valer a pena dar uma olhada nele.

Hendrik Brummermann
fonte
+1. É uma ótima ferramenta. Também é de código aberto, para que você possa estendê-lo, se necessário.
Janis Kirsteins
isso é realmente uma boa ferramenta, eu testei e não tive um único problema importando-o para o meu jogo.
Simiil 27/08/10
1
ok então agora eu quero saber como fazer os níveis de base não-tile-, como os mundos em vermes, mas eu acho que eu vou pedir isso em um novo dia questão
Simiil
6

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

markblue777
fonte
É exatamente assim que "Excite Bike" fez seus mapas personalizados na Nintendo. vc.nintendolife.com/games/nes/excitebike
Stephen Furlani
5

texto alternativo

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:

texto alternativo


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.)

Para editar os dados de nível do jogo demo Allegro, usamos a ferramenta gratuita e de código aberto Blender. Você pode obtê-lo aqui:

http://blender.org

Aqui estão as instruções passo a passo de como funciona:

1) Coloque o arquivo ademo_export.py na sua pasta de scripts do Blender. É o script de exportação que converterá do formato .blend para o formato .txt usado pelo jogo demo. No unix, o caminho será:

~ / .blender / scripts / ademo_export.py

2) Carregue o liquidificador de arquivo .blend. No unix, digite isto no diretório com o arquivo level.blend:

blender -w level.blend

(O -w é para usar os modos de janela, que eu prefiro.)

3) Edite o nível. No menu, em

Ajuda -> Scripts Navegador de ajuda -> Exportar -> Allegro Demo Game Level

você encontrará algumas dicas úteis.

4) Salve o arquivo (use a compactação antes de confirmar). Exporte-o como .txt no menu de exportação, escolhendo Allegro Demo Game Level.

5) Atualize level.dat usando level.txt, o novo nível deve aparecer no jogo.

Leftium
fonte
2

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.

  • Você pode usar um editor de mapas; escrevendo o seu próprio ou encontrando um já existente, como o mapeditor, que o nhnb mencionou. Escrever o seu próprio seria bom para uma experiência de aprendizado, mas não tanto para um produto acabado.
  • Você pode apenas digitar dados em um arquivo de texto. Isso é mais simples, mas não é fácil ler novamente. Você provavelmente poderia obter o mesmo no editor de mapas, mas isso seria automatizado. A desvantagem disso é que você não pode adicionar efeitos especiais, como certos ladrilhos (não tipos de ladrilhos , mas ladrilhos (13,45) por exemplo) para fazer coisas especiais.
O Pato Comunista
fonte
2

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.

Malha
fonte