Você está na página 1de 33

Mestrado Profissional em Engenharia de Software

Fast Game Language Uma Linguagem de Domnio Especfico para Modelagem de Games

MESTRANDO: JIMENS LIMA ORIENTADOR: VINICIUS GARCIA

Agenda

1.Resumo 2. Caracterizao do problema 3.Trabalhos Relacionados 4.Definio de DSL 5.Fast Game Language 6.Restries 7.Consideraes e Trabalhos Futuros 8.Resultados 9.Referncias

Resumo
Este trabalho explora a construo de uma Linguagem de Domnio Especfico (DSL) para facilitar a criao de jogos, auxiliando desenvolvedores que no possuem tanta experincia 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 concepo de um jogo para um dispositivo mvel.

Caracterizao do Problema

A criao de um Jogo no uma tarefa trivial, exigindo do desenvolvedor uma larga experincia Andr Furtado (2006)
Apenas 32% dos projetos so entregues no prazo, devido a falta de integrao entre ferramentas, processos imaturos Standish Group (2009)

Caracterizao do Problema

Atualmente, existe uma grande quantidade de ferramentas e engines para criao de Jogos para programadores e no programadores, porm, poucas se detm ao o comportamento real de criao de um jogo, tampouco que simplifique o entendimento que se precisa ter para criao de jogos.

Linguagem de propsito Geral (GPL)

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

Linguagem de domnio especfico (DSL)

Suponha que voc precise descascar uma ma...

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

Linguagem de domnio especfico (DSL)

Para seu filho...

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

Linguagem de domnio especfico (DSL)

Qual a ferramenta ideal para isto?

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

Linguagem de domnio especfico (DSL)

Um canivete suio?

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

Linguagem de domnio especfico (DSL)

Mas se voc quiser descascar mais mas?

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

Linguagem de domnio especfico (DSL)

Utilizaria um canivete suio?

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

Linguagem de domnio especfico (DSL)

Ou uma ferramenta especfica?

Linguagem de domnio especfico (DSL)

Uma DSL ...

Linguagem de domnio especfico (DSL)

A ferramenta especfica para um trabalho especfico

Linguagem de domnio especfico (DSL)

Exemplos de DSLs
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
Critrios para a seleo dos trabalhos: - Ferramentas para criao de Jogos destinada a desenvolvedores e no desenvolvedores. - A proposta de uma linguagem que pudesse acelerar a criao 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.

Viso geral das funcionalidades da ViGL.

Trabalhos Relacionados

GameKa

Trabalhos Relacionados

Discusso
(i) Plugin do Visual Studio .NET Prpia Plataforma Prpia Plataforma (ii) Livre (porm limitada) GPL (iii) Windows Uma distribuio para cada SO Multiplataforma Multiplataforma

Ferramentas SharpLudos GameMaker ViGL GameKa

(i) Formas de distribuio (ii) Tipo de licena (iii) Sistemas Operacionais suportados

Fast Game Language


A linguagem de uso livre (gratuito), utilizando o licenciamento MIT, onde necessrio a incluso do aviso de copyright e de permisso em todas as cpias ou parte substanciais do software.

Fast Game Language

Organizao dos frameworks e da plataforma

FastGameLanguage

Xtext AndEngine Android


Fonte: Cannibal Game Development Platform

Fast Game Language

Definio 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

Restries
Poucas funcionalidades implementadas na linguagem; A configurao da DSL no est pronta;

Consideraes e Trabalhos Futuros

Consideraes Finais
Ferramenta para auxiliar o desenvolvedor de jogos na plataforma Android. Desacoplamento das configuraes de um Jogo (cenrio, personagens, sons, etc). Centralizar as definies e caractersticas comuns de um Jogo. Criao de um plugin do Eclipse para integrar facilmente a projetos j prestabelecidos.

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

Resultados

Disponibilizar uma linguagem integrada ao ambiente de desenvolvimento Eclipse. Plugin para criao de Jogos na plataforma Android.

Dvidas

Dvidas ???

Referncias