Como posso criar NPCs e cenas?

7

Como eu iria criar eventos / cenas do NPC? Por exemplo, qualquer RPG terá uma tonelada de cenas diferentes no jogo, nas quais você pode expressar uma história.

O que eu pensei até agora é ter gatilhos diferentes e um número indicando o estado da história em que o jogador está. Quando o jogador toca em um desses gatilhos, vou verificar o estado e avançar a partir daí. Estou na página certa?

Depois disso, como animar as cenas? Eu apenas os codifico no jogo? Eu estava pensando que é aqui que uma linguagem de script pode ser útil? eu não tenho certeza

Sei que essa é provavelmente uma pergunta grande, mas se alguém pudesse apontar na direção certa, seria ótimo.

Estou usando c # e XNA, se isso importa.

Milkboat
fonte

Respostas:

2

C # / XNA não importa muito. Suponho que você queira criar um RPG (2D?), Com eventos e um editor de mapa / evento.

Se for esse o caso, você precisará criar uma API de eventos e ferramentas para criar / consumir.

Por exemplo, você provavelmente criará um método "show message" (usa uma string para exibir quando você fala com alguém); seu editor de mapas permitirá que você coloque esse evento em algum lugar, especificando o texto; e o mecanismo do jogo mostra quando você pisa nesse local.

As linguagens de script são boas (você pode criar sua própria mini-linguagem), mas, de qualquer maneira, isso não impedirá que você precise escrever sua própria "API de eventos".

É assim que eu faço, e também é isso que o RPG Maker XP faz.

ashes999
fonte
+1 para uma excelente resposta, embora eu esteja curioso sobre como você determinou que Sean está usando um editor de mapas que permite que os eventos sejam colocados em algum lugar. Existe um padrão para editores de mapas?
Randolf Richardson
Tudo bem, eu estava pensando claramente nesse sentido. Fico feliz em ver que estou indo na direção certa. Obrigado :)
Milkboat
Oh, desculpe. Perdi a resposta anterior. Fiz um editor de mapas, por isso não deve ser difícil de adicionar essa funcionalidade
Milkboat
@RandolfRichardson Não determinei; Estou dizendo a ele para criar um editor de mapas (se necessário) e usá-lo. Não há nenhum padrão que eu conheça.
precisa saber é o seguinte
1

Atualmente, como os sistemas são configurados, os eventos gerados por objetos acionam cenas, como você afirmou que os acionadores de jogadores causam mudanças de cena e, certamente, você pode usar uma máquina de estado. Você pode criar seu próprio protocolo de cena de animação, para que ele não precise ser codificado. Você também tem a opção de reproduzir arquivos de filme reais, se desejar, mas geralmente eles são muito grandes.

Acho que você está definitivamente na página certa, já que este é o seu programa - você pode fazer o que quiser da maneira que desejar. Criar funcionalidades para coisas como essa é intrigante e gratificante.

Eu nunca vi nenhuma documentação real sobre esse assunto, por isso ficaria interessado em ver a opinião de outras pessoas.

ultifinito
fonte
Não sei ao certo o que você quer dizer com protocolo de cena de animação, poderia me dar um exemplo?
Milkboat
+1 por sugerir a reprodução de filmes (eu sugeriria isso, mas você me venceu).
Randolf Richardson
0

Não tenho certeza se você queria mais um exemplo de código do que teoria, mas dê uma olhada nesta pergunta

Skeith
fonte
0

Você tem a idéia certa de definir gatilhos em seus mapas de jogos e jogos para disparar eventos (observe, eu não necessariamente quero dizer os eventos no idioma C #). Os scripts são opcionais, mas podem ser uma maneira mais flexível de adicionar esses gatilhos ao seu jogo e recarregar novos, se uma mudança no enredo solicitar.

Independentemente de você estar usando scripts ou não, geralmente seria bom ter um "carregador de eventos" que possa transmitir um novo grupo de eventos ou gatilhos para os mapas do jogo sempre que necessário. Com os scripts, ele será considerado um carregador de scripts e será responsável por preencher o mundo do jogo com novos eventos em locais específicos, incluindo eventos que podem carregar outro script.

Por exemplo, no início do jogo, o primeiro script (ou objeto do carregador de eventos) será chamado automaticamente e enche o jogo com gatilhos de eventos. Um desses eventos pode ser acionado após derrotar o primeiro chefe, e esse evento, por sua vez, carregará outro script que substitui parte ou todos os acionadores de eventos do jogo. Agora você tem um novo conjunto de interações ou objetivos que você pode explorar. Isso adiciona uma camada de flexibilidade aos caminhos de ramificação nas missões e na história, mas, com isso, lembre-se de planejar bem os caminhos de ramificação do seu enredo, para que você saiba que todos os seus eventos fazem sentido na história.

ChrisC
fonte