Mestrado Profissional em Engenharia de Software

Fast Game Language Uma Linguagem de Domínio Específico para Modelagem de Games

MESTRANDO: JIMENS LIMA ORIENTADOR: VINICIUS GARCIA

Agenda
¨  ¨  ¨  ¨  ¨  ¨  ¨  ¨  ¨ 

1.Resumo 2. Caracterização do problema 3.Trabalhos Relacionados 4.Definição de DSL 5.Fast Game Language 6.Restrições 7.Considerações e Trabalhos Futuros 8.Resultados 9.Referências

Resumo
Este trabalho explora a construção de uma Linguagem de Domínio Específico (DSL) para facilitar a criação de jogos, auxiliando desenvolvedores que não possuem tanta experiência a criar um. Com o intuito de demonstrar que linguagens textuais podem ser utilizadas neste contexto, um estudo de caso foi conduzido para demonstrar a concepção de um jogo para um dispositivo móvel.

Caracterização do Problema
¨ 

“A criação de um Jogo não é uma tarefa trivial, exigindo do desenvolvedor uma larga experiência…” André Furtado (2006)
Apenas 32% dos projetos são entregues no prazo, devido a falta de integração entre ferramentas, processos imaturos…” Standish Group (2009)

¨ 

Caracterização do Problema
¨ 

Atualmente, existe uma grande quantidade de ferramentas e engines para criação de Jogos para programadores e não programadores, porém, poucas se detém ao o comportamento real de criação de um jogo, tampouco que simplifique o entendimento que se precisa ter para criação de jogos.

Linguagem de propósito Geral (GPL)

Fonte: http://www.slideshare.net/peterfriese/building-dsls-with-eclipse-1916333

Linguagem de domínio específico (DSL)
¨ 

Suponha que você precise descascar uma maçã...

Fonte: http://www.slideshare.net/peterfriese/building-dsls-with-eclipse-1916333

Linguagem de domínio específico (DSL)
¨ 

Para seu filho...

Fonte: http://www.slideshare.net/peterfriese/building-dsls-with-eclipse-1916333

Linguagem de domínio específico (DSL)
¨ 

Qual a ferramenta ideal para isto?

Fonte: http://www.slideshare.net/peterfriese/building-dsls-with-eclipse-1916333

Linguagem de domínio específico (DSL)
¨ 

Um canivete suiço?

Fonte: http://www.slideshare.net/peterfriese/building-dsls-with-eclipse-1916333

Linguagem de domínio específico (DSL)
¨ 

Mas se você quiser descascar mais maçãs?

Fonte: http://www.slideshare.net/peterfriese/building-dsls-with-eclipse-1916333

Linguagem de domínio específico (DSL)
¨ 

Utilizaria um canivete suiço?

Fonte: http://www.slideshare.net/peterfriese/building-dsls-with-eclipse-1916333

Linguagem de domínio específico (DSL)
¨ 

Ou uma ferramenta específica?

Linguagem de domínio específico (DSL)
¨ 

Uma DSL é...

Linguagem de domínio específico (DSL)
¨ 

A ferramenta específica para um trabalho específico

Linguagem de domínio específico (DSL)
¨ 

Exemplos de DSL’s
SQL
Select * from funcionario Where salario > 1000

HTML
<h1>DSL</h1>

CSS a:link {color:#FF0000; text-decoration:none;}

jQuery $(”div”).show(”Hello");

Trabalhos Relacionados
Critérios para a seleção dos trabalhos: - Ferramentas para criação de Jogos destinada a desenvolvedores e não desenvolvedores. - A proposta de uma linguagem que pudesse acelerar a criação de um jogo, que fosse integrada a um ambiente de desenvolvimento de software, o Eclipse. Ferramentas Selecionadas:
Ferramenta SharpLudos GameMaker ViGL - Video Game Language GameKa Fabricante André Furtado Yoyo Games Worcester Polytechnic Igor Augusto

Trabalhos Relacionados
¨ 

SharpLudos

Trabalhos Relacionados
¨ 

GameMaker

Trabalhos Relacionados
¨ 

ViGL – Video Game Language

DSL que tenta capturar os artefatos em comum entre diversos jogos. Ela permite ao desenvolvedor prototipar rapidamente jogos 2d.

Visão geral das funcionalidades da ViGL.

Trabalhos Relacionados
¨ 

GameKa

Trabalhos Relacionados
¨ 

Discussão
(i) Plugin do Visual Studio .NET Própia Plataforma Própia Plataforma (ii) Livre (porém limitada) GPL (iii) Windows Uma distribuição para cada SO Multiplataforma Multiplataforma

Ferramentas SharpLudos GameMaker ViGL GameKa

(i) Formas de distribuição (ii) Tipo de licença (iii) Sistemas Operacionais suportados

Fast Game Language
A linguagem é de uso livre (gratuito), utilizando o licenciamento MIT, onde é necessário a inclusão do aviso de copyright e de permissão em todas as cópias ou parte substanciais do software.

Fast Game Language
¨ 

Organização dos frameworks e da plataforma

FastGameLanguage

Xtext AndEngine Android
Fonte: Cannibal Game Development Platform

Fast Game Language
¨ 

Definição textual da linguagem
grammar org.fgl.core.dsl.FGDsl with org.eclipse.xtext.common.Terminals   generate fGDsl "http://www.fgl.org/core/dsl/FGDsl"   Model: 'Game' name=STRING '{' (imports +=Import)* (elements += Type)* (configs += GameConfig)* '}';     GameConfig: 'config' name=ID '=>' configName=ConfigName ; ConfigName: ID ('.' ID)* ; Import : 'import' importURI=STRING;   Type: SimpleType | Entity; SimpleType: 'type' name = ID; Entity : 'entity' name=ID ('extends' extends=[Entity]) ? '{' properties+=Property* '}';   Property: 'property'name=ID ':' type=[Type] (many?='[]')?;

Fast Game Language
¨ 

Linguagem FGL Integrada à IDE Eclipse

Fast Game Language
¨ 

Metamodelo Ecore

Fast Game Language
¨ 

Jogo criado com a DSL FGL

Restrições
Poucas funcionalidades implementadas na linguagem; ¨  A configuração da DSL não está pronta;
¨ 

Considerações e Trabalhos Futuros
¨ 
¨  ¨  ¨  ¨ 

Considerações Finais
Ferramenta para auxiliar o desenvolvedor de jogos na plataforma Android. Desacoplamento das configurações de um Jogo (cenário, personagens, sons, etc). Centralizar as definições e características comuns de um Jogo. Criação de um plugin do Eclipse para integrar facilmente a projetos já préestabelecidos.

¨ 
¨  ¨ 

Trabalhos Futuros
Tornar a linguagem comercial. Definir um padrão a ser seguido para quem precisar implementar um jogo do zero.

Resultados
¨ 

¨ 

Disponibilizar uma linguagem integrada ao ambiente de desenvolvimento Eclipse. Plugin para criação de Jogos na plataforma Android.

Dúvidas

Dúvidas ???

Referências
¨