As the industry has expanded the number and variety of routes to a career in games have grown in tandem. Making that first step can be difficult, and all the more so when starting out in a country like Turkey, where the local industry is still young and employment opportunities are scarce.
This was the case for Duygu Cakmak, who pursued her ambition to work in games to a job as AI programmer on Total War: Warhammer and its forthcoming sequel at Creative Assembly. In this interview, she discusses her journey from enthusiastic gamer to working on one of the industry's most respected strategy franchises.
Cakmak will be speaking at the Ukie Career Bar at EGX 2017 later this month. The Career Bar is one part of the GamesIndustry.biz Career Fair, where Creative Assembly will be on hand to meet people interested in working in the games industry.
When did you realise you wanted to work in games?
I always wanted to work in games, but I didn't really know how to get into it. There wasn't an established route and I wasn't sure which career path would be best for me. Because of this I chose a university in Turkey that followed the American system. I could study a few different things to begin with, before specialising in one area.
I took some animation, art and programming classes to give me the best chance of finding the route that worked for me. I really enjoyed programming, and this seemed to be a great fit as I was always very interested in maths and physics at school. Programming appealed to me because of the logical problem solving and analysis, attacking these problems from an engineering perspective.
"In Turkey there isn't much of a games industry, so that's why I went into robotics simulation work. It was the closest I could get to games"
What did you do after university?
In Turkey there isn't much of a games industry, so that's why I went into robotics simulation work. It was the closest I could get to games.
What sort of work were you doing in robotics simulation?
We created simulations for heavy machinery. I was developing kind of little games in a way. They were short simulated courses for heavy machinery operators to practice and pass prior to operating the machinery. We also had a robotics lab, and in that we developed motion platform systems for our simulations to simulate the movements, vibrations, hydraulics etc. of the vehicles.
In the end, we were providing a package simulation environment, with a variety of interactive courses. These ran on big screens at the front and back of the heavy machinery cabin, which was mounted on a motion platform, to create a realistic experience for the operators to train and learn.
How did you get from there to working as an AI programmer at Creative Assembly?
I studied computer science at university and then I did an AI Masters. I really wanted to work on AI in games but I couldn't find any jobs in the industry in Turkey. Despite that, I was still researching AI in all of my free time - new developments in games, and going to all of the relevant conferences that I could.
I went to Nucl.ai conference a few years ago and that's where I met the Creative Assembly team. We talked a lot about the studio and I was already a fan of Total War and its AI. When they told me about an opening I was really excited, and couldn't believe it when I actually got the job.
What does your average day working in AI programming look like?
It really depends on where we are in the development cycle. We might be in feature development, looking at new features and working closely with our designers. There are different tasks that need to be done to build specific behaviours, how the AI should act and do things, how it makes decisions.
But it's an iterative process as well. We discuss what is and isn't possible, then we model it and break it down into tasks before we start implementing. A task could take a day or two, but it could take a month or two depending on how complex it is.
Towards the end of a project testing will become far more intensive. We'll receive bug reports on the program and we'll need to solve those issues. It might be that the AI isn't behaving properly; not building the buildings that would be beneficial to its economy, or not using its armies efficiently. If this happens, I'll look at the game to ascertain what's wrong and then I'll inspect the code and fix it, before sending it back for further testing.
Do you do a lot of research when developing AI?
"It's not just about your college and University choices; it's about your passion and your desire to learn"
Yes. But we also need to be smart about it. When we're developing a new feature, we must bear in mind the size of the world we are dealing with - with Total War it's a large search space with a lot of detail. We have to be really efficient about how AI will act so that everything will still be in good time boundaries, and we also don't want to over-complicate things for the players. We'll research and look at implementing new algorithms into the game, and within the team we share a huge amount of knowledge among ourselves.
Two years on, are you still learning a lot?
In our Total War AI Campaign team there are four of us, and in the wider campaign team we have ten. It's a great environment and I'm surrounded by incredibly talented people. As others are more experienced than me in the AI team, when I run into a problem with the code there's always someone there to help me, and to run ideas by and share knowledge. It's the kind of job where you are always learning.
I read a lot of code as well. When I have the time I'll just open a completely unrelated part of the Total War code base and just start reading it. When you read more of the code you can learn a huge amount, as it's written by very different people with different ways of working. You might see something that someone else has written that you could then implement in your own code.
I also go to conferences; the whole team do. And we having a growing library at Creative Assembly. Whenever there is a book we want, it gets ordered straight in. I recently went to Computational Intelligence in Games conference last month and it was great to hear about the variety of research happening in the field.
What tools are your go-to in the studio?
We write all of our code in C++ and Visual Studio, which is pretty much standard in the industry. We have a massive codebase that's written in C++ and we keep that fresh.
What would be your advice for someone in school, who wants to pursue a career in programming?
If you've just finished your GCSEs or college and you want to get into the industry, it's a good idea to decide what area you want to work in as early as you can. Specialising at an early stage is much better, as that's what studios often look for. For programmers it might be graphics programming, gameplay programming or AI programming. But it's not just about your college and University choices; it's about your passion and your desire to learn.
Look into new developments in the industry and prominent people in the area you want to work. Follow their work, and go to conferences and try and make connections. There are thousands of people trying to get industry jobs, but try and actually speak to someone in the studio face to face. That's your chance to make an impression and ensure they won't forget you. It worked for me!