NESTA, Video Games and Computer Science Education

Debbie Timmins wonders why a graduate would choose the games industry.  I can’t fault her logic.  Sounds like I’m in the wrong job although luckily I work for one of the few companies that tries to keep its hours normal, and give time off in leiu.

http://spong.com/feature/10110315/Opinion-Why-Would-a-Graduate-Choose-the-Games-Industry

This is in response to NESTA’s report on how they want British education to generate more computer science graduates that go into video games and the visual effects industry.  The one comment I keep hearing when I mention this is: “why train more when there are no jobs?”  There is something wrong with this whole picture.  I got into this business because it is a really profitable and exciting industry but somehow the rewards have been lost (I guess to the greedy) and not put back into the system (in wages for the talented and funding for education).

http://www.psfk.com/2011/02/better-video-game-education-needed.html

Today’s gaming news

Well I’ve had a good few links today:

EDUCATION:

Paul Curzon‘s name has come up again as someone that is doing excellent work at teaching computer science to schools.  He runs the computer science for fun website which is an attractive starting point for anyone wanting to learn about computers.  There must be more education for computer science in the UK if we are going to continue with our very profitible games and visual effects industry.

MAKING STUFF:

I read about the HackSpace foundation today. If you need to build something and don’t have the facilities maybe this can help.  I will have to keep an eye on this for my Arduino projects.  Only a few more weeks to the MakerFaire 2011 in Newcastle.

PIRACY:

A warning about making your revenue making games open source.  I suppose, just make sure that you make it ABSOLUTELY CLEAR that open source, doesn’t mean free for anyone to make money off.

 

 

 

 

Tips for Game Prototyping

This is an old one but something I’ve just stumbled upon again. Avoid stupid errors while prototyping a video game idea.

Gamasutra Feature : How to Prototype a Game in Under 7 Days

Computing At School Hub leaders conference

http://casleaders.eventbrite.com/

I attended a TeachMeet tonight as part of the Computing At School workgroup. Simon H telephoned me earlier in the day hoping I’d be able to do a little presentation to the delegates about the industry perspective. I was very busy all day so I managed to put a few thoughts into a coherent set in the car on the way to the Digital Lab at the University of Warwick. I arrived at 7.15pm after leaving work at 6.30pm, getting home, having my tea and then driving to the event. It was a very interesting meeting and I was surprised to see the video conferencing that they had using “FlashMeet”. So what did I talk about and what did I learn?

Well the people were computer science educationalists ranging from KS3 teachers to H.E. Lecturers. Representatives from the BCS (bcs.org.uk) were there along with some from VITAL (vital.ac.uk) I talked briefly about my industry and with an emphasis on how video games are driven by programmers. Although major games involve art, animation, video production,design, script writing, music & sound production, they are all tied together and delivered in this unique form by the work of the programmers. The industry was invented by programmers who initially did everything but now these roles have split into their disciplines. To underline this the video games industry generates more revenue than the film and TV industry put together and is (should be) a very high profile industry for our government.

So why is this very successful industry and in particular, myself, so keen to work with school children? As I’ve said in this blog before, when I interview potential new programmers, I discover that many of them have been taught the wrong stuff. Blitz Games Studios has noticed this trend increasing over many years and has been liaising with Universities to create and improve their courses. For the record, many games development and games technology courses are still not teaching the right stuff. If you want to write computer games software, take a software engineering course that has a high mathematics, AI, operating systems, or computer graphics aspect. These are essential skills, and make sure it teaches C++.

Another worrying aspect of the candidates is that so many of them only had their first experience of computer programming at university. They’d taken the computer science course pretty much blind to the subject. I don’t know what motivates them to make this choice and I’ve even known some who was choosing between psychology or computer science and opted for computers. This seems a wild choice.

I did some research, to see why they were, in my opinion, leaving it so late to experience the joy of computer programming. As part of that research I discovered that the BCS had recorded that there was shocking decline in the number of applicants to computer science courses. However there was an increase in the applicants to softer science subjects (games development studies for instance!) When looking at A-Levels Computing, I discovered that this was a course in decline too. The course itself looks good for bringing a student up to the level I’d expect them to be at for entry into a Computer Science degree. For anyone to take Computer Science without this, they would (or should) find it a big struggle. Either that or their course was not going to be good enough for them to get a job at the end of it.

I also looked at ICT which is the standard computer related course at GCSE and A-Levels. This is not a computer studies replacement as I think most industrialists (and parents) think it is. It is a very valuable course but one which is designed to teach pupils about how computers can be used in all aspects of their life and work. Spreadsheet usage, building presentations, writing documents, sending emails, converting videos, creating a website, and so on. It is not programming!

So where do I go from here? This brings me back to why I was at the Computing At Schools workgroup meeting. I want to put programming back into the school agenda. I’d like to ensure those children are given the opportunity to be inspired and become enthusiastic about writing programs. Whether that be for Robots or Video Games (or anything else; iPhone or Android apps). These skills will improve the workforce in the UK and it is something at which we are a world leader but not for much longer.

And now my attempt at being profound:

I wish I could have stay for more of the weekend and explored Alice, Greenfoot, Scratch and so on. These are great bits of software for inspiring and kick starting learning about programming. However, this is not where it ends. The ability to drag objects into a scene, stick on a few actions and see it do something is programming but it is not software engineering, or Programming with a capital P. I expressed at the meeting that the use of Python, Java, Flash, or whatever is in the beginning, great. However, the software written should be vibrant, different and push the idea that is being demonstrated. I think so much emphasis is on congratulating a student for ‘writing a program’ and this is not enough. It is like the art teacher congratulating a student on ‘using a brush.’ It is the final piece using the media that is going get that artist some recognition. The programming language C++ is the tool of a video games programmer. Scratch and Alice are the tools of a teacher. However, both of these tools can be used to create something great but in both cases it is not going to be easy.

So if you are a teacher reading this, consider how much of you approach to using software and course material in the class is “here is a pen, look, it makes lines on the paper”, and how much of it is “here is a pen, with a lot of HARD work you can learn to write a great novel.”

Engines for Student Game Development

A personal perspective regarding what game engine is best for getting you an interview at a games company.

Generally I don’t mind what engine the students use although something that shows extended development knowledge into the current generation of games consoles is important.  That is, something that is written in C/C++ and requires understanding of C++.

One of the problems I’ve faced is how similar demo’s look when they are sent to us using something like OGRE.  The engine often does a lot of the work so it isn’t that impressive as it used to be to see a 1st or 3rd person shooter or RPG.  Candidates shouldn’t fall into the trap of sending something that was easy to make but “looks” like a lot of work.  This also goes for students that use Unreal (or similar) to show off their game design abilities.  Although this is an great skill, it is not a key element that I’m looking for in programming graduates.

A very good understanding of maths keeps recurring as a theme when I’m interviewing.  So using an engine to show how data can be manipulated in game-centric ways is impressive.  So, for example; flocking algorithms, path-finding, multi-processing, network-play, 3D geometry manipulation (vertex/pixel shaders), vision & audio processing (FFT), animation and AI state machines and so on*.   It is unfortunate that many of the graduates I see don’t appear to have pushed themselves very far beyond simply understanding code syntax and the engine’s library calls.

Interestingly; this just popped into my RSS feed:

http://www.wired.co.uk/wired-magazine/archive/2010/01/features/rebooting-britain-teach-kids-to-see-in-four-dimensions.aspx

Hope this helps.

 

* I think a good list of the game-play techniques that game companies use regularly could be given to the students.  They could then pick one or more that they are motivated by and follow this in more depth.  Don’t simply think of a game idea and try to make it!

No news is … too busy to write anything.

I’ve been busy with buying a car and sorting out a summer holiday to write anything recently but I did manage to find some time to mount my arduino and breadboard onto a piece of perspex last week.  It looks pretty neat and it means that I can wire circuits without everything falling apart.  I plan to stick some wheels and motors (from the printer) on it soon.  I don’t know what kind of battery I’ll need for those motors since they are rated for 18V.  9V (and less) does work but I guess that they’ll drain the batteries pretty quick.

Finding some wheels that will connecting to the motors is going to be fun but I’ll come up with something.

Before then, I’ll use the breadboard and arduino to do some IR tests.  I want to be able to read the codes coming from my iSobot remote control so that I can then use the arduino to program the iSobot more easily.  I know how to do all this, it is just finding the time to do it.

Over the last week, in a bid to get something starting on my tutorials for this blog, I finally settled on a version of GNU/Linux to recommend to new enthusiasts.  I’d recommend, Xubuntu .  I have an old laptop computer (Dell Inspiron 1150) that has 512Mb RAM and 2 Ghz Pentium II.  It is about 5 years old.  I installed a few different distros on it and now it is beginning to creak with the features. Ubuntu has always been easy to install, but it is a ‘friendly’ desktop.  Xubuntu is a very lightweight and fast version of this distro which is why I chose it.

The first additional packages for me to install were b43-fwcutter (because my wireless card doesn’t work otherwise), java runtime (sun-java6-jre) and then installed eric & IDLE (for Python) but maybe Eclipse would be a better alternative.  I ought to grab python-pygame (SDL bindings for Python) also as this is going to be useful for learning to program.  Lastly I grabbed the latest version of Arduino IDE , avr-gcc & avr-libc.

From this I should be able to provide enough information for the Programming of Robots and Video Games.  I said ages ago that I wanted to create my own Distro and this could be the first steps for a Beginner’s Programming Distro.

You’ve probably notice I’ve settled on Python for programming.  This isn’t because it is the best language for programming video games but it is a good interpreted & compiled language which reminds me of my BBC BASIC programming days.  It has idosyncracies that I don’t like but I fancy writing about programming before writing about C++.

Neglecting GameMaker

I’ve been looking for programming systems that should help the budding programmer of Robots and Video Games.  I looked at Scratch and I can see that a wannabe programmer will outgrow this very quickly.  The next step is GameMaker from YoYo games.  I plan to assess this next.

On a side note; I have written the Silver Dollar Game in C++ using Allegro and in Processing.  I tried in Scratch but it was going to be so difficult to bend the game into Scratch that it wasn’t worth it.  (I might have a go another time but if someone else fancies doing it, be my guest and post the results here!)

%d bloggers like this: