The header image for this post was created by Unsplash user Caspar Rubin, the original version is available here
A Quick Note
Before we start, I just wanted to say that this won’t be an “ultimate guide to being a rock star games developer” type of article. There are hundreds of those articles out there.
in fact, [here's a relevant google search](http://bfy.tw/Eggw)
Because of that, I’m just going to go over some of the things you might need to know about, that way you don’t has as many unknown unknowns.
It’s going to be a shallow look at the stuff you’ll need to know, so it won’t go into things like implementations of path finding algorithms or the “best” programming language to use.
the quotation marks are intentional
It’s going to be text heavy and slightly opinionated. Some of the facts might not be 100% correct (especially related to what certain companies expect), but I’ve done some research to validate the information I put across.
This post will be all about the knowledge that you’ll need to work on a team of developers. It’s not about the tools that you can download to make games more rapidly, without much programming knowledge.
Both Squidgey and I will be collaborating on a post about them in the near future.
Anyway, let’s begin.
A Little History
There are a lot more independent games developers and studios these days, more so than the AAA companies.
anyone can be an indie developer
Up until the early 2000s there weren’t as many indie development companies because it was harder to get a game released on most of the major consoles.
Most game releases were overseen by one of the massive game publishers. They who would finagle a deal between one of the big three (Sony, Sega, and Nintendo) to get your game released, and most of the time the big three wouldn’t talk to individual development companies.
This was all down to licensing the game to run on the consoles.
Back in the late 70s and early 80s, anyone could publish a game for the home consoles of the time
assuming that they had the ability to manufacture the cartridges, that is
Because of this, and a number of other factors, this lead to the video games crash of 1983.
As a direct result of the video game crash, Nintendo decided to lock their new console (the NES) down to approved, licensed titles. This mean that a developer had to strike up a deal directly with Nintendo in order to release a game. You would send your code to Nintendo and they would approve or deny it, based on a long list of standards.
which is almost exactly what Apple do with apps on the iOS app store
An game which passed these standards would be given the “Nintendo Seal of Approval” and released to market.
In the early 2000s, this changed. The console manufacturers starting having a bidding war (of sorts) to see how many exclusive independent games they could have on their consoles, and Microsoft created XNA to make this happen.
Nintendo and Sony followed suit by offering their tools and development kits to smaller development houses. Then the boffins created tools which allowed developers to write the code for their game once and have it build for all of the consoles.
Add to that, that anyone can release a game for Windows, Linux and Mac without a publisher being involved
although that's harder to do
So how do you get into this industry?
If anyone would have asked me, when I was kid, what I wanted to be when I was older I’d have said
I want to be a Teenage Mutant Ninja Turtle
By the time I was a pre-teen, I realised that wasn’t possible
no matter how much pizza I ate
and decided that I wanted to learn all about video games development.
A quick caveat here: Games development and games design are two different fields.
Games development is all about writing the code for the game; making the actual software that the player interacts with when playing the game.
Games design is related to the overall design of the game, and how it can be played, and how it fits within the story of the writer(s).
You could also be a designer for a games development company and work on things like the look and feel of the characters, background or concept art.
I’ve intentionally left a lot of detail out of the designer role because, we’ll I don’t know much about design, and the edges of one can blur into the edges of the other.
So off I went to college and university
for non-British readers, college and university are two separate things in the UK
to learn all I could about games development.
Several years of study later, I had a degree in Computer Science with Games Development. But do you need a degree to be a games developer?
Well, Do You Need a Degree?
The short answer is: it depends.
If you want to work as a developer for a big, famous development company like EA, Bethesda or Infinity Ward
big companies like this are often called AAA (or Triple A) development companies
then you’ll, most definitely, need some sort of Computer Science or Physics degree. It might not have to be a specialist one, but you’ll definitely need some kind of CompSci of Physics degree.
Why Those Subjects?
Each company will have different hiring requirements, but most will want one of these subjects because they have the biggest overlap with the kind of work you’ll be doing on a daily basis:
I've pluralised it, deal with it 😛
The code which runs most modern games is all heavily related to Maths and Physics. Can you imagine playing Portal or a WWW 2k18 without a good physics engine? It would be fun for a while, but would quickly get annoying.
there is a whole subreddit devoted to pointing out when physics in games goes wrong
What About The Indies or Smaller Companies?
The indies tend to also want folks with degrees, but they seem to be more willing to take a chance on someone without a traditional Computer Science of Physics background.
again, each company is different
Folks who have developed games in their own time by self educating
reading about how to develop games in their spare time, for instance
tend to do a little better with indies and smaller companies.
That’s not to say that you can’t get a job at a AAA company without a CompSci or Physics background, but it’ll be a little harder and you’ll have to show that you really know your stuff.
what's with the short answers?
An algorithm is a step-by-step list of the actions needed to perform some action. The classical algorithms have been worked on for tens (and in some instances) thousands of years by hundreds (if not thousands) of mathematicians, and are proven ways of doing something in the most optimised way. So it’s worth knowing and handful of them (at the very least), for sure.
You’ll need to learn algorithms to show that you know of the many different ways to solve common programming problems.
Should you use A* or Djikstra to solve this path finding issue?
about why I think this book is so ace, quite recently, and I still stand by what I’ve said about it. It’s a great starting point, but you’ll still need to learn more algorithms for games development. For more algorithms (and more games dev topics), I would take a look at:
The Dev Blogs subreddit is a great place to learn about the business of going from an idea to publicising a finished product; but the quality can be a little hit and miss, and you need to digging through everything which was posted there in order to find something useful.
Gamasutra should be a place that you go to on a regular basis. They have all sorts of articles from developers, designers, artists and producers.
On top of that, take a look at Handmade Hero, which is a YouTube/Twitch project started by Casey Muratori. Casey is writing a cross platform video game, from scratch, in C++. In each video, Casey goes through every single line of code that he’s writing and how it will effect the greater code base. It’s a fascinating thing to watch.
Do you want to be a games developer? Does this article answer some of the questions that you had? Would you like more articles like this?
Are you a games developer? Which resources would you recommend to folks who are looking to enter into the industry?
Leave a comment in the section on this page and let us know what you liked, what you didn’t like and which games you’d like to hear us waffle on about next time.