Os sistemas de conquista podem ser implementados posteriormente no desenvolvimento?

12

Estou indeciso se quero implementar esse recurso no meu jogo no momento ou não. Não quero que o projeto fique muito fora de controle, por isso estou focando na mecânica principal primeiro.

Esse é um recurso fácil de implementar posteriormente, assumindo que eu conduza tudo e guardo tudo?

Bryan Harrington
fonte
3
Eu portava um certo jogo DOS conhecido para o Windows há alguns anos - uma das coisas que eu adoraria acrescentar, se quiséssemos fazer alguma alteração na jogabilidade - teria sido conquistas. Portanto, se eu pudesse adicionar conquistas a um jogo com mais de 10 anos de idade claramente não projetado para isso, eu diria que eles podem ser adicionados em qualquer lugar. Heck, este site tem realizações ..
Jari Komppa

Respostas:

19

Você está perguntando do ponto de vista técnico da implementação ou das ramificações do design? De qualquer forma, a resposta para sua pergunta é "sim".

Do lado técnico, em geral, você encontra os ganchos no seu código que estão respondendo aos eventos de conquista e coloca o código de rastreamento estatístico lá. Talvez seja necessário adicionar algumas coisas novas se estiver rastreando coisas que não são exatamente eventos discretos que já estão acontecendo no jogo (por exemplo: X quantidade de horas jogadas).

Do lado do design, as conquistas são motivadores extrínsecos e adicioná-los não é muito importante no ciclo principal da jogabilidade, exceto para as pessoas que querem procurá-las. Portanto, eles são bem seguros, independentemente.

Tetrad
fonte
Sim, estou fazendo isso agora. Era bastante fácil conectar shotsFired++-se à parte em que novas balas são instanciadas e shotsHit++na parte em que uma bala afeta outro jogador. Ele ajudou a que eu segui que atirou o marcador (porque eu usar a informação para rastrear quem tem o que matar etc)
bobobobo
5

Desde que seu mecanismo de jogo seja bem projetado e use algum tipo de sistema de eventos observáveis ​​(onde os eventos são gerados e ouvidos pelas partes interessadas), deve ser bastante fácil "conectar" um sistema de conquista posteriormente (adicionando ouvintes apropriados). Esse tipo de design é muito flexível.

Moo-Juice
fonte
2

Como as pessoas já adicionaram boas respostas, deixe-me responder a situações descobertas.

Se você está em uma posição em que concluiu a codificação do seu jogo e agora começa a codificar conquistas e acha muito complexo manter muitas variáveis ​​e contagens e limpá-las em determinados eventos e coisas assim.

Você sempre pode criar uma classe (de preferência singleton) para receber todos os eventos. Agora liste todas as suas realizações. Em seguida, liste todos os eventos do jogo que precisam ser rastreados. Por exemplo, minha lista atual se parece com isso

MATAR INIMIGO - caminhar, balas MORTE DO JOGADOR - queda_off, saúde ENTER_ROOM, EXIT_ROOM etc.

Esses detalhes extras, como caminhar, balas, podem ser parâmetros. Agora, tenha uma função chamada fireEvent nessa classe de acompanhamento de conquistas. Pesquise todos os locais no código em que você precisa disparar eventos e chame essa função. Agora faça o resto do trabalho sujo na classe Conquistas. essa é a maneira mais segura de não perturbar o código e as realizações de código existentes. Funcionou muito rápido para mim.

Rajavanya Subramaniyan
fonte
Essa é uma solução realmente boa para a implementação pós-desenvolvimento. Vou manter isso em mente, porque ainda não tenho certeza se quero implementá-lo. Talvez eu faça isso posteriormente, porque não quero que o escopo do meu projeto fique fora de controle.
Bryan Harrington