Higher Education

Why Accreditation Matters

I originally posted this to #AltDevBlogADay on Saturday February 25, 2012.

Choice is a wonderful thing. Blind choice isn’t and when it comes to degrees listing themselves as a great place to do a ‘Technical Games Degree’ there’s a lot of choice and not a lot of information available to sort the good from the bad.

It’s this abundance of choice and the issues resulting from making the wrong choice that drives my involvement with SkillSet. Good courses need as many opportunities as possible to stand out from the crowd especially when prospective students may have to narrow down the Universities they’ll investigate let alone apply too.

What Is The Accreditation Process?

I’ve been a lead evaluator for the SkillSet accreditation process for quite a few years now. The process (I’ll keep it short) involves an application by the University to SkillSet, a paper based investigation into the University covering the skills taught, the attainment and employability of students (amongst other things) followed by an on-site visit by an evaluation team. This visit involves interviews with staff and students, examination of the work done and the facilities available with a recommendation to accredit based on their findings.

This evaluation team is always made up of active game developers working in the discipline the course focuses on.

Courses have and will continue to be rejected at various stages of the process if they are not up to scratch and the criteria used is often very strict with a high barrier for entry. Courses have to be producing quality graduates with the skills suitable for the industry before they can even start to think about applying for accreditation. Cross skill courses (those teaching programming, art and design in a single degree) have never been accredited and never will.

The process and documentation is publicly available so you can have a more detailed look here.

Student Choice

There are a lot of Universities in the UK and a large number of them provide a some kind of game related technical course. Unfortunately a lot of them don’t provide a high enough level of education to warrant the time and money students spend on them. Accreditation awards allows students to quickly narrow down the kinds of Universities they should be looking at and to spend the time they have investigating the best rather than trying to simply find the ones worthy of their time.

Word of mouth and past experience all goes into this but it still takes time that could be better spent especially when students will be applying to Universities at the same time as working towards their A-Levels, a period of time which may well be the most stressful time they’ve had in their academic career so far.

An accredited University at least gives them the knowledge that they’ll get the right kind of education allowing them to focus on finding one that best suits them rather than anything else.

Industry Involvement

A lot of developers want to get involved with the education of future game makers and University partnerships such as guest lectures and industry panels are one of the best ways to do that. Universities like industry involvement and some developers can end up being overwhelmed with requests especially if they are already working with other courses and word starts to spread. And because a developers time is so valuable, it helps to be able to target the Universities that we know are already providing the kinds of skills students will need in the future.

Building on a quality foundation allows much more scope for growth than having to start from the bottom and working upwards.

But you might think this is a path to ruin. If the industry only helps accredited courses surely none can become accredited because no-ones willing to work with them to get there!

But that’s not the case. Bigger companies such as Sony, MS, Blitz, Codemasters and others work with those up and coming courses, allowing them to get the point where they can apply for or work towards accreditation. Once that happens, it becomes a positive feedback loop, as the course gets better and gets accredited it leads to more industry involvement which leads to a better course…

It’s The Skills Stupid

The argument between game focused and traditional Computer Science courses is always the same and is usually spot on. Take a CS course over a game course because in a few years you may not want to work in the industry and the skills you learn on a CS could will put you in a stronger position should you want to do something else.

Without a doubt this is a good argument to make but one that I hope accreditation can resolve. In every evaluation I’ve taken part in the skills we look for and the modules on display show that the course could quite easily be rebranded as ‘Computer Science with a games slant’ rather than ‘Games Technology with a little bit of Computer Science thrown in’. As a result the skills taught will still put the student in a good position should they decided the industry is not for them and while a ‘Games Technology’ degree won’t look as good as a ‘Computer Science’ degree on a CV, accreditation should allow it to grow in stature depending on which University awarded the degree.

Game Degrees, SkillSet and Accreditation

Everybody who has had even a cursory glance at game degrees, whether they are technical, artistic or design based, knows that they come in for some abuse. You hear what can only be described as horror stories, people who have spent 3 or 4 years of their lives, racked up a large amount of debt, only to come out at the end with a piece of paper that not only doesn’t give them the skills to get into the Games Industry, but doesn’t give them the skills to get into any other kind of industry either.

Fortunately, not all of them are of the same quality, but with the general attitude towards them, its very difficult and daunting to try and find one that is not only worthwhile, but one which will benefit you if you find out the games industry isn’t the right industry for you.

SkillSet (or the ‘Sector Skills Council for Creative Media’) is a body that (amongst other things) works with Universities to monitor, recommend and guide course content, pushing it in a direction (if it isn’t there already!) that will provide students with the right skills, and experience, to enter the games industry and provide them with the talents to move into other industries if that’s where life takes them.

And it doesn’t work alone.  Working with companies and individuals from the games industry and Universities it can constantly check and discuss what is being suggested, what is needed and how best to get the required skills to those that want them.

Accreditation is one of the main ways in which SkillSet is able to easily and clearly indicate that a University course is, for want of a better phrase, ‘fit for purpose’ and while it can be a hard process to get through it is something that really benefits the Universities in the short and long term.

Accreditation is a process in which Universities apply to SkillSet with a set of documentation that covers, amongst other things, the following.

  • Course Content – Are they teaching what the industry wants.  Advanced C++ and math, team work and development (source control tools, cross discipline development, leadership and teamwork skills) and console development spring to mind
  • Equipment – When joining an industry that uses technology not available in any other industry, it helps if you have already experienced what it’s like developing for them.  Platform holders are happy to work with Universities to provide equipment for their students to use, and they should have good exposure to it.
  • Industry Involvement – Do they have guest speakers or work with companies to form their course content?
  • Outcomes – How many of their students get roles in the industry when they graduate and what roles are they filling?  Are they able to get jobs in other industries if they want to?

The documents that applicants complete are freely available here if you want to have a more detailed look.

Representatives from the Games Industry then take part in the accreditation process, reviewing the application content, and feeding back to SkillSet and the University before, if successful, moving onto a more detailed phase of presentations, visits and interviews.

And it should be stressed that it is these industry representatives, always from a development background, that have the final say.

There are currently courses that are accredited (and I stress courses, as a University who’s Art track is accredited may not have it’s Tech track accredited) and you can easily find out the content of their courses to see why these have been given a big thumbs up from the Industry.  Obviously as the process continues, gets more streamlined and improves, more courses will be added to this list, hopefully sometime this year and on a yearly basis after that…

I was originally going to end this post with a ‘what to look for’ and a ‘what to avoid’ paragraph for future students, but I want this to be about the work that SkillSet is doing, and how their process is not only useful, but is driven by the industry that is being fed into.  There will always be discussions as to how to improve the process and it’s encouraging to see how many companies and individuals take part in these talks (on both the University and Industry side).

So if you are looking at going on a ‘Game Degree’ in the near future, make sure you check out the current list of accredited courses, and if you can’t get to one of those, examine the course content in detail to see how it compares or to see if they are in the process of being accredited.  If you still can’t find the information you need, request more information from the University.  They benefit from you being there to, so it needs to be a two way street before you even think of enrolling.


A Jack Of All Trades…

Following on from my previous post on the state of Education and Game Development (Are Universities Teaching The Wrong Things?), I wanted to look at what I see is the other main problem with most Game Degree courses… That you come out at the end with experience in game programming, design, animation, modelling and probably many others, but still don’t have the skills necessary to do one of them at a professional level.

To start, let’s get a few things straight. As a game programmer, I will not:

  • Write the design document for our next title
  • Create the models that are described in the design document
  • Texture those models, or create the textures for someone else to use
  • Animate the model for the various situations it will find itself in
  • Create the music and sound effects that will populate the world

Take any other profession in the games industry, and the sentiment will be the same.

As a hobbyist, then this list is exactly what you would do, but people do not go to University to study for their hobby, they go to learn the skills necessary to follow the career they are interested in (well, most do anyway!).

So what is the problem with a course that covers all the various roles available to someone when they start out? Isn’t it good to have an appreciation for the roles your fellow team members are carrying out, and what about those who don’t yet know where their strengths lie?

The first point, an appreciation for your fellow workers is a valid point, but as a junior in the games industry, that appreciation will be thought of for you. The tasks you will be given to complete will have been thought out and will have all the facts already mapped out (or at least they should have been!). You will obviously still have a lot of work ahead of you, but you shouldn’t be making decisions that greatly affect other people on the team. As your experience grows and your responsibility increases, your appreciation for the work other people do will grow along side it, meaning you will have that knowledge through experience, not academia, which is worth a lot more.

As for the people who don’t really know where they want to go, then it’s a hard lesson to learn. Most people either lean towards an artistic temperament or in the totally opposite direction. There are those lucky few who have a talent for both, but for most people to excel in one area they have had a tendency for that since childhood. Most of the time it’s a clearer choice than they realise.

But why isn’t it enough to study the different disciplines, and why don’t students come out at the other end with the relevant skills? It’s all down to time spent working with the tools you intend to use when you graduate. Today’s games are deeper and more complex than ever before. They require a quality of in-game assets an order of magnitude larger than any previous generation. Unless a (lot) of time is spent honing those skills, then they simply will not be good enough when compared to another applicant who has, and at the end of the day that is where the competition for junior positions comes from.

Fortunately, there is a trend towards discipline specific degrees being provided, such as Computer Games Programming (BSc) and Computer Games Art (BA), which obviously focus more on the specifics rather than the whole, which is an excellent start. As these start to take on elements of the more traditional courses (Computer Science or Graphic Arts for example) they start to become the courses that will produce graduates that are perfect for the Games Industry and still attractive to the undergraduates looking to participate in them.

C# and XNA – A Few Replies

There was quite an interesting response to my previous post with some very fair and valid points being raised here and in forums across the Internet. Rather than try and respond to them individually (it might take a while!), I though it would be appropriate to list and discuss some of the more common points that were brought up.

Studios Prefer People Who Know How To Make Games
Something that was mentioned in numerous places stated that games studios should prefer graduates who know how to make games (and have tried various techniques that may or may not be used in games), or have a good awareness of the game development process.

Simple answer to that is no, it is not preferable to have a graduate who ‘knows how to makes games’ than someone who knows how to program and program well. If someone is a great engineer, has a excellent understanding of how languages work and how to use the tools available to them, then learning the ‘development’ process of a game is not going to be a massive undertaking. A few days in a functional studio will give them all the ideas they need to build on in that respect.

Besides, there is generally no process to making games. Every studio (sometimes every team) will have their own processes and ideas on what is the best way to develop their titles. What is taught in Universities may not be applicable in the studio you end up in, but you will be using a general set of tools and languages wherever you end up.

*Just a note regarding the last point – I am not at all against team based exercises on Games Courses, in fact I think they can be the most beneficial aspect of them. I just wanted to stress that it is not a replacement to learning the tools of the trade.

Is The Technology To Blame?
No, not at all. The fact is I have a great respect for XNA and C# , have seen some fantastic things come out of them, and use C# personally when developing tools to work alongside out tool chain. I totally agree with the point that was made, in that it is the responsibility of the University to point the students in the right direction, showing them the tools that they need to better understand the environment and technology they want to eventually working with.

The amount of support that is provided by C# and XNA means they are doing exactly what they were designed to do. Just in this case I don’t believe it is in the most appropriate environment for them to be used.

Games Are About Fun, Nothing More Nothing Less
This was also mentioned in a few places, in that game development and making games should be fun and about making them fun, not about boring programming practices.

Games are (or should be at least!) about fun, and developing them should be fun too. A programmer on my team may be a great game designer, and have some fantastic ideas which improve the title drastically. Unfortunately, no matter what area of the game they are working on (effects, character controls, graphics or animation for example) they will need to use the same skill set, just in different ways and with a different amount of practical knowledge. Just because people are working on the ‘fun’ aspect of the game doesn’t mean they don’t have a hard programming job in front of them.

If you will allow me to geek out for a minute…
Game Programming != Game Design

Engineering Principles Don’t Apply To Game Development
This point is worth a whole discussion on its own, and I’ll respect that by not going into to much detail here, but hopefully this should cover the basics.

This was mainly in response to that idea that understanding the basic principles leads you to have a better understanding of and awareness of Software Engineering principles. It’s not always true in the strictest sense, but having that backbone of education allows people to apply the ideas presented to them in an efficient and useful way. There is a reason that development principles have been a mainstay in the world of large scale application development and there is no reason why they don’t apply to game development either.

Hardware can be a nightmare to work with especially when you’re developing across multiple platforms each with their own quirks. Combine that with the sheer scale of game development projects today, and you have a recipe for disaster if you don’t plan for and use ideas that have a solid base and are understood by more people than just yourself. Engineering ideas and practices enable software to be structured and organised in a more efficient manner, allowing them to be better understood and maintained by multiple people, something which is getting more and more important every day. Without the education to back that up, graduates are simply not in a position to work with and develop games in a way they need to be developed.

C# and XNA – Are Universities Teaching The Wrong Things?

XNA Logo

Ever since their inception, there has been a lot of discussion regarding the viability of Game degrees, but instead of looking at them as a whole, I thought it would be interesting to look at various elements of them and discuss their relevance to the games industry and in producing graduates that are progressive and well rounded.

This idea for this thread came about due to the number of game degree and placement students I have had to review over the past few months, plus having been asked to look over a couple of degree course descriptions to feed back my impressions of them (luckily I didn’t have to do this alone!). I was also involved with carrying out practical interviews for a large number of students looking for placement or graduate work at the end of the year, and it was these experiences (plus many little things over the past few years) that made me think this was a necessary discussion.

The main thing that constantly stands out, in both currently taught and prospective modules is the fact that it is generally Java or C# that is taught as the primary language. And with XNA becoming more and more widespread (in both academia and the general indie scene), many courses see C# coupled with XNA as a valid combination for their principle tools. I think the reasons for this are pretty easy to spot, and unfortunately not so easy to change

  • C# (and specifically XNA) allows people to get nice things on screen easily. This might only be a simple spinning teapot, but it’s a lot easier to do that in XNA than DirectX or OpenGL!
  • By making it that much easier, people may see it as more fun, and the more fun they have the more likely they are to join the course and stay on the course
  • More people on the course means the University is getting additional funding for both that course and research linked to the department (as this is one of the fundamental ways Universities are funded, there is nothing wrong with that in the slightest).
  • People teach what they know, and a lot of Lecturers are experienced in Java and feel an affinity with C#. Being experienced in a language makes you a better teacher, so it makes sense to proceed with these languages.

Making these languages the language on which these students base the majority of their learning is, unfortunately, flawed, and that is becoming more and more obvious with every graduate that sends a CV my way (and it’s not always student’s game degrees).

Wherever you go you can always hear the phrase “A good programmer can program in any language” (easily taken from ‘Real programmers can write Fortran in any language’), but that claim is nearly always based on programmers who have been working with (especially compared to today’s tools) languages that are hard to use, hard to understand and most importantly hard to write well. I fully agree, a good programmer can (generally) program in any language, but it’s that disclaimer, a good programmer, which is where these courses fall over.

It all boils down to the sheer amount of support that tools like XNA give developers and how that stops people from learning what is really happening. XNA (and to a lesser extent C#) does a lot of things for you, and it does it under the hood, through calls to a few simple functions (lighting, animation and online spring to mind). A student might be able to knock together a pretty decent piece of work in a couple of weeks, but I would be surprised if the majority of the demo’s weren’t collections of calls to high level library functions, with the student at times fumbling around looking for the right package until they found something that worked. Unless they have thorough groundings in more low level languages (I am mainly talking C/C++ here but other languages are just as good), then they never really understand what is going on in the background, things like garbage collection, pointer arithmetic or true encapsulation and modularisation. They also manage to bypass some of the (possibly less glamorous) elements of game development and as a result struggle with things like basic vector maths, trigonometry and C fundamentals.

Without this basic foundation using languages that force you to do things the hard way, allowing you to make and learn from you mistakes, it is difficult (if not impossible) to take the skills and transfer them into different environment and different situations. This is, to put it simply, a core skill that is needed by every game developer currently in the industry. Unique hardware, new APIs, incomplete or incorrect compilers and multiple development environments are all problems that these skills allow you to navigate around making the developer an attractive proposition to any game company and an asset to any team.

This is a real shame, because due to their experience of using XNA, their demo’s might look pretty good and create an impressive demo reel which gives them (and an interviewer) an over-exaggerated impression of their skills and a real awakening when they find they don’t have the skills to do the job they want to do (the real shame here is that it is simply not their fault). Without a more realistic approach to basic programming skills on these courses, this will continue to be a problem as the distribution of these high level tools gets wider and deeper into academia and the indie scene in general.

So what should these students be using? C/C++? Well yes, that is pretty much an industry standard but concentrating on those would cause exactly the same problems. Try C/C++, try Lua, Prolog, Lisp, SML and a variety of scripting languages. Keep working with C# and XNA, but make sure the syllabus contains a variation on the skills, and then the students, if they really do have a desire to work in the games industry, can concentrate on the things they find interesting and become experts in the languages and areas of their choice as their experience grows, not as their tuition fees are paid.