I've been working on a tower defense game in XNA (C#) lately. I like that XNA simplifies a lot of tasks, which means I can write less code than I typically would in a C++ game. For example, I can make a simple spriteBatch draw call to get a texture on the screen without creating my own vertex/index buffers. Or I can create the view and projection transformation matrices with a single utility method. XNA handles window creation and setup with very minimal code and generally makes the process of creating a 2D game a very simple task.
However, creating a 3D game with XNA is a completely different beast. One thing I've beaten my head against is lack of support for animation out-of-the-box. XNA apparently has some classes at a very low level, as described by my buddy Priyank over at eNtropology Games. XNA Animation Component Library looks promising, though I have yet to play with it. And then there is the XNA Creators Club skinning sample that implements runtime animation classes for a skinned model.
But my latest frustration concerns the lack of something much more basic than animation; I can't create a sphere in XNA! Some folks have created their own classes to implement a sphere as a game "component" object, but what I really need right now is a class that can be instantiated dynamically so I can preview my bounding boxes for collision detection. Naturally C++ has simple utility methods for creating the basic meshes: cubes, spheres, cylinders... even doughnuts and teapots! But no such luck with XNA yet, and the most annoying part is that I'm wasting time trying to render a sphere when I should be doing more important tasks, like making sure my models can avoid walking through each other.
It seems XNA is more of a toy than a tool for serious game development, and I think in the future I will be limiting my use of it to more basic projects. But for now I press on, forced to create innovative solutions (translation: hacks) to make it work... grrr....
It's not the end result, but rather the journey that matters most!
Learning the Art of Game Programming
Showing posts with label XNA. Show all posts
Showing posts with label XNA. Show all posts
Tuesday, February 16, 2010
Monday, January 4, 2010
Current Project: Tower Defense Game
I've noticed the guys over at Vortix Games occasionally take a hiatus from posting on their blog when busy with a given project. I think this is certainly understandable when you're part of a small team and would like to point out they have done a terrific job on their blog - definitely one to check out for some game development insights. And so I begin this post by admitting I've been doing the same... but hey, it's not so bad because I'm not the only one, right?!
At any rate, I would like to briefly mention the new game project I've been working on. A couple months ago I had the great pleasure of meeting a couple artists in my area, and we've since been working to design and build a Tower Defense game. For the uninitiated, gameplay consists primarily of setting up a series of defenses such as turrets or guns and then watching a flood of enemies attempt to navigate from their start position to a given destination. This is an entirely new game genre to me, but after having played a few games online (such as Whiteboard Tower Defense) and working on our current prototype, I'm excited to see how it will turn out. One thing is sure: with professional artwork it will definitely look better than my basic Pong clone!
This project has some interesting challenges. For example, it is entirely a 2D game; I've been learning 3D development for so long that it is a welcome switch of gears. It is also being developed for the XBox 360 using XNA Game Studio 3.0, which allows me to put my existing C# skills to use, just in a new way. I use C# every day for web development but this is my first experience with XNA. Even though the target platform is the XBox 360, I plan to make it playable on the PC as well.
I hope to reveal more about the game as our agile design/implementation/testing rounds progress. Keep an eye out for future posts, even if they're not terribly frequent. With any luck, the completed game will appear here for your enjoyment!
At any rate, I would like to briefly mention the new game project I've been working on. A couple months ago I had the great pleasure of meeting a couple artists in my area, and we've since been working to design and build a Tower Defense game. For the uninitiated, gameplay consists primarily of setting up a series of defenses such as turrets or guns and then watching a flood of enemies attempt to navigate from their start position to a given destination. This is an entirely new game genre to me, but after having played a few games online (such as Whiteboard Tower Defense) and working on our current prototype, I'm excited to see how it will turn out. One thing is sure: with professional artwork it will definitely look better than my basic Pong clone!
This project has some interesting challenges. For example, it is entirely a 2D game; I've been learning 3D development for so long that it is a welcome switch of gears. It is also being developed for the XBox 360 using XNA Game Studio 3.0, which allows me to put my existing C# skills to use, just in a new way. I use C# every day for web development but this is my first experience with XNA. Even though the target platform is the XBox 360, I plan to make it playable on the PC as well.
I hope to reveal more about the game as our agile design/implementation/testing rounds progress. Keep an eye out for future posts, even if they're not terribly frequent. With any luck, the completed game will appear here for your enjoyment!
Subscribe to:
Posts (Atom)