Engenharia de Software e Games.

Publicado dia 21 de Agosto de 2019 por Nathan Munis e Sanderson Barbosa

Dicionário de termos

    Desenvolver jogos digitais, games, configure-se por processo de software de dificil estruturação, uma vez que suas fases, ortogonais ou não, são multidisciplinares envolvendo questões técnicas de engenharia de desenvolvimento de software como também de outras disciplinas como artes visuais, audio e roterização. Essa diversidade de conhecimento exigem alto grau de esforço humano para se orquestrar conhecimentos e habilidades da equipe que atua na produção de um game.

    No que tange o conhecimento de desenvolvimento de software, a Engenharia de Software (ES) apresenta ferramentas, métodos, procedimentos, técnicas e processos que possibilitam aumentar a qualidade do software a ser desenvolvido. Nessa perspectiva, há uma potencial contribuição da ES para se definir, modelar e gerenciar os processos necessários para desenvolver um produto de qualidade, além de auxiliar a gestão do conhecimento através de seus subdomínios. Nesse sentido, entendemos que a ES pode ser um aliado no processo de desenvolvimento de Games.

    Segundo a Engenharia tradicional, o ciclo de vida de um software consiste minimamente nas etapas de Planejamento, Elicitação, Projeto, Implementação, Testes, Implantação, Operação e Manutenção. Um jogo digital, por se tratar de um software, possui as mesmas características, com a complexidade adicional das demandas de interdisciplinaridade entre a equipe e as especificidades de cada categoria de jogo.

    Um Role-Playing Game(RPG), por exemplo, poderá exigir uma vasta documentação especificando a história do jogo, a descrição dos cenários e personagens, a participação destes na trama ou até mesmo a história de vida de cada um deles; enquanto jogos no estilo First Person Shooter(FPS) podem ter uma história supérflua ou até mesmo inexistente.

    Como todos os softwares, os jogos “nascem” quando surge a primeira ideia. É o momento onde cria-se uma breve sinopse da história do jogo, ou definem-se suas mecânicas básicas. Após traçar a ideia principal, adicionam-se detalhes mais específicos, criando narrativa, definindo papeis e objetivos dos personagens, etc.

    Após essa concepção inicial, podemos começar a desenvolver um dos principais documentos utilizados na área de desenvolvimento de jogos, o Game Design Document(GDD). É um documento abrangente, que auxilia na definição e especificação de mecânicas, história, personagens, e diversas outras coisas essenciais para o desenvolvimento de um jogo.

    O GDD contempla duas etapas do ciclo de vida tradicional: a análise e o projeto. Assim, é responsável pelos requisitos funcionais que definem o que o jogo precisa ter, por exemplo: se o personagem dará dois pulos, se um pulo destrói obstáculos e inimigos, como é feito o cálculo da pontuação, enfim: define como serão as interações do personagem com o mundo. Há uma boa porção de outras necessidades que também são definidas, como o canvas, que especifica a interface e caminhos de interação de menus do jogo; a tecnologia que será usada para a implementação do jogo; detalhes sobre o funcionamento da inteligência artificial dos inimigos; e a estrutura física do mundo, chamada de level design.

    O level design é recebe esse nome pois abrange a definição dos cenários interativos do jogo, ou seja, a distribuição dos elementos no mundo virtual. São mapas, corredores, movimentação de personagens não jogáveis(NPCs), movimentação de inimigos, entre outras coisas. Em um jogo de plataforma tradicional, por exemplo, o personagem passará por diversas fases, e cabe ao level designer concebê-las em suas peculiaridades, às vezes antes mesmo de estar definida a estética de cada item. Existe uma separação entre os artistas que fazem a estética desses nívels e os designers que definem a interatividade do jogo, por se tratarem de trabalhos drasticamente diferentes, mesmo que estejam diretamente relacionados.

    Com o GDD bem definido, partimos para a condificação e testes do jogo. Assim como o GDD une duas etapas que em softwares tradicionais ficariam separadas, os testes e a implementação dos jogos também ocorrem de modo simultâneo e orgânico.

    Plataformas de publicação de jogos como a Steam permitem que jogos sejam disponibilizados na modalidade early access. Trata-se de um modelo que permite aos desenvolvedores arrecadarem dinheiro com a venda das versões iniciais do jogo, de modo a usar o dinheiro para fundar a equipe até o fim do desenvolvimento. É comum, portanto, encontrar jogos independentes acessíveis em versões prematuras, denominadas versões alpha ou beta, que modificam detalhes e até requisitos funcionais em sua definição original, através do feedback que recebem da comunidade. Desse modo, o desenvolvimento, os testes e a validação dos requisitos todos se dão simultaneamente, num processo longo e crucial para o ciclo de vida de um produto de qualidade. Em empresas de maior porte, essas etapas tendem a ocorrer internamente, através de equipes especializadas em executar testes.

    Mesmo após a entrega ‘final’ do jogo, em sua primeira versão oficial, atualmente já é esperado que o jogo lançado continue corrigindo bugs e adicionando conteúdo não planejado na definição inicial. Novas fases, personagens, aditivos visuais para os personagens e itens (skins), e até mesmo modos de jogo completamente novos podem ser adicionados em etapas posteriores à entrega do produto.

    1 SANTOS et al., Metodologia OriGame: um processo de desenvolvimento de jogos. 2012.

    2 VELASQUEZ, Modelo de Engenharia de Software para o Desenvolvimento de Jogose Simulações Interactivas, 2009.