On XNA and Bouncing Sprites
Let me tell you a story about the last thirty days.
There's this kind of job at Microsoft, see: it's a good job, but it's tricky. Take a piece of software - a tough technology, hard to learn - and find a way to explain it to people so that they can learn how to use it.
You know, the usual adult education rap: put a face on it, make it a little softer around the edges, but keep it dry, keep it clean, just enough to get people started without having to hand them a juice box.
Education for working professionals is funny that way. You've got to give people - sometimes people with twenty years or more of experience - a handle on something new, and they're not going to like it. Nobody likes learning. Oh sure, you can like it cerebrally, kind of in the same way I like english classes. But you don't like it - it's disruptive to your pattern, it's difficult and time consuming, and the rewards are often really vaporous to start with.
Just imagine how people who've been exposed to the Fish! philosophy feel when some educator walks into their office one tired Tuesday morning, jai-alais a stuffed fish at them and says "let's learn something new!"
Great. Well, this user educator at Microsoft sure has their job stacked against them, wouldn't you say?
Well, those that like reading ahead have already guessed it - that is my job. I'm a writer, and I write about new software development technology being released by Microsoft. Teaching is my business, teaching by proxy. My documentation is my classroom.
Working The Circuit
If you've been out on the net a bit, you'll know Microsoft has just released a Beta (a pre-release version) of a new product called XNA Game Studio Express.
It's a development framework for hobbyists and students that are interested in learning how to make games for Windows and Xbox 360. That's right - it's a way for you to make games for your PC and for your Xbox 360. Two platforms. Graphics, sound, input, storage, and all the other various stuff that made up a game. Someone had to explain it all.
That someone was me, along with five others.
Let me say this just for a moment - the writing team did incredible work. The documentation for the XNA Framework contains more than 5000 unique topics, over 25 code samples, and over 50 conceptual articles such as overviews, tutorials, and frequently-asked-questions documents. And this is all for a Beta product that hasn't even been officially released yet.
I've been hiding in a hole for the last month getting it ready for the world. In the last week, as we finalized all the pieces, I sat there at my desk knowing full well there was something still left to say about all this...XNA. Sure, I and the rest of the writers had put together lots of articles on tons of topics. We had what we needed for each technology section.
But for I.
Don't Be Ridikalus
I wasn't done. I was stuck in the adult education nightmare with the very last piece - the capstone on the whole thing. How to introduce this giant framework, this...thing that was XNA...without making it sound like an episode of Teletubbies? How? I mean, we're not three-year-olds here, I'm not showing people pictures of dogs and cats and clapping when they click one.
And yet, game development is hard. Very hard. So, in the final week, I wrestled with the last piece of the puzzle. What will your first game with XNA look like?
I sat there with this text on my computer screen, just waiting for my input, cursor blinking:
Your First XNA Game
What did I have? Examples that played sounds. Examples that made the controller vibrate. Examples that showed pictures on the screen. I searched through my code examples, looking for something that looked right. Not too tough, not too easy. I asked myself philosophical questions: what is a good introduction? Is there even such a thing as an introduction? Does writing even exist?
How Zen.
In the end, as the sun began to set on the writing window, I began to form an idea of what I wanted. A picture on the screen - good, it'll be instant gratification to see something on your screen. A picture...that moved! Good, good, I thought, as I cracked another Coke and typed up the article.
Then, the revelation. The picture, called a "sprite", would bounce off the edges of the screen. Maybe simple, but just enough to get things moving in the mind of the reader. From here, they could go anywhere. I typed up the code and instructions quickly, compiling the code and running it with my own picture I had grabbed from the Net. Balki, from Perfect Strangers. His smiling face bounced around on my screen, and I knew I'd hit the topic perfectly. Save, publish, go home. I slept, and dreamt of 80's sitcoms.
The Big Bounce
Little did I expect the coming storm. XNA was the talk of the town. It was the star at the industry trade show Gamefest, and was being announced in every major trade publication, and even consumer-facing articles were getting play. People were paying attention.
What would happen to this little example of mine (minus Balki: copyright issues, you know) when the public got a hold of it ?
The release came. XNA was unleashed on the world. A flurry of forum posts. The Slashdot article. Thousands of downloads.
Thousands of people - all creating Pong on their own computers. We knew it needed to be: it was a natural part of the process.
But where would it start?
It started with my article. And the bouncing sprites. And how.
So far I've managed to use the new system to get a picture of me standing outside the Birmingham Selfridges to bounce around inside a window on screen.
- Bill Thompson, "Let's Play", BBC News
That's a BBC News article about XNA. And my bouncing sprite tutorial. That's not the only one. There are comments inside Shacknews, a translation of the code into Python, multiple bouncy sprites, bouncy growing sprites, and even a tutorial about how to find my tutorial.
It looks like the gamble worked. Sure, there are the occasional negative comments - it's a free society - but by and large, the bouncing sprite is a hit.
And yet, I have my fears. We can't always choose how we're associated - I've lived with the grim reality that people walk up to me and ask me if I know Bill Gates. I now await the day that someone will associate me with this very first tutorial - this introduction that so many have followed.
If only to make that day come quicker and easier, I post the whole confession here. I cop to it. I dunnit. Ladies and gentlemen of this fair community, I admit: I'm the Bouncing Sprite Guy.
Welcome to XNA.
Related Tags: xna, microsoft, game development, bouncing sprite, 2d games, charles cox







