Last week Microsoft released the first Beta of their XNA Game Studio, XNA Invaders is the result of around 5 hours of me mucking around with the code supplied in the help.
It’s a very basic example of a 2D looking 3D game using only line primitives in XNA, it’s got no sound because you need to down load another 300 odd meg of DirectX SDK to bring a wave file in and I figured not everyone would want to do that.
What do I think of XNA?
- Managed Code is great (apart from it’s lack of globals, for games anyway)
- user input is super simple
- Timing code is all there and works
- The basic project has everything you need layed out well (update and draw functions)
- Shaders only, this is the biggest one do you really expect someone just starting programming to be able to understand how to code a shader? They blow my mind and I’ve been playing with 3D for years, you’ve also instantly restricted your audience to around 20% of PCs, I realise this will change soon enough but this rules out most indie devs who want to sell their games (apart from those XBox 360s out there).
- Have to install c# express even though I have full blown VS 2005 installed, I realise this is beta software but why?
- Toting this as “anyone” can write a game is a bit rich, this is not a game engine! It’s a slightly cleaned up version of managed DirectX, the sample they give you you can’t even play without a joypad.
I’m still interested to see what comes out of all this, hopefully some more interesting games, personally I’m moving to a full blown engine (Torque) so I can actually get something interesting done rather than re-coding the same crap everyone else has done before for you.
Here’s (226KB) the game itself, you’ll need a really recent copy of DirectX and shader support in your graphics card.
Update: Was missing a dll, fixed now, if your still having trouble try this DirectX update (1.65MB)
Here’s (48KB) the solution for anyone who has the XNA beta installed, it should be a good basic XNA game sample for someone interested in doing a 2D/3D game.