Em particular, estou pensando em C # e XNA, e obviamente no Windows. Digamos que eu tenho o jogo principal, que é um jogo XNA normal, mas em algum momento eu gostaria de mudar momentaneamente para um mini-jogo que também foi implementado no XNA, mas é completamente independente do meu jogo.
Existe alguma maneira de alternar entre os dois jogos e reutilizar o mesmo identificador do Windows? E, de preferência, mantendo o estado antigo na memória, embora eu também pudesse implementar essa persistência gravando em um arquivo.
E, voltando ao jogo inicial, existe alguma maneira de acessar o valor retornado pelo método principal do minijogo? Por exemplo, 1 ou 0, dependendo se o jogador limpou o minijogo ou não.
Andrew Russell escreveu:
Você deve criar seu mini-jogo e seu jogo principal em classes separadas dentro do mesmo programa. Cada uma dessas classes deve ter os métodos Update, Draw, Initialize, etc. Você deve então ter algum tipo de controlador mestre para chamar esses métodos para ter apenas um jogo ativo por vez (isso também pode estar na sua classe principal).
Obrigado pela resposta. Sua sugestão é o que eu faria em uma situação normal de jogo - aquela em que eu criaria todos os mini-jogos e seu conteúdo.
Mas este não é um jogo, mas uma ferramenta de criação de jogos para criar aventuras gráficas, e é o usuário final que pode sentir a necessidade de conectar minijogos externos em resposta a determinados eventos do jogo.
O mecanismo interno mais antigo que estou tentando substituir foi feito no Flash e resolveu esse problema simplesmente carregando um SWF dentro do SWF principal. Funcionou bem na maioria dos casos. Estou tentando fazer algo semelhante, mas com o XNA agora.
Mas, seguindo seu treinamento ou pensamento, talvez eu possa criar um assembly separado contendo uma classe base ou interface comum para todos os minijogos e compilá-lo como uma DLL. Em seguida, o usuário faria referência a essa biblioteca, implementaria a interface e compilaria em sua própria biblioteca, que poderia ser carregada pelo mecanismo em tempo de execução e executada como um estado separado dentro do jogo principal. Estou perdendo algumas implicações ocultas?