In this article, I’ll talk about how I became a game engine programmer. I’ve worked at two big Chinese and American companies before getting a job at a Japanese game company. Things i’ve worked on including making graphics programming libraries, game engines, and researching graphics techniques to use in new games. I’ve been building games since I was 11 years old, and i’ve made many games both in my free time and during university. If this article can help or inspire anyone wanting to become a game programmer, even if just a little, then i’d be very happy!
When I Was Small
I loved playing video games since I was 3 years old! Because of my parent’s job, I often moved from country to country. Everything would change quite often, but what stayed the same were the video games I played. Games were like my friend! I really enjoyed action, platformer, and RPGs like Mario, Pokemon, and Zelda. I really enjoyed playing Nintendo games so, even when I was a kid, I wanted to work for Nintendo.
How I Was Introduced to Programming
When I was about 11 years old, I was first introduced to game-making during elementary school in-class. We made a really simple clicker game using GameMaker. While I didn’t use programming directly, I got to learn about logic and the flow of a game. The next time I touched programming was when I was 13 years old. I started learning about Java and building android applications during my own free time. Eventually, I got bored of programming and gave up because I thought it was too difficult for me. After some time, I decided to try again and build games using Unity 3D. This is when I started to improve a lot because I tried to learn many things about game development, and I kept working hard even when it felt difficult to keep trying.
How I Learned Programming By Myself
I mostly learned programming by watching YouTube videos and trying to do different things on my own. For example, I watched some tutorial videos on building simple games, and even if I didn’t understand what they were coding, I would copy what they would do anyways. Once I gained some confidence in programming, I started with building many simple games to practice programming. I showed the games I built to my friends, and It was always fun seeing their reactions, and that kept me motivated.
- CG Cookie
What I Studied at University
I studied computer science, which included topics like programming, math, and game development. I started with learning C, but then quickly moved on to using only C++. Other than C++, I didn’t use any other language at university. In addition, I studied math subjects like linear algebra and calculus. For game development, I learned how to build game engines, do graphics programming, work with other people to build games, and learned the software development life cycle in general.
As a student, I spent most of my time studying or working with other people to build games. Usually I would go to school at 9 or 10 in the morning, and I would come back home around 12 AM.
The games I would work on with my team members in university would also be a part of my portfolio. It’s important to have the things you worked on be visible to people. In my case, I used BitBucket to upload my personal portfolio, and used YouTube to share the games I worked on with other team members.
After two years of university, I ended up leaving to pursue a job offer I had at a big company. The reason I wanted to leave was because the tuition was very expensive and I would rather work on building things in the “real-world” instead of going to class every day. During summer break, I managed to get a job, and I officially left school afterwards.
1. Resume + LinkedIn
The first step I took for job hunting was creating a good looking resume as well as updating my LinkedIn to match my resume. My resume had information like what projects I worked on, what things I was responsible for, what my role was on the projects, what skills I had, my educational background etc. In addition, I updated my LinkedIn to show the same information. It’s best to have many connections on LinkedIn since they can verify you skills as well as connect you with any job openings available. While you shouldn’t lie on LinkedIn, I recommend trying to write about yourself in a way that looks more appealing to others.
2. Interview Preparation
I posted my resume on Dice, and was later contacted by a recruiter to interview for a job. The recruiter initially asked me to travel to take the interview, but I told them I don’t want to travel, and would prefer the interview to be done over phone. After the recruiter talked with the company, my phone interview was scheduled for a few days later. My recruiter gave me a few topics to study about, and I used YouTube, programming blogs, and other education sites to study for the interview.
Because my interview was over phone, I interviewed comfortably in my bedroom. It was about 30 minutes long, and the person who interviewed me was the guy who would be my boss. He asked me questions about:
- Math; dot-products and cross-products
- Graphics programming related concepts
I got a job offer on the same day of the interview, and I was really happy about it. In my case the interview was short and straight-forward, but the process heavily varies from company-to-company.
4. Do you need a degree?
In my case, I didn’t need a degree. My portfolio had some interesting projects that I could talk about, and my boss cared more about my skills and what I could do. Whether or not you’ll need a degree depends on how your interviewer, the company, your experience, and what skills you have. Also, having a strong portfolio will help you stand out amongst other candidates. If you want to work in a foreign degree, it may be necessary to have a degree to get a work visa. In my case, I didn’t need a degree, but it depends on the situation.
To Those Wanting to Become a Programmer
I didn’t understand anything about programming when I first started off. I slowly learned by watching YouTube videos and trying to copy what other people were doing. Eventually I got better at programming, and was able to make many things like games and phone applications.
After more practice, I was able to get jobs in big companies, even without a degree, because I was able to prove my skills to them through my portfolio. There were many skilled programmers around me, and I learned many things from them and was able to improve my skills even further.
If you want to become a programmer, you shouldn’t let yourself feel discouraged if it feels difficult in the beginning. As long as you keep practicing and pushing yourself further, you will improve, and eventually become a skilled programmer. Good luck! 🙂
Thank you for reading this article!