Game from Scratch Challenge
In May 2016 I applied to a full time GameDev position for the first time.
I applied for Junior C++ Progammer. I was not given an offer in the end (I failed the practical test during the live interview) but made significant impression with my commitment and the task which I managed to complete before getting the invite for the live talk. This was a small victory even if the main battle was failed. I managed to learn quite a lot during the process and as the recruiter wrote in the final letter -“You will get there. Sooner or later. Not now but keep learning and we may talk again in 3 or more months”
Some people in my country may see the fact I applied externally and that I speak about it openly as being disloyal to my current employer. This is completely wrong attitude as I’ve learnt in my previous corporate job that minding your professional career is your responsibilty, not your employer’s. I did the external job interviews in my previous workplace on regular basis to check my market value and validate the need of my skills. I do what I’m paid for and I do it the best I can – that’s my understanding of job loyality.
I totally understand my employer that their choice is to use my current skillset to it’s potential and not risk me doing something which I don’t have a professional experience with. The employer also is aware that I don’t wish to be “a support guy” for another 10 years. This is a fair attitude and I respect them for that.
The task was: Make a pc game in pure c++ with OpenGL initiated with SDL. Deadline: 7 days.
Code repository is available HERE
The task seemed impossible to make at the first. Comment from my fellow coder friend (Hi Vigrid!): “This is a – Go Away! – task. They don’t won’t you there”. My c++ knowledge was 1 out of 10 at the time I started the task. My OpenGL knowledge was 0. I did not know where to start and how to start. With 0% chance of success I could not refuse the challenge.
“Impossible? Impossible is temporary. Just wait and see”
So I spent vast number of hours trying to find a good source of knowledge and finally I found a great Advanced C++/Graphics Tutorials video tutorial on “Making games with Ben” youtube channel. This was what I needed and since I had no time to be creative I decided to go with the tutorial 100%.
The whole process took me roughly 33h of coding and learning (as shown in Rescue Time report).
Here are all the phases of progress of my task in this YT video list:
In the whole process I’ve learnt a lot about proper C++ coding for games:
- How to prepare the visual studio environment
- How to implement Game States
- Data Structures
- Static vs Dynamic Classes
- Memory Pointers
- OpenGL 3.0 shaders
I realize that I have just touched the surface of game coding in C++ but I even now when I am no longer coding on such a low level I better understand the connections between each part of the game engine and my code quality significantly improved (still far from perfect).