Posts Tagged XNA

GDC is crazy times!

I couldn’t get to the annual Game Developers Conference (GDC) in San Francisco this year, so instead have to read about it.

In the last 24 hours, I’ve seen 3 huge announcements that directly relate to tools, platforms and technology that I use.

First, Unity Technology announced a new version of Unity3D with support for Xbox 360, Playstation 3 and Android coming soon. Next, Microsoft announce XNA 4.0, a significant upgrade to .NET based game framework. Finally, Sony announce that they are releasing PhyrEngine for the PSP!

Why do these announcements matter? Because I do contract work in Unity, original games for the Xbox 360 with XNA, and I’m currently building a technology “platform” to allow my games to run on the PSP/PS3 – so every platform/toolset I use is being upgraded.

So much craziness, I can’t keep up! And that’s just day one of a five day conference!!

, , , , , , ,

No Comments

Shader programming is fun!

I missed shader programming when it was new.  My first foray into 3d graphics was before 3D cards, and by the time the first programmable pipeline graphics cards became available, I was in the corporate software world writing, well, uninteresting non-gaming applications. Recently I’ve been re-writing Operation: Star Hammer to use 3D models, which as presented a lot of opportunities for some eye candy, and an opportunity to get my teeth into shader coding!

Something that 2D can’t do that 3D can is directional lights. I’ve added an effect to the game when the player fires their lasers that lights there ship, like a muzzle flash. Cool. But the shader effect I’m most pleased with to date is the afterburner effect, not necessarily from a visual standpoint, but from the power of using GPUs to do the work.

Players can get a temporary speed boost that uses energy. An afterburner flame is shown at the back of the players ship. To make this effect, I used a gas hotplate as inspiration. I grabbed a photo of my kitchen hotplates in action – domestic appliance and game development DO mix – to serve as a way to pick good colors and shape. The flame is model as a single mesh. The animation is done in the shader.

afterburner

Something I noticed was that the real-world flame is mostly transparent in the centre, and almost opaque around the edges. So, in the pixel shader, I calculate the opacity based on the flame models normals.

flames

Flames also flickers, which means only one thing…vertex animation. The vertex shader deforms the vertices of the model in interesting ways, giving a pretty decent illusion of flicker. Finally, I’m also animating the UV coordinates so that the texture appears to slide along the flame as well.

So, by combining a static model, and a static texture with a shader that does vertex animation, UV animation and some interesting alpha calculations, I’ve got an afterburner flame I’m pretty happy with.

Lessons learned : Use real-life objects to understand how things can/should look, GPU’s are awesomely useful, and it’s really fun to get the GPU to do all of the work.

, , ,

1 Comment

Game development should be fun

Recently, I’ve been spending a lot of time working on a game for Xbox LIVE Community Games, called Operation: Star Hammer. It’s a fairly old-school shump. It has a vague story line held together by the missions that the player has to undertake.

The gameplay is quite straight forward. The player pilots a space fighter and flys from navpoint to navpoint, engaging enemies, escorting friendly ships, collecting things and so on. I’m not going to pretend that this game breaks new ground. However despite that, it’s the most fun I’ve had with a computer for a long time.

There are a few reasons why it’s been such a positive experience so far.

First, I’m using some good and familiar tools. The game is written on top of the XNA framework, which I find to be an excellent API. For a game like Operation: Star Hammer, it’s got everything I need and a lot more.

Second, it’s my first foray into making a console game. Pretty much all of my development career has been writing PC software, with the odd venture into mobile phones and PDAs. Whilst using XNA surely hides a lot of complexity (not to mention that the game itself is not really too demanding on the system resources for a modern video game console), it has been really cool seeing stuff work on a new hardware platform I haven’t worked with before.

There are other reasons, which I’ll probably go into in more detail in future posts.

Which brings me to the title of the post. Game development is a serious business these days. Budgets are often huge, and the pressure on developers to deliver more for less ever increasing. The whole point of a game is to provide entertainment, and I wonder, if the people making the game can’t or don’t enjoy the act of creating it, what are the chances of players enjoying the result? Pretty small I suspect.

Bored or frustrated designers, programmers and artists will produce work that mirrors their state of mind.

So, even if nobody else ever plays Operation: Star Hammer, at least it was fun to make it :)

, , , ,

No Comments