Wildlife

#9YearsBeingWild – Além do Backend: uma constante evolução

jun 09, 2020 10 MIN LEITURA Camila Scatolini

Atuando nos bastidores, o time de Backend da Wildlife tem um papel crítico no bom desempenho dos nossos jogos.


 

Este artigo é parte de um projeto de conteúdo que celebra os nove anos da Wildlife, compartilhando histórias inspiradoras de Wilders que ajudaram a criar nossa empresa. #9YearsBeingWild

A área de Backend tem características curiosas. Como o próprio nome sugere, os engenheiros dedicados a esse tipo de trabalho atuam nos bastidores. É responsabilidade dessas pessoas garantir que os diversos sistemas desenvolvidos e utilizados pela companhia operem com a máxima eficiência. Se tudo vai bem, a nossa atuação quase não é percebida pelo consumidor final que, no nosso caso, é o jogador. Porém, se algo vai mal, os problemas se tornam aparentes rapidamente. Em outras palavras, quanto menos o nosso trabalho for notado, melhor ele terá sido.

Apesar de soar como um ônus, considero esse um dos seus aspectos mais instigantes e desafiadores do meu trabalho. Foi a vontade de encarar desafios e solucionar problemas que me atraiu desde que coloquei os pés no escritório da Wildlife pela primeira vez, em 2015. Estudei engenharia elétrica com ênfase em telecomunicações na Escola Politécnica da USP e sonhava em trabalhar com pesquisa na área de processamento de sinais.

Ao contrário de muitos colegas aqui da empresa, nunca fui gamer. Durante a infância jogava algumas partidas no Nintendo 64 com a minha irmã, mas de forma descompromissada, sem muito apego aos jogos. Meu primeiro contato profissional com eles foi durante um estágio que fiz na França em uma pequena empresa dedicada ao desenvolvimento de ferramentas de áudio para jogos. Essa também foi a minha primeira aproximação com o campo da programação. De volta ao Brasil, atuei por aproximadamente um ano em uma empresa que desenvolvia softwares educacionais, até que recebi um convite para uma entrevista de emprego na Wildlife.

A mudança da área de pesquisa para a de computação foi muito impulsionada pelo meu gosto em resolver problemas. Isso foi uma das primeiras coisas que me atraiu para a Wildlife, logo na entrevista de emprego. Nela fui apresentada a desafios técnicos do dia a dia da empresa e para os quais eu tinha que propor soluções. Tive que me virar para usar o que eu conhecia e dar os meus melhores chutes!

O processo seletivo e as metas ambiciosas de crescimento da companhia me cativaram. Fui a terceira pessoa contratada para atuar na equipe de Backend que, na época, ainda era estruturada como um núcleo responsável por oferecer serviços diversos para a empresa.

COMEÇO INTENSO

Naquela época, como disse, éramos três pessoas na equipe. Por mais que pareça um grupo pequeno (e era mesmo! ), é preciso lembrar que toda a companhia contava com, aproximadamente, 50 pessoas. Tínhamos alguns serviços críticos sob nossa responsabilidade, como os de compras e de envio e armazenamento de eventos dos jogos.

As demais atividades envolviam uma série de pequenos sistemas para os nossos jogos, que, naquele tempo, eram majoritariamente off-line e single player. No Sniper 3D, cuidávamos do sistema de sincronização de contas, por exemplo. Além disso, também cuidávamos da infraestrutura do escritório, como manutenção do Wi-Fi e da nossa rede.

Era uma época de muito trabalho em que o número de projetos excedia, e muito, a quantidade de engenheiros no time. Todos tínhamos diferentes projetos sob a nossa responsabilidade. Era intenso, mas foi um período valioso, pois aprendemos muita coisa com a variedade de projetos que tínhamos em mãos e, principalmente, com os colegas, já que nossa cultura de troca de conhecimento sempre foi muito forte.

HORA DO SALTO

No início de 2016, começamos a fazer jogos multiplayer e online, o que tornou o trabalho da equipe de Backend ainda mais relevante (e interessante). Com as partidas online, o bom funcionamento dos servidores era crítico. Se não funcionassem bem, os jogos simplesmente não aconteceriam. Com a nossa responsabilidade aumentando, a expansão da equipe era inevitável. Contando agora com seis pessoas, nosso foco era construir a infraestrutura necessária para a construção de jogos incríveis e que contassem com uma ótima experiência para nossos jogadores.

Foi um período em que construímos muitas coisas. Para cada demanda, nós criávamos libs, serviços, sistemas e frameworks que pudessem ser reutilizados. Até 2017, nossas principais contribuições foram os servidores dos jogos Castle Crush e War Machines. Construímos serviços críticos que são usados até hoje, como os sistemas de clãs, leaderboards, matchmaking e sincronização de contas, por exemplo. Também foi desafiador desenvolver os sistemas necessários para adaptar jogos originalmente single player, como Bike Race e Sniper 3D, para versões multiplayer.

No início de 2018, eu já atuava em uma posição de liderança, com atividades voltadas para recrutamento de talentos e organização de processos, quando fui promovida a manager. Nesse período, a área de Backend passou por sua primeira reestruturação, sendo dividida em três núcleos: Infraestrutura, Jogos e Serviços. Nosso intuito era repassar aos engenheiros das equipes de jogos o conhecimento necessário para que eles conseguissem fazer as correções e adaptações necessárias para o funcionamento correto dos servidores dos jogos com os quais trabalhavam.

Esse desejo tinha objetivos bem importantes: dar mais autonomia às equipes, permitindo que elas tomassem decisões de ponta a ponta sobre o funcionamento de um jogo, e, o principal, ampliar a escala de jogos em produção, algo que só seria possível disseminando conhecimento entre mais equipes e focando o trabalho da equipe de Backend em criar novas tecnologias que fossem utilizadas em diferentes jogos e projetos.

UM DESAFIO CHAMADO PITAYA

Enquanto estávamos nesse período de transição do conhecimento sobre a operação dos servidores para as equipes dos jogos, atuando como consultores durante o processo, desmembramos a atuação do Backend em duas frentes: criação de serviços e sistemas para jogos e desenvolvimento de soluções para melhorar o trabalho das demais equipes internas. Um projeto de muito destaque nesse sentido foi o Pitaya, nosso framework para servidores de jogos, que é utilizado até hoje. Ele trouxe melhorias para os nossos jogos e desafios técnicos interessantes.

O framework tem muitas responsabilidades, entre elas fazer com que os servidores consigam se reconhecer e se comunicar. É preciso explicar que um mesmo jogo possui diferentes tipos de servidores, por exemplo: servidores para a execução das partidas, para o que chamamos de meta game, que roda toda a lógica do que acontece fora do jogo em si, como as cartas, baús, raquetes (no caso do Tennis Clash), elementos que variam de acordo com o tipo de jogo, entre outros. Precisamos que todos esses servidores escalem horizontalmente, tendo em vista a demanda muito grande e que oscila com datas especiais, lançamentos de features e também nos diferentes momentos do dia. Até então, o framework que usávamos para articular todo esse funcionamento era o Pomelo.

Durante um tempo, ele nos serviu muito bem, mas o sistema não era mantido atualizado pelos seus criadores, por isso apresentava muitos bugs. Além disso, ele utilizava uma versão bastante defasada em Node.js. Fizemos os ajustes que consideramos necessários, enviando modificações que foram incluídas no projeto original mas eventualmente ele começou a não nos atender na escala que julgávamos adequada.

A questão da linguagem também representava um outro problema. Como estávamos em processo de passar do conhecimento sobre os servidores para os desenvolvedores dos jogos, havia uma “incompatibilidade de idiomas”. Esses engenheiros estavam mais habituados com as linguagens fortemente tipadas, como C# e C++ e trabalhar com uma linguagem como Javascript introduzia uma séries de desafios (e bugs ) indesejados.

Imbuídos no espírito de um dos nossos valores, que prega a inovação a partir da pesquisa, extraímos o que funcionava do Pomelo e partimos para a criação de um novo framework, alinhado às nossas necessidades. 

Inserimos uma série de melhorias relacionadas ao monitoramento e gestão de erros e autenticação, criando uma solução integrada e personalizável, de acordo com as demandas de cada jogo. Também investimos em uma arquitetura mais estruturada para os servidores, facilitando o desenvolvimento futuro de jogos.

Optamos pela linguagem Go, que já usávamos no Backend e que facilitaria a transição dos desenvolvedores de jogos para o mundo dos servidores.

Quanto ao nome, confesso que a nossa imaginação não foi tão boa assim. Como Pomelo é uma fruta, resolvemos seguir nesse mesmo campo – mas pelo menos escolhemos uma bela fruta.  Nomes à parte, o importante é que o Pitaya trouxe mais estabilidade para os nossos jogos e criou uma estrutura que nos permite continuar crescendo.

O HUB ENTRA EM CENA

Outra solução criada em 2018 e que merece destaque é o HUB. Pensando em facilitar o trabalho das equipes internas, criamos essa plataforma que integra toda a operação dos nossos jogos. Dentre diferentes funcionalidades, uma das principais contribuições foi criar uma ponte importante entre as equipes de Produto e de Data Science. Antes do HUB, os relatórios utilizados pela equipe de Produto precisavam ser demandados por e-mail e a consolidação desses dados tomava muito tempo do pessoal de Data Science. Com a plataforma, há uma série de relatórios parametrizados, que podem ser gerados e consumidos pela própria equipe de Produto, de acordo com a necessidade.

NOVOS TEMPOS

Atualmente, o Backend enquanto área não existe mais. No meio do ano passado, toda a Wildlife foi reestruturada e separada em duas unidades de negócio. O Game Studio responde pela criação e manutenção dos games — daí a importância daquela transferência de conhecimento que contei antes. A outra unidade, chamada Plataforma e Serviços, tem o objetivo de fazer com que a companhia cresça, fornecendo uma plataforma que alavanque o melhor de nossas equipes ao criar, operar e distribuir nossos jogos. Hoje trabalhamos em diferentes squads que contam com profissionais de diferentes perfis, incluindo aí os engenheiros de backend.

Costumo dizer que nunca tive um dia sequer de tédio na Wildlife. Sempre somos surpreendidos com novos desafios que exigem que busquemos novos conhecimentos. Assim como em nossos jogos, sinto que estamos continuamente enfrentando fases mais complexas e instigantes.

Estar em um ambiente com colegas espertos, curiosos e que têm diferentes abordagens ao resolver problemas é uma baita ajuda nesse processo de constante evolução e adaptação. Erros acontecem, não dá para negar, mas eles se transformam em aprendizados valiosos. O importante é que estamos na vanguarda e, por isso, temos que manter sempre vivo o nosso gosto pela descoberta.

Wildlife jun 09, 2020 Camila Scatolini