Game loop and update
I find that the update mechanism of XNA is not completely right
usually the order in the update makes sense because it's expected to be like this:
- UpdateInput (it can be from gamepad, netowrk ...)
- UpdateAI
- UpdatePhysic (or simulation)
Using the GameServices collection it ca be reached if:
GameServices.GetService<>() return a collection of services of type T and not just only one
in this way you can write something like:
inputservice[] inputs = GameServices.GetServices<inputservice>();
Foreach (inputservice is in inputs) { inputs.Update();}
AiService[] ai = GameServices<AiService>()
foreach( AiService ais in ai) { ais.Update(); }
Otherwise now you can support extremly simple games where you can write everytime ALL THE UPDATE CODE in the update method.
The point still unsolved is what to do if some components updates a position after the simulation pass?

