Gerenciando uma história de jogo complexa ou sistema de missões


14

Que tipo de método é melhor usado para gerenciar enredos complexos em um jogo? Uma história simples é basicamente uma linha linear com paradas, de modo que não seria tão difícil, mas uma história mais complexa é basicamente um gráfico direcionado elaborado, com certos requisitos para se mover entre os nós. Então, como alguém efetivamente armazena e mantém um enredo complexo de jogos que possui vários caminhos e objetivos?

Respostas:


4

Depende exatamente de como o seu sistema é montado. Se for uma ramificação simples, basta tratá-la como uma história linear com alguns sinalizadores para dizer exatamente em que caminho você está (ou se preferir visualizar dessa maneira, uma estrutura de árvore binária em que cada nó é um ponto de escolha da história e o atual lugar na história é um ponteiro para um dos nós). Uma história um pouco mais envolvida, com vários caminhos que podem se cruzar, pode ser modelada como um gráfico acíclico direcionado, usando a mesma técnica.

E se você tiver vários arcos de história acontecendo simultaneamente, como um sistema de missões típico "mundo aberto", onde o jogador pode ter várias missões ao mesmo tempo? Se as missões não interagirem entre si, você pode apenas tratar cada uma delas como sua própria mini-árvore linear ou ramificada. E se eles se modificarem? Aqui está minha opção preferida:

Um gráfico direcionado modificado, em que cada nó representa uma missão. Aqui você tem dois tipos básicos de setas entre os nós: "ativar" e "desativar". Dessa forma, a conclusão de uma missão pode abrir novas, e também invalidar missões antigas que não fazem mais sentido (por exemplo, se você receber um conjunto de missões, cada uma delas para ajudar um lado diferente de alguns guerreiros). facções, completar uma missão pode ocultar automaticamente as outras, se você forçar o jogador a escolher um lado e ficar com ele). Você também deseja armazenar em cada nó seu status atual: ativo (atualmente visível para o jogador), inativo (nunca foi visível para o jogador), concluído (jogador terminou a missão), falhou (jogador viu a missão mas foi posteriormente desativado, por exemplo, pela conclusão de uma missão concorrente separada).

Nota lateral divertida: todo sistema que trabalha para uma missão / história também funciona para uma árvore de conversação individual com um NPC e vice-versa. Portanto, se você encontrar um sistema de conversação adequado para o seu jogo, pergunte a si mesmo se vale a pena modificá-lo também para o sistema de histórias.


Além disso, dependendo do jogo em questão, o gráfico pode não ser acíclico: considere, por exemplo, se o jogador comete um erro que o impede de seguir em frente, mas tem a chance de corrigi-lo revisitando uma série anterior de nós.
Jon Purdy

9

O conjunto de ferramentas Neverwinter Nights inclui uma tentativa interessante de resolver esse problema, conhecido como Assistente de plotagem. Originalmente, ele não foi fornecido com o conjunto de ferramentas; portanto, talvez seja necessário tentar novamente se você fez algum desenvolvimento de módulo anos atrás. Aqui está um longo tutorial que aborda os diferentes componentes projetados para projetar um enredo de RPG.

O resumo básico é que o "assistente de plotagem" permite que você construa histórias e missões de cima para baixo. Por exemplo, você pode dizer a ele para gerar o script relevante para uma busca "buscar 10 coisas", que leva a um fedex, que leva a um script personalizado. O assistente gerará uma série de componentes vinculados vinculados ao script de plotagem e permitirá que você os coloque no mundo. Isso permite que você mova facilmente NPCs ou inimigos pelo mundo sem interromper nenhuma conexão de script.

Não conheço nenhum outro jogo comercial que use essa técnica (a maioria parece usar uma tonelada de variáveis ​​únicas que são verificadas por meio de scripts), mas sempre achei que essa era uma base razoável para criar um rpg ou uma aventura completos jogo de estilo.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.