Welcome to my games development blog!
As is this the first entry, I felt it would be appropriate to give some kind of overview of who I am, why you should care, and what I intend this blog to achieve. This way hopefully in later entries I will be able to simply say “go check out the first post, it will explain everything”.
So – who am I? Well, my name is Andy Patrick, and I’m a software engineer with many years experience, in my late twenties. I generally go by the moniker “Bitterman” on web fora, and I’m active on a number of such, the most relevant of which for the purposes of this discussion are the XNA Community Forums and The Chaos Engine. My Xbox Live Gamertag is also Bitterman. I’ve got a Masters degree in Computer Science from Loughborough University, and after I graduated I joined Rare, a games studio owned by Microsoft, where I remained for five years, releasing two games in that time and working on core technology used in a number of others. Eventually I realised the time had come to move on from Rare and left the games industry shortly after.
What does this mean to you? Well, directly, not a lot. However, while I’m no longer in games, I do enjoy making them in my spare time, and I’d like to talk a little bit on this blog about exactly what is involved with that. While the great majority of my time in the industry was spent at Rare, I’ve done an awful lot of (informal) research into how other companies and individuals go about it, and added to that I have a number of ideas of my own. I’d like to use this blog as an opportunity to share those ideas in the spirity of friendly co-operation; as well as discussing the concepts and theory behind it, I will be developing my own code, in my own time, along those good-practice principles, and I aim to make some of it freely available for your pleasure and gratification. Essentially, if making games – as a hobby or a career – is something you’re interested in, I hope you will find something of benefit to you here.
The coding I do in my spare time is written in C# using the XNA game framework as a basis. In case you didn’t know already, you should understand right from the start that this is not how most professional games companies currently operate. C++ has always been, and remains, the language of choice for the overwhelming majority of games studios – if you are considering a career in games programming , you will almost certainly need to know C++. However. This is something that I believe will change – not quickly; there are still very good business reasons to use C++, not the least of which is that existing staff already know it, and there are no C# compilers for Wii or PS3 – and, more to the point, writing games in C++ in your spare time is a royal pain. With over a decade of C++ experience and having delved into the language deeper than most, I consider myself highly competent in writing correct, efficient C++ code. Yet, having been using C# for not much more than six months, I find that I am able to get as much done in an evening’s C#/XNA coding as a week of writing C++. Given that this is my hobby, getting stuff done quickly is vital. I will likely be expanding on the C++ vs. C# vs. etc. question in a later entry.
You’ll noticed I mentioned XNA above. The XNA Game Framework is a freely available Microsoft-provided technology, built on C# and the .NET Framework, that allows developers (including hobbyists) to make games for Windows and Xbox 360. The core of XNA is a set of code libraries that provide a great deal of the functionality found in every game engine in the world – vector manipulation, maths functions, rendering code and shaders, and much more besides. Still, it’s important to understand that XNA is not a game engine; neither is it Games Development for Dummies nor, despite what Microsoft would have you believe, the YouTube of games development. What XNA is, is an amazing set of free tools that let you get on with the fun stuff, instead of reinventing the wheel. I will definitely be discussing XNA at length in later posts, along with language- and platform-agnostic recommendations on how to get the most value out of your game development.
(Incidentally: officially XNA isn’t an acronym, or, XNA’s Not Acronymed. Far be it from me to argue with the XNA team themselves, but when I first heard of it I was told it stood for cross-platform Next-generation Architecture, which to me seems as good a description as any).
And what, you may be wondering, will I actually be making? Well, having had a while now to get to grips with XNA and the possibilities it presents – and after a none-too-brief but inevitably doomed attempt at beginning a project which, I now realise, would have been far too epic in scope for me to ever actually stand a chance of finishing it without hiring a twenty-person dev team – I have begun work on Pandemonium (working title, and hence the title of this blog), a traditional third-person platformer which I intend to release on Windows and Xbox 360. I have tentatively pencilled in late 2008 or early 2009 for the release date, but I will not be drawn into making any promises on that front. You may rest assured that I will be discussing Pandemonium at great length in future posts.
Finally, a quick tip: check out the resources and blogs linked in the right column of this page. I don’t believe in linking for linking’s sake, so each site listed has something valuable to offer. If games development is your thing – and I hope it is, or you won’t get much out of this blog – you really ought to check all those other places out too.
“Any fool can use a computer. Many do.” – Ted Nelson