Huge changes on game.js:
- decouple some objects;
- more clear event handling;
- added fog.