   MVC pattern in games
  I've been thinking alot about incorporating the MVC (Model-View-Controller) pattern into my games, and i've found it rather difficult.  In theory its perfect -- the abstraction of views and controllers allow for a lot of easy features.  The abstraction of views allow things like an in-game radar being a 'view' of the world, or making a game networked/multiplayer by treating each client like a view/controller combo.  While great in theory, its not easy to work into the traditional game design, as the model part is a complex, rapidly changing system.  Completely abstracting the view from the model is also very difficult for games, as games are usually very graphics/sound intensive.What are your thoughts on it?   
  For abstracting the views from your game logic et al, I'd say have the game logic blob expose an interface to get all the (const) game state data your views will need, and have the game logic process events.So, suppose it's a racing game, your player view would use the game state interface to get the data it needs to render what you see outside your windshield. It would also have a component that translates your keypresses into events (so a spacebar down event or something might translate into an "emergency brake" event that is sent to the... controller? I never liked the terminology).Then, your AI view would use the game state interface to decide what it should be doing, and post some events accordingly.Finally, say you have a status view, which displays a map, with player positions, and who's in first/second/third, it could just use the game state data to determine that stuff, display the map and info on the screen, and never publish any events.   ;  Check out this article on Gamasutra which talks about how the MVC pattern was implemented in the game Shell Shock: Nam '67:Clicky;  Take a look at this link:http://www.mine-control.com/zack/patterns/gamepatterns.htmlHope it helps.