So recently I got into mentoring thanks to Stephanie Hurlburt and a lot of people are asking me how I started out in engine programming. Also, today being the 10 year anniversary of starting out in game development, I thought what better opportunity to put this on paper (at least virtually).
Preparation (aka the disadvantage)
As one of my colleagues aptly expressed, going to university in East Europe when someone wants to get into game development can feel like a disadvantage. Getting into university is not easy in the first place (although it’s mostly free) and even when someone makes it, they have very limited options to orient themselves. There are plenty of game development related courses in big American universities nowadays and there have been for quite a few years but nothing like that existed in Hungary 10 years ago. The closest I could get was taking some graphics related classes.
That being said, many East European universities and in general the level of education was on a fairly high level back then which meant that I got a pretty good basis for my further development as an engineer.
One of the classes I chose, allowed me to build a small C++ game engine with 2 other students. The rendering part of this engine was mostly built by me using OpenGL. All this while I tried to balance my job, university obligations and WoW. Not having enough time the latest had to go, never got back to it ever since then. Unfortunately, I don’t have any screenshots from the game we built together, it was a simple tower defense game with 3D environment and shadow maps (which back then seemed like a huge achievement)
Another class allowed me to write a simple game in C# with DirectX. The result of this made the perfect starting point for my thesis which I wrote about post processing techniques. This helped me immensely in getting a job in the industry. I know for a fact that my mentor looked at the projects more than the CV itself. But I’m jumping ahead, so let’s get back to the story.
First game dev job
In 2007 as soon as I finished university I started applying to all possible positions in Budapest and fortunately one company called Eidos Hungary saw the potential in me. Joining the first game project was an amazing experience. The team was quite unusual. There were 4 engine programmers on the team including me, one senior fully dedicated to physics, a senior who was brilliant but worked part time only and was supposed to mentor me and another junior who just got hired. As one can imagine this setup required us — the two juniors — to grow quite quickly and sure enough, in no time, I was writing a completely new foliage system for the project.
The game we were working on was Battlestations: Pacific which was released on PC and X360 which allowed me to learn about this console and gather experience working with it. This proved essential later as almost every project I took part in was shipped on at least one console platform.
There were plenty of other tasks I handled before the game shipped and learned a ton of different things from various people. One fortunate thing that defined the whole experience was that the engine programmers were sitting next to the artists, which made our communication much better than on any other project I worked on since. It’s a tough decision because it made our communication with other programmers worse but I believe it was the right thing to do.
After shipping Battlestations: Pacific the whole team started out on preparing for the next project and I was excited to learn that the company is thinking about licensing another engine because this meant that I got a chance to look at the sources of some of these engines. Unfortunately, nothing more came out of this as Eidos was merged into Square Enix and the Hungarian studio was closed down, but at that point, I was already in another studio working towards even bigger goals.
The moral of the story
A few key takeaways I would like every junior to think about after reading this.
- Build something that you can show and that shows off what you can do
- Quality over quantity, you don’t need to have a thousand features, have just a few really good ones
- Be open, don’t restrict yourself to one company
- Small companies can be sometimes better as everyone needs to do a lot of different things which provides ample opportunity to learn
I hope my story will be inspiring for others and it will help fulfill your dreams!