My PhD research does not essentially involve coding, although it is definitely in computer science. (Just like when you watch TV, you don’t have to know how to put a tv together – but you can do stacks of research into how shows are made, put in order, audience response, etc.) But a man I adore, John Bennett (awesome Director of ATLAS) had an epiphany about all the ATLAS PhD students being able to code. The result was a couple of (very convincing) conversations where he told me I should take his XBox 360 Game Design Class this semester. Two friends were taking it too. And another friend was the TA. And you know, John was teaching it – which is kind of like having a relative teaching you. Sure. Why not?
I was heartened due to my absolutely fantastic experience in the User Interface Design class I had taken last semester. Our project was fantastic, we learned heaps, and I realised I have a real talent for user testing. I also discovered that there is such a thing as a project team that just works. Those guys were amazing. (But it’s rare. It was the first time I’ve ever worked with such an amazing team in a class project.)
The first two weeks of learning to really code were pretty stressful. (This was not helped by the fact that 13-year-old son Harry is completing his advanced video game design after-school class, and when I said I was coding a fleet of spaceships, his response was “can you make them move? Mine move.” Sigh. Talk to the hand.) We had to learn C# basics in two weeks. (Thankfully Jed helped out a LOT by explaining concepts and directing me to an intro CS MIT course online. I kind of got it. I cried a bit. But not lots.)
However, when we moved on to actually doing stuff, writing code, testing it and making it work, I started enjoying the class and really understanding the way code worked. I stopped crying. When I can write the code the way my head works instead of how the author of a book decides it should go (with smarmy wanker comments included as a bonus, making me want to punch the guy – here’s a tip, don’t write a book if you’re a wanker. If I ever met this guy I would tell him exactly how I felt about him and his attitude – and that wouldn’t be pretty), suddenly I felt more in control.
So the latest lab from John asked us to load a supplied bitmap picture of a ball and get it to bounce around the screen.
Then we loaded a second one, and introduced an also supplied audio chord noise every time they bumped into each other. It was a beginning on getting us to make a game of Pong. After three weeks of learning to code I was ready to test my abilities (cause some havoc). No plain old ball and bump noises for me. I didn’t want mine to look like everyone else’s.
I grabbed a digital picture of John (easily found online) and cut off his head, made it the right size with a magenta background so that the sprite would look decent, saved it as a bitmap file and loaded it instead of the ball picture. Then I found a free burp noise online that I used instead of the chord .wav file we were supplied. It was a little gutteral, so I took the pitch up a bit by changing the parameters. Now it’s more delicate.
Thankfully, John is enjoying my adventures in coding too. He is known in our mob for his catchphrase, “How cool is that?!” when it comes to any tech/code he’s excited about. I invited him to say that, and he did it! (Really great sport alert: John Bennett rocks my world.) I recorded it on my iPhone, and will be changing it to a .wav file so it can go into my game. (He also recorded one saying “You’re fired” which I’m sure will find some use somewhere. He totally doesn’t mean it. Really.)
I’m definitely learning more by creating my own graphic and audio files and replacing code, and I’m confidently working towards my actual XBox Game – which might just end up becoming a Windows Phone game that will definitely not look like some vanilla game.
In Boulder, being able to be a rockstar coder is like being an awesome surfer in a beach suburb of Sydney. I can nearly hang with the cool kids – that’s my story and I’m sticking with it. (I’m putting a little video of my results so far below. Watch and giggle.)
Any other classes you want me to take? (You’re welcome, John.)