Domain-Specific Game Development - Wilson Brotto Furtado, André (2012)
Este tese apresenta o conceito de Domain-Specific Game Development, uma abordagem que emprega os benefícios de linhas de produção de software (SPLs) para criar mais eficientemente jogos digitais pertencentes a uma mesma família. A necessidade por essa abordagem é justificada pelo fato de que a introdução de conceitos de reuso e SPL em jogos digitais, na verdade em qualquer domínio, não é trivial, devido às peculiaridades de cada domínio. Especificamente para jogos, a Engenharia de Requisitos tradicional e casos de uso não podem ser aplicados como são. Prototipagem, rápida experimentação e requisitos baseados em emoção são preferidos em relação a requisitos de negócio. O tão popular conceito de motores de jogos é muito vago e ambíguo para definir o escopo de uma linha de produção de jogos. A experiência de jogadores é mais baseada em surpresas e rupturas do que na aderência a padrões. E nenhuma abordagem focada na melhoria do desenvolvimento de jogos pode ignorar motores de jogos, atual estado-da-arte no desenvolvimento de jogos digitais. Por outro lado, a abstração provida por eles poderia ser menos complexa de ser consumida, através de ferramentas baseadas em linguagens, o uso de modelos como cidadãos de primeiroa classe (assim como código fonte) e uma melhor integração com o processo de desenvolvimento. Dada essa motivação, Domain-Specific Game Development faz a ponte entre SPLs e o desenvolvimento de jogos, culminando com linguagens de domínio específico (DSLs) e geradores alinhados para sub-domínios de jogos e focados em automatizar mais o processo de desenvolvimento de jogos digitais. A abordagem emprega Engenharia de Domínio, Model-Driven Development e reuso de software para encapsular as melhores e mais comuns práticas do desenvolvimento de jogos, ainda suportando comportamento variável e imprevisto. Para avaliar a abordagem, apresentamos casos de estudo confirmatórios e exploratórios, assim como um experimento controlado realizado com engenheiros de software da indústria. Com uma melhoria de produtividade observada de mais de 5 vezes em média, sugerimos Domain-Specific Game Development como uma abordagem viável para o desenvolvimento de jogos que pertencem a uma mesma família, de modo a reduzir a complexidade no consumo de motores de jogos, quebrar tarefas de desenvolvimento em blocos mais automatizáveis, habilitar a criação de especificações expressivas porém executáveis, entregar valor incrementalmente para sub-domínios priorizados, construir artefatos de domínio específico alinhados às características únicas da família-alvo de jogos e, finalmente, prover flexibilidade e extensibilidade para que desenvolvedores e designers de jogos possam focar no que torna cada jogo único distinto