GOOD Teams: For Technical Integration, It’s All About Automation
Whoever thinks that development teams are a boring bunch with a dry job has not yet met our Technical Integration Team. In their own words, they are “the most fun team at Goodgame Studios” and, judging from the meeting that brought about this blog post, this is tough to argue against. When asked to explain what it is they do by someone without any programming knowledge or talent (i.e. me), they come up with all sorts of metaphors and images, such as putting up a series of advertisement posters where they provide the glue. To explain it in simple words – the team’s mission is to automate all parts of a game’s production in order to make development as easy, transparent, and efficient as possible. Through their work, they enable our game development studios to devote their full concentration towards new game features. Basically, they make sure that the artists can draw and the developers can code. Thankfully, we have an image to show you what it is that the Technical Integration team does exactly, which you can see below.
In a nutshell: when a game is produced, quite a few teams are involved, and they create a variety of assets such as art or code. These pieces need to be orchestrated, which is where the Technical Integration team comes into play. They build a program through which the art and code parts are put together automatically. The idea is to reduce all the manual tasks that are normally done by the game developers through a ‘build chain’. When Technical Integration works perfectly, the game developer only has to click a button in the end to assemble the final product, the game.
If you are more technically versed than I am, and this description is therefore too superficial for you, you might find the following explanation from the team more enlightening:
Have you already heard about Jenkins, and it was not in “How I Met Your Mother”? Then you’re dealing with “TI”. We – the Technical Integration team – consult on, implement, and optimize release and deployment chains using Jenkins (“The Butler”) as an orchestrating tool and a plethora of other tools like Maven, SonarQube, and Archiva. This list becomes more hieroglyphical with YAML, Mesos, Docker, etc. Assume this scenario: a new game has been greenlighted (“approved for production”) and the studio wants to produce and deliver it ASAP. One crucial part is to provide the game team with a tailored deployment infrastructure combining artwork and code in the expected versions for different platforms (e.g. Flash or Unity or Unreal). It must be fast and reliable because, yes – time is money! How does TI achieve this without slowing down the studios? The answer is “automation”, i.e. we invested in new technologies in order to instantly create (aka “spawn”) Jenkins, Maven, deployment jobs (etc.) instead of “manually” developing and adjusting these tools. This saves time and reduces human errors. What’s next? We aim to extend our service portfolio to support the automation of production processes, e.g. supporting game producers managing dozen of game builds to be tested, demoed, and delivered to different (external) stores. We believe that we can boost producers’ lives too. We’re committed.
What’s great about Goodgame Studios’ Technical Integration team in particular (or so they’ve told me) is that they are always experimenting with new tools and pushing boundaries to find new and better solutions. This might also explain the creative, fun flair in the team. What also keeps their work exciting for them is that each of our studios has different requirements and that they need to support a very broad range of technologies, for example Flash, Unity, and Unreal. That means that they need to be on top of their game at all times, and I imagine this constant challenge is what keeps their job so dynamic. Lu from China is one of the build and configuration engineers in the team, and she speaks very positively of her colleagues: “I really like the atmosphere in the team – it’s very relaxed and harmonious, and if you’re stuck on a problem, no matter what kind, there is always a helping hand.” The individual team members are mostly game developers themselves and therefore experts in their field. Their approaches and insights to a problem can be highly individual, and by working closely together, they continue to learn from each other and thus become better and better – which is their ongoing goal.
Of course, the team has big plans for the future. Their vision is to have everything automated and to make the lives of the game teams as easy as possible. They want their tools to empower the studios so that they can be autonomous and flexible in their work. Ultimately, their aim is to help create GOOD games.