Vi que simetria e coerência são importantes no design de nível do RTS, mas sou preguiçoso e quero fazer níveis gerados proceduralmente.
Como garantir que eu gere um campo de jogo justo ao criar procedimentos para níveis de um RTS?
Vi que simetria e coerência são importantes no design de nível do RTS, mas sou preguiçoso e quero fazer níveis gerados proceduralmente.
Como garantir que eu gere um campo de jogo justo ao criar procedimentos para níveis de um RTS?
Respostas:
Pessoalmente, acho que a simetria no design de níveis é chata, e não acho que seja necessariamente o caso para níveis justos; a simetria é uma maneira de garantir que todos tenham acesso aos mesmos recursos e aos mesmos gargalos em virtude do nível literalmente espelhado para cada jogador de alguma maneira. Eu acho que a parte importante é o acesso (aproximadamente) às mesmas vantagens e desvantagens. Não tanto a simetria em si.
Eu também acho que um jogo equilibrado de forma que todos os lados tenham poder equivalente e tenham oportunidades equivalentes é chato. Obviamente, você não quer um desequilíbrio total desses fatores, mas acho que isso pode criar uma dinâmica de jogo interessante para oferecer a cada lado oportunidades e barreiras ligeiramente diferentes.
Esse é o tipo de contexto de design que estou pensando em enquadrar a resposta real à pergunta:
Se a simetria realmente importa para você, você pode simplesmente gerar proceduralmente um pedaço de nível e espelhar esse nível nos dois eixos. O pedaço que você gera é basicamente um quarto do nível e você o espelha para que cada quadrante seja o mesmo. Por exemplo, um mapa de altura processual com depósitos de recursos dispersos aleatoriamente:
Mas como eu disse acima, isso parece chato. Uma abordagem mais interessante pode ser gerar todo o terreno processualmente, mas ao colocar recursos, certifique-se de restringir cada quadrante a ter o mesmo número de cada um (dentro de alguma tolerância para fornecer alguma variabilidade). Você pode influenciar o posicionamento de vários tipos de recursos em várias áreas (aleatoriamente, perto dos pontos de partida, perto das fronteiras) com base na importância dos recursos. Por exemplo:
Você pode executar análises na imagem gerada para tentar encontrar arestas de recursos - gargantas estreitas, por exemplo, que podem ser consideradas gargalos. Você pode decidir rolar novamente a geração do terreno para uma parte do mapa se, por exemplo, ele tiver muito mais ou menos gargalos ou recursos de terreno detectáveis da mesma forma que outros. Você também pode fazer análises de terreno semelhantes para garantir que cada recurso colocado seja, de alguma forma, acessível.
Por exemplo, você pode decidir rolar novamente o quadrante inferior esquerdo porque ele tem muita água (em vermelho) ou os quadrantes que contêm o verde porque eles são taticamente vantajosos (possíveis gargalos do canyon):
Você também pode optar por orientar manualmente sua geração de recursos; você pode colocar manualmente certos elementos, como um rio, dividindo as seções do nível ou os principais depósitos de recursos, e executar a geração do procedimento posteriormente, de modo a preservar os recursos de balanceamento de chaves colocados à mão e ainda fornecer a variedade interessante e orgânica que você deseja de geração processual.
Por exemplo, um terreno gerado que preserva um rio colocado manualmente, dividindo o mapa ao meio e coberto de floresta, ofereceu uma defesa extra em torno das bases:
Em alguns casos, pode ser possível confiar nos próprios jogadores para construir mapas assimétricos equilibrados usando a mecânica de manipulação de blocos.
Em uma extremidade do espectro, você pode permitir que os jogadores criem o mapa, parcial ou totalmente, selecionando e posicionando blocos do mapa. Há várias maneiras diferentes de ajustar isso:
No outro extremo do espectro de manipulação de blocos, está permitindo aos jogadores manipular blocos de mapas. Nesta solução, o jogo começa com um mapa inicial. O mapa inicial pode ser simétrico ou pode ser 'justo o suficiente' usando qualquer uma das outras respostas.
Em seguida, ocorre uma fase de manipulação de mapas, na qual os jogadores podem executar algumas das seguintes ações:
Essas manipulações podem ser executadas uma de cada vez; nesse caso, um jogador terá a chance de reagir às manipulações de outros jogadores, ou o jogador pode enfileirar-se em uma lista de alterações que são executadas. Além disso, você pode permitir aos jogadores manipular o mapa inteiro ou restringir as coisas às áreas de partida.
Uma desvantagem dessa abordagem é que o resultado final precisa ser protegido contra resultados indesejáveis - isto é, manipular uma cadeia de montanhas intransitável, de modo que parte do mapa se torne inacessível. As soluções possíveis para essa desvantagem são:
Faça com que seu algoritmo de geração de mapas gere níveis simétricos, gerando um nível, espelhando-o e colocando cada jogador de um lado. Um mapa de quatro jogadores pode ser criado espelhando-o nos eixos xe y.
Dessa forma, o mapa será igualmente bom (ou ruim) para todos os jogadores. Um efeito colateral do qual você precisa estar ciente é que isso significa que os jogadores estão cientes das posições dos outros jogadores e do layout das outras partes do mapa depois de explorarem os seus.
Outra opção é gerar um mapa sem esse truque de simetria, mas depois mostrar o mapa inteiro aos jogadores e fazer com que cada jogador escolha seu local de partida livremente.
Uma abordagem é usar outros fatores para equilibrar o mapa. Você pode automatizar isso usando alguns algoritmos de análise de mapa e fornecendo recursos extras para locais considerados desfavorecidos. Como alternativa, você pode usar os próprios jogadores para esta etapa. Um exemplo atual disso é o uso de leilão reverso no modo de revelação na Offworld Trading Company (OTC) para fundar sua reivindicação inicial (por exemplo, escolher um local base inicial):
Com o passar do tempo, a dívida inicial para a fundação precoce diminui. Isso acabará se transformando em dinheiro inicial, se levar um tempo suficiente para os 2 últimos jogadores serem encontrados. Uma vez que resta apenas um jogador que não tenha fundado seu QG, os valores param de mudar e esse jogador não ganha mais por esperar para encontrar.
Não me lembro se foi a entrevista da 3 Moves Ahead ou da Mesa Redonda de Design de Jogos , mas em uma delas, Soren Johnson (o desenvolvedor) diz que essa mecânica muda essencialmente o problema do mapa de "posso encontrar a melhor localização primeiro" para " quão boa é a segunda melhor localização no mapa ".
Um benefício é que essa solução permite mapas altamente assimétricos. Uma desvantagem é que o mapa inteiro é revelado a todos os jogadores, pelo menos no começo. A abordagem OTC também revela a localização da base de jogadores. Outros mecânicos, como lances às cegas, podem evitar revelar locais de base.