Modelling the system
Here's a nice pretty diagram of the various components of modelling a (any) world.
In my case here, the world is a virtual world. You would noticed quickly:
- The strong MVC reference. If you really don't see it, try look at the colours
- World is made of models - which are actually no different from a business application. The same model pretty much applies
- SilverLight 2 Beta 2 has strong work done on the visual manager, which I think is best used to utilize for rendering the world
- In fact, in most games, the graphics component is the main component, in my little model here, it isn't.
- The command logic is largely work from WPF's command syntax - in a business application, this means we can wire up multiple events to the same command (aka, control-C, menu)
- In the context of a game, it means we can offer key-bindings and the user can choose what keys he'd rather use instead of the defaults
- The blue part is the least ironed out section of my little model here - in a pure MVC situation, perhaps the Commands should be responsible for directly making the calls to the server / modifying the game objects.
- Should I wait for server response before making the object move? or should I trust the client and let it start moving, and allow the server to 'validate' the client's behaviour
One final work remains in this modelling exercise:
- Some sort of dependency-injection for making it all work in SilverLight, this way, I can work on each component one at a time and have them plug in/out
- And unit-test separately
- There's some good work in the AssemblyPart class
- Not sure about security implications though