Monument Valley
Esta é a primeira publicação da série “Padrões de Projetos Aplicados ao Desenvolvimento de Jogos Digitais” de Yves Nogueira, ex-aluno do curso de Sistemas de Informação da FA7. Nesta publicação o autor contextualiza a necessidade do uso de padrões em jogos digitais. Vale a pena a leitura ;) .

yves_nogueira

 

Yves Nogueira
Especial para Include[SI]

Os padrões de projeto já conquistaram sua posição de importância na área de desenvolvimento de software e já são amplamente utilizados para se produzir sistemas mais manuteníveis e adaptáveis à mudanças. Dadas às suas muitas peculiaridades, principalmente uma elevada necessidade por desempenho, jogos digitais por muito tempo não davam espaço para que parte deste desempenho fosse sacrificado para se conseguir ganhos em manutenibilidade. Antigamente isto não era um problema tão grande, visto que os jogos depois de entregues geralmente não eram atualizados ou modificados, mas hoje este cenário mudou e os jogos recebem atualizações e novos conteúdos constantemente. Frente a estas novas necessidades, a relevância da aplicação de padrões de projetos no desenvolvimento de jogos digitais ganhou força e estudos e aplicações de padrões de projetos voltados a esta área vêm acompanhando esta ascendência.

Jogos digitais historicamente representam aplicações que precisam extrair o máximo de desempenho possível para manter atualizada a representação gráfica dos dados em tela, ao mesmo tempo que mantêm uma resposta rápida às entradas efetuadas pelo jogador a fim de fornecer uma experiência de jogo fluida, com um tempo de resposta aos comandos preferivelmente imperceptível ao jogador [1]. Tal necessidade por desempenho impõe restrições a outros requisitos não funcionais, entre eles manutenibilidade, flexibilidade, reusabilidade e clareza de código.

A popularização da distribuição digital revigorou o mercado de jogos ao permitir que desenvolvedores independentes lançassem e dessem visibilidade a seus jogos de forma também independente.

A popularização da distribuição digital revigorou o mercado de jogos ao permitir que desenvolvedores independentes lançassem e dessem visibilidade a seus jogos de forma também independente [2]. Os jogos produzidos por estes desenvolvedores independentes tipicamente são feitos por equipes pequenas e com verba reduzida se comparados com os jogos feitos pelas empresas que dominam o mercado [3]. Atualmente é muito comum que o desenvolvimento destes jogos independentes se dê através da entrega de uma versão inicial incompleta, mas já de venda, através do modelo Early Access, que passa a sofrer constantes atualizações e modificações ao longo do tempo a partir do feedback dos jogadores com a promessa de um lançamento definitivo futuro. Apesar desta versão inicial ser incompleta, os desenvolvedores ao lançarem um jogo em Early Access geralmente prometem uma série de funcionalidades futuras visando atrair mais pessoas para a base de jogadores do jogo, mas muitas vezes estas funcionalidades acabam mostrando-se mais do que a equipe de desenvolvimento poderia entregar. Apenas uma minoria dos jogos produzidos neste modelo de fato atingem o ponto no qual se tornam um lançamento final [4] .

Cartuchos, console e joysticks

Console e seus cartuchos com jogos que não recebiam atualizações

A necessidade por um maior desempenho durante a execução dos jogos sendo produzidos levou à produção de jogos utilizando-se artifícios de programação para suprir esta necessidade, artifícios estes que normalmente refletem opções de design de software que não levam em consideração a manutenibilidade, que poderia ser atingida por designs mais flexíveis [1].  O fato do código final terminar por não suportar mudanças futuras de forma eficiente e muitas vezes não possuir clareza por conta das otimizações para ganho de desempenho, no fim das contas, não causava um impacto tão negativo pelo fato de que os jogos eram entregues como um produto totalmente finalizado que não recebia atualizações futuras, principalmente no caso de jogos para consoles, que antigamente em sua maioria sequer possuíam capacidade de conexão à internet que os possibilitassem a receber atualizações.

What is Early AccessHoje este cenário mudou, sendo regra, inclusive, que novos consoles possuam conexão à internet sem qualquer necessidade de extensões ao mesmo, como acontecia nos primeiros que forneceram esta funcionalidade. Graças à distribuição digital e ao Early Access, não só alguns jogos são totalmente disponibilizados digitalmente para download, como recebem atualizações constantes com mudanças e adições ao jogo. Isto também vale para as grandes produtoras: é comum que jogos de grande porte também sejam disponibilizados digitalmente e recebam atualizações de correções e afins, tanto para computadores pessoais (Personal Computer – PC) como para consoles. Portanto, com este novo cenário também surgem novas necessidades nestes jogos que não existiam antigamente, sendo necessário que se realize uma implementação que suporte bem este dinamismo de atualizações e modificações no ritmo que a comunidade, os jogadores, espera que sejam realizadas.

[...] os desenvolvedores ao lançarem um jogo em Early Access geralmente prometem uma série de funcionalidades futuras visando atrair mais pessoas para a base de jogadores do jogo. 

Neste contexto, os padrões de projeto clássicos, abordagens bem documentadas para problemas que comumente ocorrem em um ambiente de desenvolvimento, visam aumentar a reusabilidade e a flexibilidade de aplicações nas quais são utilizados. Tipicamente um padrão de projeto é catalogado a partir da experiência prática de profissionais experimentados que, ao se depararem repetidamente com um tipo de problema de desenvolvimento de software, criam e refinam uma solução elegante para aquele tipo de problema [5].

+MAIS Yves Nogueira concluiu o curso de Sistemas de Informação na FA7 em 2015.1. Esta publicação é uma adaptação de parte do seu trabalho de conclusão de curso.

A utilização de padrões de projetos, portanto, ajudaria os desenvolvedores a garantir que o progresso do desenvolvimento do jogo não saísse de controle, uma vez que sua utilização visa justamente alcançar bons níveis de qualidade nestes requisitos não funcionais referentes a manutenibilidade de um modo geral. Padrões de projeto ganham, portanto, especial importância neste contexto de desenvolvimento.

O objetivo desta série é analisar a aplicação de padrões em jogos acadêmicos e mercadológicos através de estudos de casos e apresentar alguns outros padrões que surgiram a partir da área de desenvolvimento de jogos digitais, procurando-se explicitar a viabilidade, vantagens e desvantagens da utilização de padrões de projeto nesta área através dos resultados alcançados por estas análises.

Aguarde o próximo artigo!

REFERÊNCIAS

[1] Gestwicki, P. and Sun, F.-S. 2008. Teaching design patterns through computer game development. ACM J. Educ. Resour. Comput. 8, 1, Article 2 (March 2008), 21 pages. DOI = 10.1145/1348713.1348715. <http://doi.acm.org/10.1145/1348713.1348715>.

[2] PCGAMER. Analyst says digital sales made up 92 percent of PC game market in 2013. 2014. Disponível em: <http://www.pcgamer.com/analyst-says-digital-sales-made-up-92-percent-of-pc-game-market-in-2013>.

[3] Intel. Developers of Indie Games Continue to Gain Important Ground. 2013. Disponível em: <https://software.intel.com/en-us/blogs/2013/12/11/developers-of-indie-games-continue-to-gain-important-ground>.

[4] Gamesindustry. Early Access popularity growing, but only 25% have released as a full game. 2014. Disponível em: <http://www.gamesindustry.biz/articles/2014-11-13-early-access-popularity-growing-but-only-25-percent-have-released-as-a-full-game>.

[5] E. Gamma et al. Design patterns: elements of reusable object-oriented software. Addison – Wesley, 1995.

Curso Padrões de Projeto

Comentários

comentários

SIFA7.FUN 1.0 acontece neste sábado [EVENTO]
Meu primeiro BrazilJS [depoimento]

2 Comentários