Integrating a live game with GGWP – interview with Matthew Prince

“GGWP’s documentation was clear and the APIs were straightforward, so our team was ready to test in no time.”

 

When selecting a vendor, it’s tough to know what the working relationship will be like until you’re deep into the process. We recently had the opportunity to sit down with Matthew Prince, a backend engineer at thatgamecompany, to reflect on his experience integrating our moderation platform. Matthew sheds light on TGC’s thorough evaluation of our platform, sharing key criteria such as latency, accuracy, and support. He also delves into the practical aspects of the integration, the collaboration between our teams, and the positive impact on maintaining player safety and community health.

GGWP: To start things off, can you introduce yourself and give some background on your role at thatgamecompany?

Matthew Prince: Sure! I’m Matt. I use he/him pronouns and I’ve been a backend engineer at TGC for close to a year. When I joined, we were looking to adopt a more comprehensive moderation tool to elevate our safety and support standards, so I was put in charge of investigating whether GGWP would fit that criteria. Before TGC, I worked at the Trevor Project nonprofit, and then I was at Google and Microsoft in the past too. So I’ve been at big companies and small companies, but this is my first time in games, which is very exciting and has its own challenges. Things have been good and fun and you all have been great to work with.

GGWP: Can you give us an overview of the moderation system at TGC?

MP: We use our moderation tools in a number of different ways. We have an internal support dashboard, where our moderation team can do things like grant people items if there’s been issues or they can review reports that people have made, for things like sketchy chat messages. 

And if we get a law enforcement request for investigating something serious, like a grooming case for example, that’s where we’ll handle it. 

So we’ve got backend stuff and then we also have our live translation and live moderation work, which is interfacing directly with our game client. Our new system filters, flags, and writes data to our warehouse for analysis.

So that’s one aspect of what we do. We also have a platform for after-the-fact analysis of what’s going on in our game to better understand our overall community health. That was what our player support moderation story looked like going into this.

GGWP Where does GGWP fit in within your larger moderation system?

GGWP is pretty integrated throughout our stack. For live moderation, we forward incoming messages to you for initial analysis to determine if the language used is potentially risky. Based on your analysis, we decide whether to filter it and send that directly back to the client, flagging risky messages. This information is also logged into BigQuery, making your language analysis our source of truth for what languages are being spoken in our game.

We’ve also recently worked with you to activate your auto-moderation system. When you take action on your side, you send a callback to our support dashboard, allowing us to manage who has been warned or actioned against, integrating it into our existing workflows. This helps us rate our player base and investigate particular incidents using the GGWP dashboard. Essentially, we’ve integrated you across our player support stack.

GGWP: You mentioned earlier that you were involved in evaluating GGWP as a potential partner. What went into that evaluation? What criteria were you looking for, and how did you evaluate the level of effort for integration?

MP: GGWP’s documentation was clear and the APIs were straightforward, so our team was ready to test in no time. We ran several integration tests, checking latency since it’s a live service. We needed to ensure it didn’t introduce too much delay and that it matched or exceeded our current moderation workflow in terms of false negatives and positives. Price was also a consideration, but I wasn’t as closely involved in that.

We also evaluated what it would actually be like to work with GGWP. We created a Slack channel for quick communication, got API keys for testing, and assessed the expected level of support in production, including response times for outages and expected downtime. Error rates were another factor, we monitored these aspects closely as we increased the traffic we sent to you.

GGWP: And you’re running a live game, so switching from one vendor to another must have its challenges. How did you manage that?

MP: Fortunately, we had already set up a service to aggregate all our chat messages on the backend, so no client-side changes were needed to update our moderation practices. This allowed us to switch on our own timeline, simply swapping out the previous provider for GGWP. We had to adjust some data formats to minimize impacts on the rest of our system, but it was a minimal effort migration from our rule-based system to yours.

GGWP: Were there any other considerations to ensure players weren’t impacted by the change?

MP: During the evaluation phase, we didn’t send any live traffic through GGWP that would reach users directly. We set up a test application to fork traffic from production and send it to GGWP, storing the results in our data warehouse. This included latency, flags, and languages detected. We compared these results to our existing provider’s output, focusing on discrepancies and manually inspecting critical messages to determine accuracy. 

That was the biggest thing, looking at the differences and doing manual inspections alongside player support; identifying what looked benign, what shouldn’t have been flagged, or hey this looks pretty risky. So that was the main thrust of what we did in the evaluation phase, getting tens of thousands, hundreds of thousands of these messages, and then just filtering it down to what are the critical ones that we need to manually inspect.

GGWP: What was it like working with your internal teams during this process? Has it been difficult to get buy-in about the importance of safety from folks outside the safety team?

MP:  Yeah, I mean, I am a little bit biased, coming from a crisis hotline, where the words that people use are important, and making sure that everything is safe. Especially coming from Trevor in particular, there are populations where moderation can sometimes be discrimination, especially with LGBTQ+ terms. If someone uses something for self-identification and that gets flagged, that’s something that we need to pay attention to. I was especially looking for those examples in the data sets just to see where we were gonna stack up.

I would say that TGC, and myself, don’t picture ourselves as a traditional game studio. All of our games are very emotion-first, building a sense of community. Journey, the big breakout, was all about this connectedness, and so is Sky, being a spiritual successor to that. Across TGC, we are laser-focused on not just providing a fun, good time to our players, but also making sure they feel safe and protected and are not being exposed to anything harmful. A lot of that comes down to chat.

I can’t give our player safety and support team enough credit. They are the pillar in any organization that’s going to be harping on this stuff, no matter where you are. At every level, people are at TGC because the games resonated with them. That sense of togetherness and unity pervades everything we do.

Yeah, I’m just a back-end engineer at TGC, but I always try to remain aware of this. I’ve played Sky. I want to make sure that we don’t do any harm, and beyond that, we want to provide a spectacular experience. I haven’t met anyone here that doesn’t have that same level of care and concern where player safety is concerned. Moderation plays a huge part in that, making sure we filter out inappropriate behavior and ensuring uplifting experiences are not hampered.

GGWP: Given the overall leadership interest and investment in things like safety, what is your role in those interactions? Do engineers have a say or influence on community decisions?

MP: A lot of the initial investigation was operating from our shared Slack channel. Our CIO found GGWP interesting, so I looked into it. As we continued, we engaged our dedicated player support team to get their perspective. We’re a remote organization, so we have to come together in different ways. It’s not just the bosses in a conference room; it’s about getting the right people together. At TGC, it’s about who has the domain knowledge to make decisions. It’s a very collaborative process. If I had said GGWP wouldn’t work, we might have looked for another provider. We brought in subject matter experts as needed, and it’s very much a bottom-up approach. Everyone is empowered to make decisions and communicate.

GGWP: What about your roles and responsibilities? How much time is allocated to safety-related work versus other things?

Matthew Prince: Since the initial rollout of the live translation work I’ve taken a step back. Our active player support development has focused on auto moderation, our big key feature. My workload specifically related to GGWP has gone down lately, though the player support team continues to diligently improve the system. But everything I’m doing now is still related to providing a better experience for our players. We track suspicious behavior, making sure everyone is on the same playing field, which ties into player safety and support.

GGWP: What has ongoing maintenance been like? What continuing work do you have to do with us and across the safety stack?

Matthew Prince: We’ve set up alerts to track things like moderation latency, dropped requests, and other metrics to ensure everything is operating smoothly. We’re in new feature development, getting the auto moderator rolled out and monitoring it. In terms of live player support, on the code side, we’ve been pretty hands-off. Our moderators continue tuning models to improve the experience. One beneficial thing working with you is that from a technical implementation standpoint, we don’t need to change anything on our end. Our moderators are able to handle model tuning without us as a technical bridge.

GGWP: Matthew, thank you for your time and sharing your experience.


About Matthew Prince

Matthew Prince is a Senior Backend Engineer at thatgamecompany who has previously worked with Microsoft, Google, and most recently The Trevor Project. Throughout his career he has focused on bringing players and users to the forefront; ensuring we first do no harm before building enriching and fulfilling experiences.