XNA: Makes Games Programming Easier, Not Easy.

This is in response to the article over at TechRadar.com entitled “How to code games for the PC and Xbox 360” by Paul Hudson (published in PC Format magazine). I’m all for the promotion of the XNA framework but TechRadar’s take on this is completely out of touch with reality. I’m still not convinced it’s not being intentionally sensational (the sub-heading does make a claim of “unlimited riches”) but since the article does seem to go into genuine detail, I’m going to give a genuine response.

To sum it up, the article claims that games programming is suddenly easy thanks to XNA and anybody who tells you otherwise, including those in industry, is a lying idiot. Now maybe you think I’m being sensational here, but in TechRadar’s own words:

We get asked this question a lot: “What’s the best way to start programming?” Some people like to buy books. Some people like to get a computer games programming degree. But they are – and we don’t want to put too fine a point on this – stupid.

The article goes on to say how you can make anything in XNA, mentioning Halo 3 as an example, and have it work on the 360 to boot.

What gets me is the author clearly has done a least a little cursory research in preparing this. He mentions the Xbox 360 having a “curious superset of shader model 3.0”. They don’t print that on the front page of creators.xna.com, so either the author actually does have some experience developing with XNA or else they’ve picked out some choice phrases from someone else who has the experience and is no doubt weeping softly in a corner after reading the resulting article.

Other infuriating excerpts:

[…] we’re not going to explain to you what every line of code does, because, quite frankly, it’s irrelevant.

Don’t worry about debugging for now – a wise man once said that debugging is harder than coding, so if you write your code as cleverly as you possibly can, then you are – by definition – not smart enough to debug it.

The rest of the article goes on to explain how the sample “tutorial” project works, though it’s glossed over to the point where it’s not worth reading. There are so many other better resources out there for learning the basics of XNA, including ziggyware.com and the creators.xna.com website itself (and its forums).

So the article isn’t very helpful; what’s the big deal? There are three main problems:

1. It misrepresents games programming

Contrary to the article, games programming isn’t about stealing code from others, ignoring the debugger, and making the next Halo. It really is as hard as people say to make a AAA game, even with massive budgets and large teams. Comparing the ease of drawing a few sprites on screen with developing a modern real-time engine is a disservice to the industry.

2. It fails to promote XNA properly

How you can have an article devoted to XNA development and completely fail to mention the XNA community at creators.xna.com is baffling. I’ve mentioned it three times already. The article doesn’t even provide any sources of follow-up information for budding developers. The days of developing in a vacuum are long gone. If the intention is to “sell” XNA to readers, why not show them where to get more tutorials, projects, documentation, and community help?

3. It misrepresents XNA

XNA’s great. I love it. But it won’t make a game for you, nor should it. You can’t make a decent game without understanding how to code, nor would you be able to get it onto the Marketplace thanks to peer review. XNA is only a framework and as such, it can’t possibly have everything a budding game designer might want. Texture loading? Sure. Skeletal animation? Not so much.

I can look past the half-hearted jabs at the games industry, forgive the useless tutorial and the lack of any pointers to helpful resources. But I can’t look past encouraging enthusiastic newcomers to ignore learning how to code and making wild claims about the capabilities and ease of the XNA framework. That sort of advice is what sends kids (and adults) off to try it out only to get frustrated and give up once they hit their first roadblock. It can turn them off programming, much less game development, for years, if not forever. Teach them how to do things properly and give them access to they help they need (and they will need it).

Sorry lads. Games programming has gotten easier, but it ain’t easy.

Advertisements

Premium Membership obtained: First impressions

It’s done! I went and invested in a premium creator’s club membership which means my game will officially be a waste of time and money if I don’t bother to finished it (how’s that for motivation?). Well it wouldn’t be a complete waste, because I’ve learned a lot already, but there’s still much to learn! I’ve been working on it, largely adding to the usability of the menus today, but that’s not what this post is about.

Premium membership entitles you to:

  • Deploy games to your 360*
  • Download premium content
  • Playtest games
  • Review games
  • Submit games

I’d completely forgotten about the premium content bit (now I can look into those premium samples). Okay there are only two, that’s less exciting and a bit disappointing. Maybe I’ll glance into the Robot Game though. The deploying-to-360 functionality was something I already had from my trial membership through Dreamspark.

So, submitting a game is obviously key, but I’m not there yet. That leaves playtesting and reviewing. I took a look at the games in the review queue, only to be a bit disappointed that many of them are just re-submissions of existing games. Regardless, I don’t feel I have a good enough grasp of edge cases to catch the important crashes (storage devices, purchases, extra controllers, etc) and thus I’m going to avoid peer review for the time being.

Playtesting is the real reason why I caved and bought a subscription early. Yes, that’s another thing. There’s very little incentive to buy a subscription before you intend to submit a game. The premium samples are probably the only reason, short of wanting to help the community. In my case, I actually want to do just that, but I wonder how many people are putting off the purchase, and thus their contributions to playtesting/reviewing, for a pretty straightforward financial reason.

Some people are thankfully using playtesting for what I hoped it to be: a place to get feedback on your game, from alpha through to almost release-worthy. I think it’s great to just grab a few games, take note of what the developer is interested in hearing about and then sitting down with the games and a clipboard. I looked over three games tonight,left a bunch of feedback for two of them and look forward to doing it again.

If only there were more games in the playtesting queue…