Best Programming Language?

IMG_7331-Edit.jpg

There’s a program in the App Store called “Best Camera”. It takes as its starting point the idea that “The Best Camera you’ve got is the one that you have with you at the time”. The application then goes on to provide all kinds of useful tools that make the iPhone camera as good as possible.

I was reminded of this when there was a tiny bit of debate on my post about the CodeAcademy site, which teaches JavaScript. Now, JavaScript is not a great language, but it works and can be used to create useful stuff. So it is automatically a candidate for “Best Language”. In my opinion, the Best Language is the one that you are using at the moment. I base this on “Robs Rules for Programming Languages”:

  1. You can write great code in any language.
  2. You can write horrible code in any language.
  3. The user does not care what language you used to write the program they are using. The user only cares that it works and does what they want. And that they can afford it.

I’ve written programs in loads of languages. At the moment my personal favourite language is C#, but I have really fond memories of writing embedded C, since in that I could do anything I wanted and I could build all the underlying bits myself from scratch.

This is usually the point that people say things like “But blah doesn’t have blah.” or “Blah programs are really hard to use because the debugging support sucks.” So what. This brings me to the Rob’s Other Rule

  1. Having a nice place to work is much more important than the programming language you are using.

If the language you are using doesn’t have a feature that you need, find a way of programming around it. I’ve written lots of object oriented software in C. C doesn’t support objects, but I arranged the code so that it looked like it did and then programmed by “object rules”.

If the development/debugging support is horrible, wrap something around your program to make it easy to work with. I’ve built emulations of LCD panels and even lasers to avoid having to debug my programs on the real hardware. I’ve written code to make ten thousand customers from nothing, to save me having to type things in by hand. And I’ve added cheat buttons to games so that I can skip levels and inflate my scores and avoid having to play the game all the way through so that I can debug the last bits. 

Remember, when you are writing a program you don’t just control what the code does, you also control the environment the code sits in. Bending this to make things easier is something that will pay off tenfold. Can’t debug your program without a network connection? So what. Fake the web request responses so that you can feed the answers back yourself. This also makes test driven development much easier.

Of course, given the choice, you should pick the most appropriate language for the task. Give me an AI problem and I’ll be looking hard at what Prolog (or perhaps F#) can do for me. But for me programming is not about the language, it is about the problem solving, and that means a programmer should be able to turn their hand to whatever the occasion demands. Even if it is JavaScript.

Imaginationgamers

image

I love it when people do stuff. Anthony, a student at Hull, is doing stuff. He has started up a web site for gamers who want to talk about, play and even build games. The whole thing is very slick and there are lots of forums and places where folks can pitch ideas and find like minded souls to go on and build something. I wish him the best of luck. If you want to take part then you can find the whole thing at http://www.imaginationgamers.com/gb/

Codeacademy for learning JavaScript

DSCF6379.jpg

During a First Year lecture this week I said that the students should spend some time this Easter learning JavaScript. Everyone should know a bit of JavaScript, it is what makes web sites work, and with the coming of HTML 5 it will be even more important. I’ve just found a really good way to learn it too. (this also works for anyone who fancies doing a bit of programming). Take a look at Codeacademy.

http://www.codecademy.com

Looks like great fun.

Tony Hawk: Shredded

image

One of the reasons why some videogame companies are in trouble at the moment is their love of gadgets. Since the original Guitar Hero made a fortune by throwing in a plastic guitar there have been a whole bunch of exotic peripherals thrown at gamers. I reckon they peaked with the Rock Band drum kit, and it has been downhill all the way since. Tony Hawk Shred is perhaps the last big piece of plastic that you will get with a game for a while. It was originally priced at more than 80 pounds, but you can now pick it up, post free, on eBay for around fifteen quid, at which point it starts to look good value. That’s how I ended up with a copy.

The board itself is really sturdy and bristles with sensors that make it able to detect ollies and the like, as well as when you grab the board during a stunt. It even comes with Velcro strips you can use to stop it wearing a hole in your designer wood floor. If you get the Xbox version you should be able to use the sensor signals in your XNA programs, although I suspect the market for skateboard compatible games is probably a bit limited.

The game itself is nothing more than OK though. Rather than give you an environment to explore as you like, instead you are run through some sequences on rails and have to perform tricks and stunts at pre-defined points. This makes the game very restrictive, although the sequences are nice enough to look at. Tony Hawk himself pops up to make comments on your efforts, although they should have added a mini-game where you could work him over with the board after he has said the same inane thing for around the tenth time.

However, if you fancy a night in with some friends doing something stupid (and ideally you live at ground level and have a concrete floor) for fifteen quid you could do a lot worse.

Joe’s team wins TTG Prize

P1030526

Getting it going on

For this competition we introduced a new feature, the Three Thing Game “competitor’s prize”. This was voted for by teams who went round the entrants and checked out each other’s work. After going through the marksheets and totalling up the numbers I found that “The Infamous Two Sirs” had got the most points. However, they were happy that as winners of the main competition it was OK to let the second placed team, “Joe you’ve got it going on” have the prize. Thanks for that guys.

“Joe’s team” made good use of the Kinect sensor to produce a very interactive tower defence take on the words Fruitcake, Tower (I think – they got a wildcard) and Word processor. Well done guys, your signed Wipeout artwork awaits.

Nerf Firepower

image

One of my ambitions is never to hold or fire a real gun. But that doesn’t stop me from playing with toy ones every now and then. At Three Thing Game we had a kind of mini arms-race when Christophe turned up with his little Nerf gun and James went home and came back with one of the above. Which is astonishing. It is two guns that make into one big one. It has a sight and everything. And of course I had to have one.

Turns out that ToysRus have them on offer. And if you reserve on-line you get a five pound voucher that you can spend at the store next month. I’m going to use mine to buy some more darts…..

Three Thing Game Rocked

Survivors.jpg

These are all the survivors, given the HDR treatment. There’s a clean version on Flickr too, along with around 100 pictures taken during the event.

Yesterday was a great day. Everything was wonderful apart from the bit where I found nothing in my camera where a battery should be. However, thanks to a Sony Bloggie that I happened to have with me just in case of such stupidity, we managed to get videos of all the teams and their games. At the moment I’m transcoding them as fast as I can and putting them on YouTube. Search for the tag threethinggamemarch2012 if you want to see them. The rest of the videos will be up tomorrow.

A huge vote of thanks to Dave G, for making the lab available and being there to make it work, Adam for tech support, Martin for night watchman duty, Warren, Derek, Kevin, David M, Simon and Stuart for judging support, Jackie for sorting out the Sony connection, Mark for sorting the food and David P for turning up to provide support.

And kudos to the students for making the best games we’ve ever seen at Three Thing Game. We had some great stuff shown off this time.  And here is the winners roll.

DSCF6577.jpg

Winners: “The Infamous Two Sirs” Christophe and Rob with “Pocket Starlight” which took “Boy, Contraption and High-Jump” to altogether another level.

DSCF6572.jpg

Second place: “Run Dead Studios” Russell, Alex and Jon took “Sheep, Fireworks and High dive” and made “Shear Carnage” for Windows Phone. That really should be in the Marketplace by, say, last week.

DSCF6569.jpg

Third Place: “BRB”, Alexsejs,     Arturs,   Nataloya, and Paul managed to work the Olympics into a snazzy spaceship shooter from the words “Alien, Spaceship and ‘at night’”. Again, that should be on your Windows Phone real soon.

One more prize to go, the “People’s Choice” award that was judged by the teams themselves. I’ll have the results of this tomorrow, when I’ve finished crunching the numbers.

Some tips for next time:

Just about everybody grasped the “simple is good” principle. Lots of teams got something working and then added to it. Others weren’t afraid to drop complication to get things going. After all, if the player doesn’t know that the original gameplay design included rabbits with laser eyes they are not going to miss them if they get dropped. This is the single most important factor in success. Having lots of ideas is great. Feeling you have to make them all work and put them in version 1 is not. Keep a “book of features” and write them all down. Then put them in order of implementation and work your way through.

The next most important thing is to make a proper game. What you make should be like a story. It should have have a beginning, a middle and an end. Don’t just make the middle bit, that’s a tech demo. Figure out how you sent the scene, what the player does in gameplay and how they fail/succeed. And put all this in. It is better to have a game that goes all the way to “Game Over” than adding extra features to the middle bit but never let it end.

Make it social. Some games let the players put their scores on Facebook. Bragging rights are big. And sometimes much easier to add than you might think (step forwards Windows Phone).

When you come to present your results don’t spread the blame. Don’t blame Fred for baling and leaving you with no graphics. The judges don’t want to hear your problems. Never say you ran out of time. It just makes you sound like a bad planner and the judges know that you had just as much time as everyone else.  If you must mention something that isn’t how you wanted it to be, talk about future plans and developments in a positive light.

Whatever you did, get something out there. Blog screenshots, put games in Windows Phone Marketplace or wherever you can. Just about everything I saw over the weekend had potential. Make sure you show your stuff off. It can only do you favours.

And, and this is the most important bit, Have Fun. Lots of people did, and that’s why they’ll be back next time. And do even better.

Dragon for a day

image

- what would you do with this?

I got to be a dragon today. For a little while. Elliot, one of our final year students, is doing one a module which is all about teaching computing in schools. He had the neat idea of asking Emma to show our HIVE Immersive Visualisation Suite to his group and then getting them to pitch business plans based on the technology they’d seen.

And he needed some dragons for the pupils to pitch to. Which is where I came in. So today we got to see the presentations.

Most impressive. Virtual golf on a cruise ship, using motion capture to sell fashion, 3D mapping for fire safety and the winner, an immersive take on driving lessons.

All presented with enthusiasm and not a little business acumen. To say that this was probably the first time these folks had presented to an audience in this way they did a very impressive job. As I said at the time, make sure that when you are telling people the things that you have done you mention you’ve done stuff like this. Great stuff.

Hull Computer Science Blogs

image

I tell all my students to start a blog. Not because they’ll instantly get loads of readers, or because the world necessarily cares much what they think right now (sad but true) but because it is good practice for writing.

Writing is important. It is how we tell people stuff. Being good at writing is a really useful skill to have. And like any skill it gets better if you practice. I’ve been blogging for the thick end of 10 years or so (and I do mean the thick end). I’ve set myself the goal of writing something different every day and I’ve mostly kept at it. It has made me much better at writing. I can turn out a few hundred words really quickly now if I need to. And the words make a lot more sense than when I started. Or as I used to say “Sense words make much more now. Want cookie.”

The lovely thing is that quite a few Hull students have taken my advice to heart and even got together to bring you all their stories in one big chunk of blogging goodness. If you head over to http://hullcompsciblogs.com/ then you can see what they are up to.

I hope they all keep at it. Starting a blog is easy. Keeping it going is the hard part. You don’t need to write every day, but you do need to have writing as part of your routine. And when you do something, even if it is just go see a movie, try to put down a piece that sets out what you thought about it. And keep an eye out for things to write about. As I always say:

“What doesn’t kill you makes a darned good blog post.”

Sorry about this

Keep Clam and Carry On copy

Media Magnet

DSCF6366.jpg

Jake Zukerman of BBC Look North sets up Lindsay for another take….

In between all the lectures and labs and other stuff for today we had BBC Radio Humberside drop by for a chat with some of our students and then BBC Look North came by to find out more about Three Thing Game and Platform Expo. The radio session was a hoot. Steve Redgrave (someone I’ve known since before he was famous) came along and did a storming interview with a bunch of our First Year students who told him all about the joys of studying Computer Science at Hull.

The filming was fun too, although I never know where to put my eyes when someone is taking video of me. If I look at the camera I worry about seeming too intense, and if I look around I worry about seeming too shifty. And then there is the vexed question of which is my best side….

Anyhoo, it all passed off well enough. Yesterday we had a reporter and a photographer from the Hull Daily Mail come to see us and today I was delighted to find that the article had made it to print, with a great picture of some of our students and some quotes from a bloke referred to as “Rob Mile”. I’ll take that as close enough..

Later on Darren did a very good session about PS Suite, which is the new Sony game development they will be releasing later this year. We’ve got special permission for our students to use it in the Three Thing Game competition, and Stuart Lovegrove of Sony Studios in Liverpool will be taking a look at the things that they have made.

All gripping stuff. And then tonight I’ve managed to build a Gadgeteer device that can talk to my Eggbot. Exciting times.

Platform Expo 2012 Needs You

DSCF6358.jpg

One of these could be yours…

Platform Expo 2012 is picking up speed. It is all happening on the University Campus over the weekend with a whole host of events including our little Three Thing Game programming competition. I heard today that the folks from Raspberry Pi will be making an appearance, along with all kinds of other really interesting folks. You can find the complete program here, an there are special deals for Hull students that want to come along and join in.

Or you could go for free. The organisers are looking for Helpful Souls who will be happy to take lend a hand. In return for spending some time showing people around the campus, helping folks set up and generally being a “Really Useful Engine” you will get free access to the event, a T shirt and a lovely Ubisoft goodie bag. This is the kind of helpfulness that also looks good on your CV.

If you are interested in this opportunity or would like to find out more details, please send an email to Brett Rogers at minigrim@minigrim.karoo.co.uk and specify which day you are interesting in working, either Saturday/Sunday or both.

Imagine Cup Preliminary Summary Due

P1030458-Edit.jpg

Today is the last chance for submitting your Preliminary Summary document for your entries into the Imagine Cup Software Development challenge. You need to send in your document (at least 600 characters – so no Tweets) by the end of today.

Note that this is not something that will contribute to your judged score, it is more of a “sanity check” for the entry. For example if you said something like “We are thinking of creating a social networking site for everyone to use and we are going to call it "’Book of Faces’” then the Imagine Cup team might come back and politely suggest that something similar has been done before and you might like to change your approach slightly.

If you change the basis of your entry, perhaps targeting a different set of users or using a different technology in the light of your experience then this is absolutely fine, but if you completely change direction then you should send an update to the Imagine Cup team to let them know. As I write this (9:00 am GMT) you have around 15 hours to get your submission in. So get too it.

Three Thing Game Auction

Teams and Words

These are the teams with the things that they bought.

Three Thing Game March 2012 is rolling. We have 33 teams (yes, 33!) with a total of 111 students taking part. Today we gave each team their Three Things to work with. Actually we didn’t just give them out. We sold them. Each team had 530 “Bank of Thingland” pounds to bid for things. If a lot came up that they fancied they could make a bid for it. We had to auction 99 things in 50 minutes, and we just about made it. Tremendous fun. The development starts now, with the 24 hour game development running over Saturday night.