Which .Net technology is best suitable for which kind of game? What the criteria for choosing between WPF, Silverlight or XNA?
Really, you're comparing apples to end tables to Tupperware...
WPF isn't strictly a game-related technology. Because of how it handles data binding and the separation of the UI layer from the logic layer, it might work well for anything where you're looking for a rich client, but you want to be able to make changes to the presentation easily, perhaps because you want the game to be skinnable. Apart from that, you're not really getting much for gaming out of WPF as a technology. It's kind of the baseline if you're assuming something on the Windows platform.
With Silverlight, you get browser based delivery on multiple platforms. That's the big draw. More power than you normally have in the browser, but certainly not what you have as a regular client-side app. More artistic freedom than you normally have in the browser, but again not as much as you'd have in a client-side app. If you've tried doing web-based games before, this is a big step up. If you're used to desktop-based stuff, accessing multiple clients might interest you, but otherwise it's a big step down in performance and in raw capabilities.
XNA is a game technology. It's not just that you get access to the Xbox (and Zune!) as a platform; it's that the entire infrastructure is built around making games. It gives you built in support for things like shaders, timers, collision detection, positional audio, and a whole host of stuff that you'd normally have to write yourself, whether your game is 2d or 3d. The base project even creates a basic game loop for you. It's very specific in the platforms that it supports and it supports them for gaming. Really, if building a game is the core of what you want to do and you're still learning the process, it's a great place to start. Assuming you don't need the specific advantages that the other technologies you mentioned have, I would say that XNA is probably your best choice, regardless of what kind of game you are planning on building.
If you need speed, ie first person shooter go for XNA, and if you want to write for XBox as well as windows go for XNA.
If you want to write for web go silverlight.
If you want desktop strategy (chess, cards etc) go WPF.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With