Archive for January, 2008

Game Development in C# (XNA Woes)

Monday, January 28th, 2008

I’ve been poking around recently looking into how plausible game development really is in C#.  I’m sure a lot of the old C/++ people will regard this as heresy, but I’ve had my fill of C++.

I spent a few hours a weekend or two ago writing a managed wrapper for Lame (“ain’t an MP3 encoder” lame…) and my first reaction was something like “who wrote this crap”.  A little premature in all honesty, because Lame certainly isn’t badly written but it’s definitely a product of 1990s mathematical programming.  The physical layout left something to be desired and it just reminded me how tiresome old coding conventions were before intellisense let people makeUpVariableNamesTheLengthOfWarAndPeace without having to worry about having to retype that damn string 1322747 times.  I’m sure people would argue that a sensibly placed x, y or z may look nicer than the longVariableNameOfYourChoice, but it’s certainly less descriptive and far more irritating to maintain or port a decade later.  Anyhow, I (obviously) digress, Lame isn’t badly written, just old fashioned.

So C# game development (as I really have no desire to use C++)… leads me to the XNA framework and disappointment number two of the same weekend.

Regardless of the Visual Studio 2008 RTM hitting before the RTW of XNA (TLA heaven!) they apparently have chosen to leave out 2008 support until an incremental upgrade.  Seeing as I’ve just attempted to move everything I work on in my own time into .Net 3.5 and not have to maintain two copies of a binary compatible development environment on my machine, the lack of support for VS2008 is more than a little off putting.  I’ve not actually reinstalled VS2005 to try out XNA yet, so unfortunately my experience with XNA ended there.  I’m sure I’ll get round to it, because I went on regardless and wrote the basis of a game engine for a real time Worms-esq game in C#.

Gives me a little bit of hope, with the Xbox360 and XNA providing what appears to be a unified platform, if Microsoft get their shit together quickly enough they could actually formalise console homebrew in a way that’s genuinely beneficial to them and not just their least favourite users who enjoy Xbox media centre and other “original xbox” gems.

I’ve never done any DirectX programming, so my game engine (which was written largely on a train to and from London) doesn’t have anything that actually resembles a UI at the moment, just a set of classes, interfaces and tests.  Left me feeling like that task is definitely plausible, .Net benchmarks very very well these days (near unnoticeable performance hits over native code), we’re out of the dark ages and if Microsoft manage to wrap the DirectX API into something really nice in XNA, game development might be able to come kicking and screaming out of the dark ages too.

I’m sure that’ll make people developing for Sony and Nintendo’s platform very happy, but I guess the C++ developers still need to get work too in the land of pointer arithmetic and honey… 


Sunday, January 6th, 2008

 Half five in the morning and the insomnia seems to have come back, fresh for a new year I guess.  Alcohol has worn off and my eyes have stopped stinging from just a little too much Call of duty 4 on XBox live.  It’s not really bad at all, I’d say if I take one thing away from 2007 it would be “productivity”.  If I could take two, I’d raise that a “control”.

I spent this afternoon writing the start of what I hope will turn into a natural language email filter, I’m no expert in natural language processing, but I figure I can learn on the way.  In principle it doesn’t seem that difficult.  I want to try integrate it into the anti-spam / email processing engine I’m writing at the moment (which I’m dabbling with the idea of open-sourcing, as everyone would obviously care).  I guess even if nobody notices, I’m trialing it at the moment and it’s pretty decent, at least performing as well as spam assassin (with better actual performance) and native to the .NET platform using a nice plugin system (you choose how your email is received, what you scan it with and the actions that are then performed.  If what you want doesn’t exist, write it!).  This isn’t as much as a tangent as it seems, as this year I largely struggled to remember who I was and who I am, in the middle of a relatively large flurry of productivity.

I guess I also reaffirmed my knowledge that all the places you ever work will roughly be equal, made or broken by the people you immediately surround yourself with.  Because at the end of the day it’s all profit, sometimes it’s ugly profit and sometimes it’s cuddly profit, but it’s almost not worth trying to tell the difference as long as you perform at your maximum capacity, if only to prove that you can.  Saying that, work is good, I feel stimulated by it, and I don’t tire of it.  I still come home and write proof-of-concept code for fun, so I’m almost relieved that work hasn’t destroyed that.

In retrospect, apart from some of the work I’ve done (programming work) I can’t really say I’m proud of anything about 2007.  I think I regressed into isolation slightly then pulled back out of it.  I think I’m proud of some of the Warcraft raids I ran.  I’m not proud that I repeatedly didn’t finish illustrations I started and I’m definitely not proud of the solace I found in relative isolation.  I’m very proud that I finally got a holiday in December however.  I think I’ve let a little too much of me become my job and a little too much of my job become me recently.  It doesn’t help that my job now is what was always my hobby, which whilst obviously a wonderful thing, blurs the line between my private and professional life a little, though on a slightly derived subject, I’m glad I’ve shared less of my life with the many and more of it with the few.

I think I spent 2007 roughly 1/3rd with loved ones, 1/3rd working and 1/3rd playing video games or other peripheral entertainment, and in a sense I guess I’ve found quite a delicate and even balance in my life, so I guess 2007 made me complacent, numb and happy.  I think I want to challenge myself more in 2008, I don’t make resolutions and won’t start now though.  I suspect I probably learnt more off my own back than I ever have this year, so I guess now it’s time to start playing games, loose some of the productively balanced control.  I suspect I’ll be more vocal (I hear the sniggering…) and attend to the things I let slide whilst I took a year to learn.

This isn’t from 2007, but I think I like this photo looks like the way I remember this year…

… and a little something that is very much unfinished …

I’ll get round to that soon.

Mass Effect is very good, as is Mario Galaxy.  Call of Duty 4 online is excellent and I’m running a Magtheridon raid for god knows what reason (the loot is awful!) tomorrow / this evening.  Just so you can be happy in the knowledge that I’m still going to mention my crippling addiction to videogames every time I write something here.