Suponha que eu queira criar um jogo de estratégia com um estado mutável global compartilhado entre todos os jogadores (pense no tabuleiro do jogo). Mas, diferentemente de um jogo de tabuleiro, não quero que seja ação em tempo real e / ou baseada em turnos. Em vez disso, os jogadores devem poder fazer login a qualquer hora do dia e gastar um número fixo de pontos de ação por dia, conforme desejarem. Ao contrário de algumas horas, as sessões de jogo durariam algumas semanas.
Isso visa recompensar uma boa estratégia, em vez do tempo gasto jogando (como alternativa, jogadores hardcore sempre podem jogar vários jogos em paralelo), bem como todos os tipos de problemas relacionados ao jogo ao vivo, como desconexões e sincronização. O jogo deve permanecer viciante e ainda ter uma pegada de investimento de pouco tempo para jogadores casuais.
Até aí tudo bem, mas isso ainda deixa em aberto a questão de quando resolver ações e quando elas devem ser visíveis. Eu quero evitar o "jogo ninja", como fazer todos os seus movimentos apenas alguns minutos antes da redefinição diária do ponto para pegar outros jogadores de surpresa ou pessoas que enviam spam para F5 para colocar uma ação oportuna que derrote todo o ponto de um jogo não real. jogo do tempo.
Pensei em algumas abordagens para isso:
Resolva todos os eventos em um único processo agendado, executando uma vez por dia. Isso basicamente significa uma jogabilidade "cega", na qual os jogadores podem agir, mas não vêem os resultados imediatamente. A questão é que eu joguei um jogo de navegador semelhante há alguns anos atrás e não gostei do fato de você se sentir desconectado e impotente até que haja aquele deus ex machina dizendo o que realmente aconteceu durante todo esse tempo. Você vê o mundo evoluir em grandes incrementos de um dia, o que geralmente não parece que ele evolua.
Para ações que tenham um grande impacto no jogo ou em outros jogadores (ataques, grandes realizações), torne-as visíveis para todos imediatamente, mas adie seu efeito em algo como 24 horas. Jogadores adversários podem ser notificados quando tal evento acontecer, para que possam reagir a ele.
Você tem outras idéias de como eu poderia resolver isso? Existem abordagens conhecidas em jogos semelhantes semelhantes?
fonte
Respostas:
Você pode se inspirar no jogo Neptune's Pride, que parece muito com o que você quer fazer - um jogo de tabuleiro, baseado em navegador, jogado por semanas.
Para resolver sua pergunta:
O NP realmente não atrasa as ações, mas faz com que elas demorem muito tempo. Por exemplo, mover naves espaciais entre planetas leva pelo menos várias horas. Alguns efeitos da ação de movê-los são imediatos: as naves espaciais param de defender o planeta de onde partiram e outros jogadores veem sua jogada no momento em que você joga a ação. Alguns efeitos levam muito tempo: as naves atacam o planeta para o qual se deslocam, apenas horas depois de você executar a ação.
Além disso, os jogadores podem enfileirar ações para suas naves espaciais, para que não precisem fazer login a cada poucas horas para redirecioná-las.
No caso do Orgulho de Netuno, isso não resolve completamente o problema. O login regularmente (a cada poucas horas) terá uma clara vantagem sobre o login uma vez por dia. Isso pode ser parcialmente inevitável, mas tire uma lição do que NP fez de errado a esse respeito: não permita que seus jogadores aumentem a velocidade de seus navios, ou qualquer que seja o equivalente em seu jogo. Permitir que os jogadores contornem o atraso de alguma forma pode muito bem interromper o jogo novamente.
Observe que o NP não possui pontos de ação, mas a ideia é a mesma.
Conclusão : eu aconselho você a não adiar as ações, mas simplesmente fazê-las levar muito tempo (horas, dias, até você), durante o qual outros jogadores podem reagir.
fonte
Em vez de reabastecer completamente todos os pontos de ação dos jogadores em um horário fixo, você pode dar a eles uma pequena quantidade de pontos de ação a cada poucos minutos e permitir que eles protejam pontos de ação com um ou dois dias de pontos.
Um jogador que quer fazer algo grande terá que proteger seus pontos de ação por cerca de um dia. Posteriormente, eles serão incapazes de agir novamente até que seu PA seja recarregado.
O jogo baseado na web Urban Dead , que simula um apocalipse zumbi com jogadores jogando sobreviventes e zumbis, usa um mecânico como este. No entanto, ele perde o objetivo de ser igualmente jogável tanto para jogadores casuais quanto para jogadores avançados, oferecendo certas ações que deixam outros personagens em situações muito vulneráveis que podem ser resolvidas pela vítima com um gasto mínimo de PA. Isso torna útil para os jogadores sobreviventes fazer login a cada poucas horas para verificar se os jogadores zumbis quebraram as barricadas do prédio em que estão (alto investimento em AP para os zumbis) e se mudam para um prédio diferente (baixo investimento em AP para o sobrevivente).
Você pode evitar esse problema no seu jogo fazendo com que os ataques dos jogadores causem danos à vítima, mas não deixe a vítima mais vulnerável às ações de outros jogadores.
fonte
Você pode querer consultar a Diplomacia da Internet, que adota a abordagem de movimentos simultâneos. A diplomacia pressupõe que você discutirá movimentos com outros jogadores, para que você tenha uma idéia do que está acontecendo, mesmo que não consiga ver movimentos reais (e outros jogadores podem estar mentindo para você sobre seus planos).
Não tenho certeza se isso ajuda, mas é pelo menos um exemplo de jogo que parece funcionar em uma situação semelhante.
fonte
Cada turno dura cerca de um dia, a menos que todos os jogadores completem seus turnos. Se todos os jogadores no jogo atual tiverem completado seus turnos, o próximo turno começará (os pools de AP dos jogadores serão recarregados). Isso não apenas garante que todos tenham a mesma chance de gastar seus pontos, como também se ajusta automaticamente ao horário em que os jogadores costumam entrar e permite que jogadores mais hardcore joguem um jogo mais rapidamente se todos estiverem completando seus turnos rapidamente.
fonte
A resposta mais simples:
Atualizar estado do jogo em um horário fixo
Permita que os jogadores façam seus movimentos a qualquer momento entre as atualizações, mas NÃO os mostre até que ocorra a atualização
Algo que você precisa considerar muito fortemente é que qualquer modelo que você escolher deve ser muito simples para os jogadores entenderem. Tudo o que sai do exposto não é. Um conjunto de regras mais complexo para movimentos atrairia concentração para eles às custas de outras partes do jogo - então não faça isso a menos que seja o que você deseja.
fonte