
In the aftermath of support, like XNA, so Silverlight on the Windows Phone 7 platform, a common question is - what is the best way to write games? The answer is simple - it all depends on ...

Both technologies have specific advantages and it would be good to eventually combine the graphics capabilities of both technologies in the same application and use the best tool for the job. I have not yet gone deep into the changes in XNA on Windows Phone, so I’ll build conclusions on the basis of XNA game development experience in the past.
In general, writing games will be easier in XNA, since XNA was nurtured like a gaming framework. Many of the decisions that were made when designing XNA also make the platform not the best for developing other types of applications besides games.
')
The main architectural difference is the visual tree, not the drawing of everything in each frame. In Silverlight, to display something, you need to add it as a child. In XNA, everything is drawn in every frame. If you obviously did not draw something, then nothing will seem. Which option is better depends on your game, but if there is a lot of action going on, then the “urgent” XNA rendering option is best suited.
Let's take a look at some of the benefits of each technology (I’m sure there are a lot of them on each side):
Benefits of XNA:
- Excellent 3D support
- Excellent performance when moving many items or adding and removing them
- Built-in game loop.
- User input in XNA is generally better for games than input events in Silverlight.
- Data conveyor in XNA makes it easier to process datasets
- Support for more types of images
- You can develop games for Xbox and Phone
- Combination of graphic models (Silverlight only has alpha overlay)
- Less memory usage for image based games
- More built-in GPU acceleration
- Excellent shader support
- Draw a little easier
Silverlight benefits:
- Vector graphics (XNA support at the level of simple lines)
- Vector text rendering (image based XNA)
- You can create games for the web and phone
- Storyboard Animation
- Visual states and various behaviors
- Navigation Framework
- Controls (button, list, user controls, etc.)
- Expression Design Support
- The event-based model is more familiar to developers.
- Binding to data is sometimes very convenient.
- VisualTreeHelper helps determine which element is touched
So, if you have a game based on vector graphics or it suggests the presence of such things as buttons or other GUI elements, then it is probably better to choose Silverlight for development. If you are doing a 3D game or 2D with a large number of movements, or particle effects, then choose XNA. If you have something between these two technologies, then choose the one with which you are more familiar, as well as looking where you want to distribute the application to the web or Xbox.
After all, it is great that both options are available to us and you can choose which one to use.