Tiffany Wild is a Gameplay Programmer and Journalist. With a background in computer science and a passion for championing diversity in the games sector, Tiffany currently works at Ubisoft Leamington. We asked Tiffany, some key questions about getting into the games sector.

Explain your role like I'm 5 years old

I am like a baker for video games. I take the recipe from the games designers and the ingredients from artists and other programmers, and I use my techniques to combine everything into the most delicious game! Of course, it cannot be just delicious, it also needs to make people think "What a lovely cake! I want to take a bite!"

Take us through your average day at work

Nothing starts until I had a good cup of tea! I like chatting with my colleagues in the kitchen, and sip the tea at my desk as I catch up with my emails and have a look at my calendar for the day. After the ""daily scrum"", where I update my team about my work progress, I can begin with the task at hand. This can be investigating how to implement a feature, actually implementing a feature or testing/debugging my code (or sometimes, other people's code). When my work is ready I have it reviewed by other programmers, and finally I submit it into the game. I make sure to take regular breaks throughout the day (I always have another cup of tea at 3pm), and when the weather is nice I like using my lunch break to stroll around town and eat in the park.

Sometimes, if I feel a bit tired after a break or a meeting, instead of diving straight back into my code I watch a video or read an article related to my job. Because keeping up with the latest tools and techniques is also important.

What was your educational and career journey into your current role? 

I did most of my education in France so it is a little different to how things go in the UK. I knew when I was 14 that I wanted to become a games programmer. After college (which, unlike the UK, doesn't involves choosing any courses), I went to a private school to study computer science engineering. It's like a University, except it was all or nothing: I would either graduate with a Masters degree after 5 years (MSc are 2 year in France), or have to restart from the beginning. The school was heavily focused on programming and computer science theory, as well as a fair amount of project management. There were no games specific courses, although I'd make use of school projects to make games whenever I could. Finally, I spent my final year at University in the UK as an exchange student, where I did have a handful of game classes such as AI in games or Engine programming. I also did two 6 months internships during those five years, as these were a mandatory part of my degree. I was lucky to find a role as an intern in a games studio in France, this helped me a lot understand how professional games are made and I gained a massive amount of knowledge in such a short time.

What is the most rewarding thing about your role

I stand at the frontline of game mechanics and features, and while programmers don't attract as much fame as designers, seeing so many players enjoy the work I have done, have fun playing with the elements of the game that I helped to create is the most rewarding part of my role. I bring to life ideas, contribute to make the game a fun, engaging experience, and nothing can make me more proud than bringing happiness and comfort into people's lives.

What other roles do you work with the most

I interact a bit with everybody, because my role often involves bringing everyone else's work together. But more often, I talk with Game Designers and Level Designers to ensure that I deliver what they want, and also advise them when technical challenges conflict with their creative ideas. And of course, I regularly speak with programmers from other specialisations like physics or online, because I am making use of their work to do mine.

What's the most challenging thing about your role? 

Keeping up to speed with the always evolving programming languages and game engines. Every new project is a new codebase, so there is always a bit to learn or relearn at the start of each one. And sometimes, I have to work in a completely different engine, use new tools or even learn a new language. This can be very challenging, as I am constantly pushed out of my comfort zone and into the unknown.

What software or digital tools do you use the most? 

Maya, any coding software, such as jEdit, PyCharm, etc. Substance, MotionBuilder, Max, Photoshop - any software art or animation uses + coding tool

What are the key skills needed for you to work on to do your role?

C++ and Visual Studio are my bread and butter (depending on the studio, it could also be C++ and Unreal Engine or C# and Unity), and I submit my code via Perforce (although I have used Git on some projects as well). I have been using Swarm for code reviews, although sometimes getting your teammate to sit next to you and look at your code is just as good to spot the little mistakes.

I also use JIRA every day to keep track of my work and look through the bugs I can fix, because games are made using AGILE methodology. Word, Excel and Powerpoint also get very useful when I have to prepare a technical brief to present my solutions to the team.

That being said, in my career so far I have already seen and used many internal tools. At Ubisoft especially, we have many unique software helping us through our daily job, that the operations teams have made just for us.

What advice would you give to your younger self looking to get started in the industry?

Technical skills are of course important, but it's your personality and attitude that will make a difference in the end. Be yourself and you will find the perfect team for you to grow with and be happy!

Do you have any links to good articles or videos that you think might give some tips or advice to someone starting in your role?

- "Debugging" Book by David J. Agans

- "Beginning C++ Through Game Programming" book by Michael Dawson

- "Game Programming Patterns" Book by Robert Nystrom

- The CPlusPlus Reference website, which as the documentation and some tutorials:

CPlusPlus

- The Unity website has a lot of tutorials for beginning with the engine.

Unity Tutorials

- For those who prefer Unreal Engine, their Youtube channel has many tutorial videos:

Getting Started with Gameplay Programming

- For beginners with no code experience, I would recommend checking out Game Maker Studio 2, which is a great little engine to start with (and there are professional games made with it):

Game Maker Studio 2

- For more advanced programmers, the GDC Vault website has a section of free videos. These are talks from the most innovative developers, worth looking into:

GDC Vault

- And finally, some Game Jam events to participate in:

Global Game Jam

Ludum Dare

Itch Community Game Jams