Saturday, April 11, 2009

XNA, tools for basement game makers

I've come to tell you about Microsoft's own integrated development environment called XNA (which stands for XNA's Not Acronymed if you cared). A few years ago, Microsoft decided to create an application toolset for writing 3D games which extends Visual Studio, Microsoft's main developer suite. The great thing about XNA is you can focus on writing code or creating content for your game and let the framework work out most of the hard details.

For example, if you want to create a 3d game from scratch, you'll need to find a 3d library like OpenGL then write a dozen data structures to manage 3d geometric objects, camera position, camera movement, render order, updates to objects, and so on from scratch. With XNA, all you have to do is write your high-level game logic and import your game's content - images, sounds, and levels - into an XNA project. You can write one version of your game, then you let the XNA framework do 95% of the work porting it to Xbox or PC (you'll still need to hard code the controller or keyboard buttons. They can't let you be too lazy!). You can also use Visual Studio Express to write tools for making games, such as level editors.

XNA is a nice compromise between completely open source toolkits like OpenGL, with learning curves our like sheer granite walls, and content creation programs like FPS creator, which only let you customize within the context of the editor. There are a couple downsides. First, XNA is free for you to download and use, but publishing your game requires you to join the XNA creators club, which costs $99 a year. If you think that's pricey, keep in mind that an Unreal 3 license costs $350,000.

With all that said, XNA is still a good resource for potential developers to practice with. Getting into the industry requires knowing the tools your dream company uses, but any development experience still counts. Bedroom programmers, this will get you started on making your dream games one step closer to reality.

No comments:

Post a Comment