Saturday, December 9, 2006

.NET game-related frameworks

Last Thursday I was at the first "Game Developers Evening" at KTH/Stockholm listening to a speech about XNA by Johan Lindfors.

This will be the first of a series of GDE's, hosted by various game development companies during the next year (have not found the schedule).

I will sum up some of the points of the XNA speech below.

One benefit of XNA could be said to be that you can develop games for both the PC (Windows) and the XBOX360. You have to have different projects for the XBOX360 and PC game but they claim that you can reuse 95% of your code.

Another benefit could be that it has a component structure that you can use to share game components, like an in-game browser or a special camera orientation.

As for using XNA to build games for the XBox360 you have to pay a subscription fee of $49 or $99 (4 months or a year I think) to get access to the runtime used. In the first release you would not have any way of distributing your games to others except by source to others that subscribe as developers on Live. Also you can't use networking in your game and subsequently the only option for more than one player is a split screen game.

At this point XNA uses DirectX 9, I'm not shure if this is supposed to change with a later release.

I think I will take this opportunity to mention about other .NET game related frameworks, namely BooGame and Axiom.

BooGame is a 2D-Game framework that is very similar to XNA in how you build the game, in other words, inherit from a base class, let BooGame run the game loop and have events or overrides tell you when to update or draw. The clear benefit of using BooGame is that you get a multi platform application. Also it never hurts to support an open source initiative. It uses OpenGL to render the 2D game which makes it very fast. I have not tried to use it with emulated OpenGL, but I guess that would work too.

I use BooGame for my NetPlanes game.

As for Axiom it's a 3D engine (not a game-engine like BooGame). It's a port of Ogre, a very good C++ 3D engine. There are a couple of wrappers for Ogre to use it with .NET programs. I have not personally decided what the best method is, Axiom isn't as mature as Ogre but the wrappers have some problems too.

My contribution to Axiom thus far is porting the first basic tutorial and writing a base code (inspired by that of Ogre) to use (inherit from) in examples.

No comments: