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?