Neste tutorial, vou te mostrar como possibilitar a interação de um jogador com vários NPCs (personagens não jogáveis) em um jogo, neste caso com um personagem chamado Dr. Owen. Até agora, o jogador só podia falar com o barman. Agora vamos expandir essa funcionalidade para que o jogador também possa interagir com Dr. Owen, após completar uma missão especial.

Principais Insights

  • Você pode integrar NPCs em seu jogo que só estão disponíveis após completar missões específicas.
  • A comunicação com NPCs pode ser feita através de menus suspensos para exibir dinamicamente as opções disponíveis.
  • Cada NPC precisa de um prompt de sistema próprio e uma história de fundo para possibilitar interações mais realistas.

Guia Passo a Passo

Primeiramente, vamos ver como podemos integrar a interação com o Dr. Owen em nosso jogo. Para isso, é necessário criar uma missão que deve ser concluída antes que o jogador possa falar com esse NPC.

Passo 1: Criar Missão Para falar com o Dr. Owen, o jogador deve primeiro completar a missão "Comprar uma bebida para o Dr. Owen." Comece levando o jogador ao bar, onde ele pode iniciar a interação com o barman. Ao entrar no bar, o jogador deve ver a opção de falar com o barman. Isso acontece ao timestamp 26.

Integração do Dr. Owen na experiência do jogador com a API da OpenAI

O jogador agora deve interagir com o barman para completar a missão. Após a conversa, ele compra uma bebida para o Dr. Owen. O jogador deve perguntar ao barman: "Posso comprar uma bebida para o Dr. Owen?". Isso completa a missão e o jogador obtém a capacidade de falar com o Dr. Owen.

Integração do Dr. Owen na experiência do jogador com a API da OpenAI

Passo 2: Lista Dinâmica de NPCs Após o jogador completar a missão, o Dr. Owen aparecerá na lista suspensa de NPCs com os quais ele pode falar. Você precisa verificar se a missão "Comprar uma bebida para o Dr. Owen" foi concluída com sucesso para garantir a disponibilidade do Dr. Owen.

Para isso, é necessário uma função de verificação que determine se a missão foi marcada como concluída. Isso acontece no timestamp 120, onde a lógica para a disponibilidade do NPC é implementada.

Integração do Dr. Owen na experiência do jogador com a API OpenAI

Passo 3: Expandir Interações com NPCs Crie um novo array para NPCs no código para integrar tanto o barman quanto o Dr. Owen. Certifique-se de atribuir um ID e um nome a cada personagem para que o jogador saiba com quem está falando.

Integração do Dr. Owen na experiência do jogador com a API da OpenAI

A lógica para filtrar os NPCs deve garantir que apenas os NPCs realmente disponíveis sejam mostrados. Sempre que o jogador selecionar um personagem no menu suspenso, é verificado se ele está no array de NPCs disponíveis.

Isso garante que apenas as opções utilizáveis sejam exibidas, como discutido no timestamp 180.

Integração do Dr. Owen na experiência do jogador com a API OpenAI

Passo 4: Prompt de Sistema para Dr. Owen Para possibilitar a comunicação com o Dr. Owen, é necessário um prompt de sistema especial que contenha sua história de fundo. Isso deve ser implementado para tornar as interações com o Dr. Owen significativas e atraentes.

Após o menu suspenso funcionar corretamente e o jogador poder selecionar o Dr. Owen, certifique-se de que todas as interações com Dr. Owen não ocorram mais com o barman. Isso é discutido no timestamp 238.

Integração do Dr. Owen na experiência do jogador com a API da OpenAI

Resumo

Neste tutorial, você aprendeu como integrar um novo NPC em seu jogo, cuja interação só está disponível após completar uma missão especial. Você conheceu os processos de funcionamento dos NPCs através da dinamização das opções suspensas, bem como a necessidade de prompts de sistema próprios para os NPCs.

Perguntas Frequentes

Como posso ativar a interação com Dr. Owen?Assegure-se de ter completado a missão "Comprar uma bebida para o Dr. Owen".

Como adicionar novos NPCs ao meu jogo?Crie um novo array com NPCs e atualize a lógica de disponibilidade em seu código.

Como funciona o menu suspenso para NPCs?O menu suspenso é preenchido dinamicamente com base nos NPCs disponíveis, dependendo das missões do jogador concluídas.