SharpLudus : improving game development experience through software factories and domain-specific languages - Wilson Brotto Furtado, André (2006)
A indústria de jogos digitais é uma das mais bem-sucedidas do mundo, equiparando-se até mesmo às indústrias de cinema e música. Entretanto, a industrialização no desenvolvimento de software, tendência que vem surgindo em resposta ao crescimento exponencial da demanda global por software, apresentará muitos desafios novos ao desenvolvimento de jogos. Estudos revelam que existe evidência suficiente de que o atual paradigma de desenvolvimento está próximo de seu fim, e que um novo paradigma é necessário para suportar os novos rumos das tecnologias de desenvolvimento de software. Por exemplo, apesar de motores para jogos (game engines) terem trazido os benefícios da Engenharia de Software e orientação a objetos visando a automação no desenvolvimento de jogos, o nível de abstração provido por eles poderia ser mais facilmente assimilado através de ferramentas baseadas em linguagens, da utilização de diagramas como elementos-chave no desenvolvimento (no mesmo nível do código-fonte) e de uma melhor integração com processos de desenvolvimento. Este trabalho, portanto, explora a integração entre o desenvolvimento de jogos, uma disciplina inerentemente criativa, com o conceito de fábricas de software, que são focadas em transformar o atual paradigma artesanal de desenvolvimento em um processo de manufatura. A especificação (schema) de uma fábrica de software para um domínio específico de jogos é descrita, e uma linguagem de domínio específico (DSL) visual, que realiza parte da especificação da fábrica, é definida. Esses conceitos foram implementados e implantados em um ambiente de desenvolvimento, que inclui geração de código (que consome um game engine simples) a partir dos diagramas especificados na DSL desenvolvida. Finalmente, cenários reais, desenvolvidos para validar a fábrica de software proposta e sua DSL visual, permitem concluir que a abordagem apresentada permite aos desenvolvedores de jogos um trabalho mais produtivo, com um maior nível de abstração e de maneira mais próxima de seu domínio de aplicação