Dans mon jeu, il y a des parcelles de terrain avec des bâtiments (maisons, centres de ressources). Les bâtiments comme les maisons ont des locataires, des chambres, des modules complémentaires, etc., et plusieurs valeurs doivent être simulées en fonction de toutes ces variables.
Maintenant, j'aimerais utiliser AndEngine pour les choses frontales et créer un autre thread pour faire les calculs de simulation (peut-être aussi plus tard inclure l'IA dans ce thread). C'est ainsi qu'un thread entier ne fait pas tout le travail et cause des problèmes tels que le blocage. Cela introduit le problème de la concurrence et de la dépendance .
Le problème de devise est mon thread d'interface utilisateur principal et le thread de calcul devrait tous les deux accéder à tous les objets de simulation. Je dois donc les rendre thread-safe, mais je ne sais pas comment stocker et structurer les objets de simulation pour permettre cela.
Le problème de dépendance est que pour calculer des valeurs, mes calculs dépendent des valeurs d'autres objets.
Quelle serait la meilleure façon de relier mon objet locataire dans le bâtiment à mes calculs? Le coder en dur dans la classe des locataires? Quelle est la bonne façon de faire des algorithmes de "stockage" pour les ajuster facilement?
Une manière paresseuse simple serait de tout regrouper dans une classe qui contient tout l'objet, comme les parcelles de terrain (qui à leur tour détiennent les bâtiments, et cetera). Cette classe contiendrait également l'état du jeu tel que la technologie disponible pour l'utilisateur, les pools d'objets pour des choses telles que les sprites. Mais c'est une façon paresseuse et dangereuse, n'est-ce pas?
Edit: je regardais l'injection de dépendance, mais dans quelle mesure cela fait-il face à une classe qui contient d'autres objets? c'est-à-dire mon terrain, avec un immeuble, qui a un locataire et une foule d'autres valeurs. DI ressemble également à une douleur dans le cul avec AndEngine.