Prototipagem de um jogo de quebra-cabeças para resolver os níveis

11

Estou na fase de prototipagem de criar um jogo de quebra-cabeça para iOS. A premissa básica do que o jogador precisa fazer é ir do ponto A ao ponto B, navegando por um labirinto, enquanto move os blocos para fora do caminho e evita os inimigos. Esta é a minha primeira abordagem a um jogo como esse, por isso estou me perguntando como os outros se certificaram de que os níveis que eles criam sejam solucionáveis.

Por exemplo, pegue o clássico jogo de desbloqueio, no qual você deve mover o bloco vermelho para fora do tabuleiro, movendo as outras peças que não são vermelhas para fora do caminho. Fica difícil porque eles estão todos em um espaço apertado, sem muito movimento.

O criador sabe que o arranjo das peças do quebra-cabeça é colocado de maneira a possibilitar a solução do quebra-cabeça? Eles começam com protótipos de papel e trabalham de um estado final solucionável para trás para criar os layouts iniciais de tabuleiro de jogo?

I00I
fonte

Respostas:

10

Você parece estar fazendo um jogo no estilo Sokoban . Você tem pelo menos três opções:

  • Trabalhando a partir de um estado final resolvido. Meu pressentimento diz que essa não é a solução ideal, porque a) geralmente existem muitos estados finais eb) o quebra-cabeça não só precisa ser solucionável, mas também interessante. Portanto, você provavelmente deve buscar uma ou as duas outras opções:

  • Teste automático. A menos que você esteja criando níveis enormes, existem poucas ações que um jogador pode executar, a maioria das quais levará rapidamente a um estado de jogo insolúvel. Isso torna perfeito para um bot esgotar todos os movimentos possíveis. Se houver pelo menos um caminho que leve a uma solução, o bot a encontrará.

  • Meu método preferido seria o teste manual. Então você tem uma idéia geral de um nível e expõe o tabuleiro, coloca obstáculos e blocos móveis, etc. Em seguida, tenta resolvê-lo como se fosse um jogador e deve se observar conscientemente. Antes de tudo, é claro, ele está nivelado? Um teste automatizado pode ajudá-lo muito com isso, economizando muito tempo. Segundo, o nível de diversão para jogar, é interessante o suficiente para que o jogador queira resolver outro? Essa, além da mera resolubilidade, é a principal questão se você deseja melhorar o seu jogo. Em seguida, você deve julgar se o nível é fácil ou difícil e provavelmente deseja apresentá-los nessa ordem: fácil a difícil.

TL; DR: implemente um bot que pode verificar rapidamente se um determinado nível é solucionável ou não, de preferência no seu editor de níveis. Em seguida, crie níveis que possam ser divertidos de resolver. Em seguida, faça o teste manualmente para o fator e a dificuldade divertidos.

Hackworth
fonte
Hackworth muito obrigado. É muito útil. Como encontrar mais informações sobre como criar um editor de níveis e um bot de teste? Certamente deve haver alguns princípios gerais que me ajudem a começar. Além disso, como você descobriu o gênero do jogo chamado Sokoban? Eu nunca saberia o que procurar no Google. Isso é ótimo. Obrigado novamente. Posso dizer que você se preocupa em fazer "jogos divertidos e divertidos". É uma boa mudança de fazer perguntas no Stackoverflow.
I00I 29/04/12
3

Essa também foi minha pergunta por um longo tempo, não sei se é a melhor prática para criar quebra-cabeças, mas agora tenho uma resposta. Para encurtar a história, imagine uma situação simples e válida de jogo final, depois vá passo a passo para trás e chegue ao ponto de partida.

Agora, para dar mais detalhes: você deseja que o quebra-cabeça seja sempre solucionável, do ponto de vista dos jogadores, não é importante se o quebra-cabeça tiver duas ou três soluções, mas tiver pelo menos uma! Tendo isso em mente, você pode iniciar seu projeto fazendo movimentos válidos reversos. Você disse que é um jogo que você precisa, de alguma forma, mover todos os blocos do tabuleiro de jogo. Portanto, para o primeiro passo, imagine jogar no limite do mapa, e não há blocos vermelhos em nenhum lugar do tabuleiro. A partir dessa situação, você começa a fazer movimentos inversos, que são movimentos normais (reverso de outro movimento normal), ou puxar um bloco (que é o inverso de empurrar o bloco) e puxar um bloco para dentro do tabuleiro de jogo (que é obviamente reverso para empurrar esse bloco para fora de cena). Com essa abordagem, você sabe que sempre há pelo menos um método para resolver o quebra-cabeça,

Como Hackworth sugeriu a criação de quebra-cabeças dessa maneira, pode gerar quebra-cabeças muito simples ou não criativos a princípio, mas depois de fazer alguns quebra-cabeças, você aprenderá aos poucos que tipo de movimentos resultará em um bom quebra-cabeça. É exatamente da mesma maneira que um jogador ganha experiência para resolver quebra-cabeças mais difíceis depois de resolver quebra-cabeças simples.

Ali1S232
fonte
Gajet, obrigado por fornecer informações sobre suas experiências. É bom ver que alguém já passou por esse caminho. Não saber como configurar um editor de níveis e um bot para ver se eles são solucionáveis ​​me faz confiar nesse método em relação às outras duas soluções mais elegantes fornecidas. Ainda posso ter que abandonar meu amor pelo Cocoa Touch, quebrar e usar o editor de nível Cocos2d e as estruturas para esse projeto em particular.
I00I 29/04/12
1

Esta é uma pergunta realmente interessante. A melhor resposta é que, ao projetar sua mecânica de jogo, você deve considerar como deseja criar seus quebra-cabeças. Às vezes, criar um quebra-cabeça divertido de jogar é diferente de criar um sistema de quebra-cabeça no qual você pode criar o número (grande) adequado de quebra-cabeças divertidos - essa é uma das distinções importantes entre Desenvolvedor e Jogador.

Mas você já possui algumas regras, então vamos ver com que rapidez podemos levá-lo a um bom método de criação de quebra-cabeças repetível. Precisamos começar com objetivos. (Você não pode vencer sem objetivos!) Aqui estão alguns objetivos possíveis para você:

  1. Os níveis devem ser esteticamente bonitos.
  2. A solução para os níveis deve ser elegante.
  3. Cada nível deve ter uma solução única.
  4. Cada nível deve ter uma dificuldade bem definida (para que você possa solicitá-los adequadamente)
  5. Cada nível deve ser muito diferente de qualquer outro nível.
  6. Você precisa de 1.000 níveis.
  7. A criação do nível deve ser simples o suficiente para os usuários fazerem.

Crie uma meta certa para você e trabalhe de trás para frente. Se você deseja níveis belos - então precisa de um sistema no qual possa fazer qualquer arranjo solucionável com ajustes limitados - para que as considerações estéticas possam dominar. Se você precisar de níveis X, precisará de um processo que possa automatizar - ou tenha uma grande equipe trabalhando para você. ;) Seus objetivos devem orientar sua solução.

Simon Strange
fonte