I have been interested in working with computers for a very long time. When I was four years old, I remember playing Megaman II on an old Gameboy and thinking to myself, "This is it. This is what I want to do."
I joke around a lot in life. I was an A student in high school, but I was also home schooled, so you can make of that what you will. If I ever see something I'm supposed to learn but I don't care for, I won't do well. However, once I know I want something, you will have to shoot me to stop me. Because I will pursue what I want. Going by my current track record, I will probably get it.
So even at four years old I decided I wanted to work with computers. More than that, I thought it would be a good idea to be a games developer. However, even as a teenager, I wasn't a sucker. I didn't go on any straight games development courses. I went for Computer Science. Because I knew that it would be wiser to keep my options open, because a
Computer Scientist can do anything.
Reality showed me how not only was games development a hard career to move in to, but it was also typically a really shitty job in the first place. I ended up becoming mostly a web developer instead. Here's what I discovered, and why for each case I make against being a games developer, being a web developer is a better job.
The Barrier to Entry is Far Too High
Are you coming out of university with your Computer Science or engineering degree? Would you like to become a games developer? Okay then. Apply for some jobs. Go for it. What do all the job postings say to you?
A good understanding of console programming.— Rockstar Leeds, Game Programmer
At least four years of experience in the games industry.— Supermassive Games Ltd, Game Programmer
2 years minimum Unity experience on commercial projects.— No Yetis Allowed, Game Programmer
At least 4 years of C++ programming experience in the games industry.— FreeStyleGames, WiiU Programmer
Experience shipping at least one game.— Zoe Mode, Programmer
That ought to be enough of that. The above quotes were taken from real job positions I found through Google and LinkedIn. The only cherry picking I did was to select jobs which offer permanent employment within my country. These aren't rare examples. So once again, you imagine you are a student. Fresh out of university. Which one do you apply for again?
Perhaps at this point you might see this as reasonable. After all, if you are hiring someone, they ought to know what they are doing. You don't want an apprentice carpenter to build your house for you. The problem is that these are effectively the only job positions you are going to find. You are expected to have years of experience in an industry where every job in that industry is asking for years of experience. You don't have to be a rocket scientist to see why this is a problem.
Every industry should offer an opportunity for new minds to enter it. Some of the brightest minds in the industry probably haven't been discovered yet. Young and enthusiastic software engineers should be encouraged, their introduction into the games industry should be supported by the industry.
How is Web Development Any Better?
I won't go through my smattering of block quotes again, but look through job listings for web developers. The situation is very different. Speaking from personal experience, I got started in web development through a year of work experience working for a company which paid me a wage that was just large enough for me to support myself living near the job while I worked at it. My employer was welcoming to me. My manager was there to support me and encourage me. My code was reviewed by other developers there. I was given advice by my peers, and I learned a lot from that first job about being a software engineer. (They were also a pack of fine trolls too, that IT team, and they would take the piss out of you at every turn. The loveable assholes.)
There is a path to entry into this type of programming job. There are junior programmer roles out there. Willing to hire fresh young minds, to encourage their growth. Want to get the same for games development? Good luck.
I Am Qualified to Enter, but Who Cares?
I have spent countless hours at university and also in self-study studying computers, and how to write efficient code. Let's break down bullet points of what I have done to expand my knowledge.
- I read several editions of the C and C++ programming books.
- I have read every book Scott Meyers has ever written on C++.
- I have written enough C++ at home to gain a good understanding of the language.
- I have read the vast majority of Herb Sutter's Guru of the Week posts.
- I have watched probably hundreds of hours of lectures on writing efficient code.
- I am familiar with the C++ standard library, recent standards, and their support in compilers across different platforms.
- I have written Objective C in the industry.
- I am familiar with a few C libraries, and I am perfectly comfortable with C.
- I have a workable understanding of problems of aliasing, branch prediction, optimising data layout and size for CPU caches.
- I have a good understanding of template metaprogramming.
- I am a religious member of the D programming language community.
I'm not saying these things to boast about how great I am. I'm explaining that I've got a lot of knowledge that is very useful for working as a Games Developer. I didn't even mention the social or project planning aspects. The parts I'm missing all deal with familiarity with particular APIs, particular platforms, these kinds of things. These are the kinds of things you expect to learn by working through a junior development role. You get started with some decent prerequisites, and you build industry experience from there. However, we have already established there are no junior developor roles out there in the games industry.
My skillset is not valued in this industry. No recruiter or potential employer out there will look at my skillset and see some form of future potential. A chance to bring me into a team and expect me to adjust after a couple of months, which I insist I could do quite capably. The jobs are graded on the number of years you have already been in the industry, and my inuition tells me that four years of experience often just means working one year four times over.
How is Web Development Any Better?
When you are given a technical interview for a web development job, you are asked what you know about web browsers. Maybe which books you have read. Employers will look not just for existing knowledge with the APIs and particular problem they are hiring for. They will look for experience with the area in general which could lead to you, the potential employee, as being an asset to the company. This often comes through a few months of on the job experience, which can often be self taught.
In my current position of employment, I am a Django web developer. Before I began my job, I had never used Django once in my life. I hadn't even read the documentation a single time. I believe my employer hired me because I had been writing Python for five years by that point, even if the majority of that was hobbyist experience. Because I had worked as a web developer previously, even though I was using a completely different language.
It took me perhaps a month or two to grow into having a good knowledge of Django. By this point, I am probably a Django guru from what I have learned. I am the only developer at my company. Everything I learned was self-taught. Because I naturally adjusted to my job through real experience, based on a pre-existing skillset.
I haven't heard of this happening in the games industry. Your sklls aren't really valued, just proven employment, years of experience. While time is a teacher, time isn't evidence of you actually learning anything worthwhile. Just because a programmer doesn't know how to use an API in particular doesn't mean he isn't suitable. You might find he'll adjust very well and end up becoming the most valuable member of your development team.
The Games Industry Is Backwards Anyway
A game industry development job tends to imply a few common factors.
- You will be working on months and years long projects, effectively using the Waterfall model.
- You will be asked to commit to many hours of unpaid overtime.
- You will be fired pretty much on the spot for any number of reasons.
- Your job will probably be the only one of its kind in a 50 mile radius.
Why do you want this job again? Do you want the crazy hours? The poor planning? The lack of respect? Why bother?
Months long projects? Shouldn't we be working as lean startups do? Working in short cycles where your work is validated by customer experience sooner rather than later not only works better for managing risk and reducing waste as a business, it also works better for employees. When you do not have to work a
crunch time because your dumb ass management thought it could predict the state of the world six months ago, you will be happier. Why would you settle for anything less?
Society as a whole is slowly trending towards shorter working hours. This is healthy for the soul and better for the economy. If you spring for a job that wants to work you hard like a slave, you are a sucker. If you read that last sentence and it made you angry, you really are a sucker, wake up and maybe think about looking for a job that doesn't make you work like a horse.
Can't leave your job because there's nothing else available in the area? Why are you in this industry again? Not only do you have to work a dumb way for long hours, but you don't even have decent job security?
Working in the games industry sounds shit to me.
How is Web Development Any Better?
I have saved a decent amount of money, and there are countless web developer jobs out there. Quite a few of them are good jobs. I have something I can fall back on if my job falls apart.
Except I don't really need to worry about that so much, because I have understanding managers who aren't likely to fire me over small mistakes. I actually have a healthy relationship with my current employer. I can reasonably expect to keep my current job, so long as I continue to produce reasonable output.
Why would I leave my job anyway? The hours are forgiving, honestly quite reasonable, and this industry is getting slowly better over time. I have never worked a
crunch time in my life. Even when I was working on an honest-to-God desktop application over a longer period of time in my previous employment. I don't ever plan to work a
My current projects are small in size. Maybe at most a project will last a month. We get to engage with customers very quickly. If an idea fails, we just delete it and try another. We look at conversion rates, adoption rates, primarily through monitoring web traffic and client experience. I hardly have to panic about software development death marches.
Most imporantly, I love my colleagues and I enjoy the time I spend working. Because the pressure is only as high as possibly worrying about whether or not I am capable of doing my job. When you are capable, have acquired a valued skillset, are confident in your ability, and are respected by your employer, why then should you feel stress in your job? So my level of stress is very low, because working as a web developer still fills me with enthusiasm. My optimism does not end. I know of some very important tasks coming that I must complete soon, but I do not worry simply because my job is a sane one.
So I have explained why I switched roles and gave up on the games industry. Bear in mind, this is just my perspective. There may be games developers and studios out there who are quite sensible, and games developers who do love their jobs. I'm just making a pretty broad generalisation about the games industry based on what I have personally experienced. I don't make these claims arbitrarily, however. This is a reality I have learned by trying to break into that industry myself.
I became wiser than to press on trying to enter an industry that I think is best described as
backwards. I found another area I was capable in, which I would actually enjoy, and I went for that instead. My life has been pretty awesome because of that decision.
I'm not a games developer because I don't like to play games, I like to be happy.