Team Interview - Shawn Hargreaves

Posted in Team Interviews on June 4th, 2008 by nazeeh

After tormenting you with an interview with Shawn’s cat, it’s only fair that we talk to the man himself. Today, we are going to know more about "teh Shawn" as he’s known to us now at the office. Shawn is the man responsible for quite a few of the nifty parts of the XNA Game Studio product in general. Hate it or love, Content pipeline was one of his first contributions, one of many many to come. The man needs little introduction, so … I give you, Shawn Hargreaves!

Who are you and what do you do at XNA GS team?

I’m a programmer on the XNA Framework team. Along with my colleagues Eli, Ito, and a couple of shady characters you haven’t yet got around to interviewing (hi Tom!), we are responsible for implementing the APIs for things like graphics, sound, and input: all the cool stuff you need to make your game.

In my spare time, I write some of the samples for the creators.xna.com site, and spend way too much time answering questions in the forums.

What did you work on before joining XNA GS team?

I worked for an independent developer called Climax in the UK, where I was lead programmer on the MotoGP series of bike racing games. I also worked on engines and tool chains (we wrote an entirely custom modeling package, which the artists used to construct the bike and track models) and did some prototyping for various original game ideas.

Before that I worked on the Extreme G games on the Nintendo 64, and back in college I started the open source Allegro game programming library. That was my first experience of building an API for a whole community of game developers, and I found it so rewarding, that was actually one of the main things that made me want to work on the XNA Framework.

How did you join the XNA GS team? Tell the story!

In between MotoGP and MotoGP 2, Climax made a special MotoGP demo version that shipped alongside the first release of Xbox Live. That was a crazy experience: we had very little time to put it together, and Live was totally new at the time, so we had to figure everything out as we went along. Microsoft gave us loads of help (they needed us to finish on time so they’d have at least one game ready on day one to demo what Live was capable of!) and I got to know some of the Xbox guys pretty well. I thought

they were cool people, and Microsoft seemed like it would be a good place to work.

I later met Chris Satchell (now the head of the whole XNA organization) when he worked for Microsoft Game Studios and we were pitching a game idea to them.

A couple of years later I was looking for a new job, so I got in touch with Chris to ask if there was anything interesting going on in the Xbox group. XNA was only a vague glimmering of an idea back then, but it was interesting enough to get my attention, and has been steadily getting more interesting ever since.

At first our mission was pretty much just “figure out something cool that will help game developers, then go do it”. Things got a bit more solid when we decided this meant managed code on Xbox 360, and even more solid when we decided it meant indie and hobbyist developers, all leading up to the recent arrival of community games on Xbox Live. Exciting times!

What features did you work on for XNA GS 1.0 and 2.0?

For 1.0, I mostly worked with Eli on the Content Pipeline.

For 2.0, I mostly worked on the networking functionality.

I’ve dabbled and fixed bugs in many other areas: graphics, sound, input, security, performance optimizations.

I was thinking the other day that of all the lines of code I’ve written in my lifetime, the default shader used by SpriteBatch has probably been executed the most times. Although the blit() function from Allegro must come in a close second.

What were some of the problems faced when developing your feature?

Figuring out how to let unsigned games access the Live servers was a real challenge. The Live system has some interesting security features aimed at reducing cheating, which mostly center around signing game executables during the certification process, and then preventing anyone from modifying the game code. But if we want indie developers to use the Live service without having to go through certification, how can we make this possible without just bypassing or turning off all the security stuff? (we would never have been allowed to ship this feature if it hadn’t been properly secure). This was a fun, juicy technical problem, especially on Windows.

What’s your favorite part of XNA Game Studio, and why?

I love the C# language. You could argue this is not strictly part of XNA Game Studio, but hey, we are standing on the shoulders of giants, right?

I’ve used a lot of languages over the years, and C# is my favorite so far. It hits exactly the right balance between power and simplicity, elegance and practicality, performance and productivity.

What is your favorite Xbox 360 game?

My dirty little secret is that I’m not actually much of a gamer. I’m passionate about the technology that goes into making games, but for some reason just not that interested in playing the end result (this is one reason why working on framework technology suits me so well).

When I do play games, I usually spend most of my time examining the graphics and trying to figure out what shader techniques they are using!

Every now and then I do get stuck into something, usually because of quirky or unusual gameplay. I’m currently about halfway through Portal. Before that (by which I mean a year before that - I did say I’m not much of a gamer!) I really enjoyed Shuggy, and before that Elasto Mania.

And of course the original Monkey Island remains by far the greatest game ever created.

Share some tips and tricks for using XNA GS

Start simple. Write a game. Finish it. Give it to your friends. Rinse, lather, repeat.

This is the only way I know to become a great game programmer.

If you get bored or stuck along the way, check out some of the samples on creators.xna.com, or post on the forums. But don’t stop making those games!

Last words?

How’s this for a curious coincidence? I thought I’d look in a dictionary to see what the last word actually was. This turns out to be “zymurgy”, which means the science of fermentation. And as it happens, I have a batch of beer fermenting in my spare room even as we speak. If you haven’t tried making your own beer, you should give that a whirl sometime. It’s great fun: a proper mad scientist combination of cooking and chemistry, with alcohol thrown in for good measure.

Team Interview - Purr?

Posted in Team Interviews on June 2nd, 2008 by nazeeh

So… after a while of inactivity, busy at work, got a new baby girl, I am back with yet another team interview! This one is a bit different though. You see, this interview is not with an actual team member, but with a legend that lives within our environment. A legend that I’ve come to HATE. Shawn Hargreaves, one of our developers, owns a cat. He loves this cat. So naturally, he puts that DAMN cat in every sample he possibly can. I’ve seen that cat so many times, I can’t stand to see it anymore. That’s when he added her to his Audio3D sample with sound. Today… we talk to that cat.

Shawn sent me this interview that he had with his cat on my behalf… image

Look… this is silly I know, but if I had to live with seeing that cat EVERYDAY at work in some form of a picture or sound, you’re gonna experience some of this with me!

Who are you and what do you do at XNA GS team?

I’m Rhys. I’m a cat. I like to purr.

I don’t actually know what the “XNA GS team” is. I did hear Shawn talking about XNA once, and I thought he said it was for hobbits, but I later figured out he really said hobbyists.

I like hobbits. They are fat and lazy and they eat a lot. Like me.

What did you work on before joining XNA GS team?

I don’t much like to talk about this, but I used to be homeless. I had a bit of an alcohol problem, so I lost my job, and then they repossessed my house. I’ve been clean and sober for over two years now.

How did you join the XNA GS team? Tell the story!

Oh, that’s a funny story. I was in a pretty bad way, thanks to living on the streets. I had tapeworm, and lungworm, and toxoplasmosis, and also I have FIV, and I had a nasty cold at the time too, and my hair was falling out. I was a poorly kitty, but those MEAN NASTY people at the animal shelter PUT ME IN A CAGE and then they were too cheap to run proper tests on me, so they didn’t even know about all my parasites. When Shawn and Tracy came to visit, I purred and purred until they decided to rescue me. It wasn’t until later when they took me to their vet that they found out how much medicine I needed. SUCKERS! I’m all better now though.

What features did you work on for XNA GS 1.0 and 2.0?

In GS 1.0, I mainly contributed my photo for Shawn to use in the Sprite Effects sample. Since then he put it in lots of other samples, and Eli started using it too, so I’m everywhere now.

For 2.0, I was supposed to provide some sound effects for the Audio 3D sample, but I got stage fright, so my friend Boo (Tracy’s cat) had to step in at the last moment.

What were some of the problems faced when developing your feature?

Some of the samples on the creators.xna.com site do not include my photo. I’m really not happy about that.

What’s your favorite part of XNA Game Studio, and why?

I love the Content Pipeline. It makes it so easy to drop my photo into Visual Studio and have it automatically built into an .xnb file, so you can put me into all kinds of different games and samples!

What is your favorite Xbox 360 game?

What’s an Xbox 360?

My favorite game is fighting with Boo. First I pretend to be gentle and lick his head, but then I bite his neck, and when he swats at me I jump down and look innocent, like nothing happened.

Share some tips and tricks for using XNA GS

I don’t like it when people use XNA GS. They should be petting me instead! Sometimes just meowing is enough to distract them from the computer. Other times I have to stretch up and lean my paws on their leg, or if that doesn’t work, I might jump up into their lap.

Last words?

Purrrr.

Note: This was Shawn’s idea :) Flame him!

The page's WebCounter count says that you are visitor number Visitor Counter by Digits
FireStats icon Powered by FireStats