En mi juego, hay terrenos con edificios (casas, centros de recursos). Los edificios como las casas tienen inquilinos, habitaciones, complementos, etc., y hay varios valores que deben simularse en función de todas estas variables.
Ahora, me gustaría usar AndEngine para las cosas de front-end, y crear otro hilo para hacer los cálculos de simulación (quizás también más tarde incluya AI en este hilo). Esto es para que un hilo completo no haga todo el trabajo y cause problemas como el bloqueo. Esto introduce el problema de concurrencia y dependencia .
El problema de la moneda es mi hilo de interfaz de usuario principal y el hilo de cálculo necesitaría acceder a todos los objetos de simulación. Así que tengo que hacerlos seguros para subprocesos, pero no sé cómo almacenar y estructurar los objetos de simulación para permitir eso.
El problema de dependencia es que para calcular valores, mis cálculos dependen de los valores de otros objetos.
¿Cuál sería la mejor manera de vincular mi objeto de inquilino en el edificio con mis cálculos? ¿Codificarlo en la clase de inquilino? ¿Cuál es una buena manera de hacer algoritmos de "almacenamiento" para que se puedan modificar fácilmente?
Una manera simple y perezosa sería juntar todo en una clase que contenga todo el objeto, como parcelas de tierra (que a su vez sostienen los edificios, etc.). Esta clase también mantendría el estado del juego, como la tecnología disponible para el usuario, grupos de objetos para cosas como sprites. Pero esta es una manera perezosa y peligrosa, ¿correcto?
Editar: Estaba mirando la inyección de dependencia, pero ¿qué tan bien se las arregla como una clase que contiene otros objetos? es decir, mi parcela de tierra, con un edificio, que tiene un inquilino y una gran cantidad de otros valores. DI también parece un dolor en el trasero con AndEngine.