No meu jogo, existem terrenos com edifícios (casas, centros de recursos). Prédios como casas têm inquilinos, quartos, complementos, etc., e há vários valores que precisam ser simulados com base em todas essas variáveis.
Agora, gostaria de usar o AndEngine para o material de front-end e criar outro encadeamento para fazer os cálculos de simulação (talvez também inclua a IA posteriormente nesse encadeamento). Isso é para que um thread inteiro não faça todo o trabalho e cause problemas como bloqueio. Isso introduz o problema de simultaneidade e dependência .
O problema da moeda é o meu thread principal da interface do usuário e o thread de cálculo precisaria acessar todos os objetos de simulação. Portanto, tenho que torná-los seguros para threads, mas não sei como armazenar e estruturar os objetos de simulação para permitir isso.
O problema da dependência é que, para calcular valores, meus cálculos dependem dos valores de outros objetos.
Qual seria a melhor maneira de vincular meu objeto de inquilino no prédio aos meus cálculos? Codifique-o para a classe de inquilino? Qual é uma boa maneira de "armazenar" algoritmos para que eles sejam facilmente ajustados?
Uma maneira simples e preguiçosa seria arrastar tudo para uma classe que contenha todo o objeto, como terrenos (que, por sua vez, mantêm os prédios, etc.). Essa classe também manteria o estado do jogo, como a tecnologia disponível para o usuário, conjuntos de objetos para itens como sprites. Mas essa é uma maneira preguiçosa e perigosa, correto?
Edit: Eu estava olhando para injeção de dependência, mas quão bem isso lida com como uma classe que contém outros objetos? ou seja, meu lote de terreno, com um prédio que possui inquilino e uma série de outros valores. O DI também parece uma dor no bumbum com o AndEngine.