Reduce the dependency of other modules and classes upon the game module/class.
By reducing the amount of dependency, modules will be less tightly coupled, and more easily tested and refactored.
One method of approaching this is by using Dependency Injection to provide classes with a 'provider'. For example, the entity classes can use a 'time provider' to get the current time, rather than directly referencing the game module.
Reduce the dependency of other modules and classes upon the game module/class.
By reducing the amount of dependency, modules will be less tightly coupled, and more easily tested and refactored.
One method of approaching this is by using Dependency Injection to provide classes with a 'provider'. For example, the entity classes can use a 'time provider' to get the current time, rather than directly referencing the game module.