Vous êtes sur la page 1sur 121

Universidade Fernando Pessoa

Modelo de Engenharia de Software para o


Desenvolvimento de Jogos e Simulaes
Interactivas

Carlos Eduardo L Velasquez

Porto, 29 de Dezembro de 2009


Universidade Fernando Pessoa

Modelo de Engenharia de Software para o


Desenvolvimento de Jogos e Simulaes
Interactivas

Carlos Eduardo L Velasquez

Porto, 29 de Dezembro de 2009


Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Carlos Eduardo L Velasquez

Modelo de Engenharia de Software para o


Desenvolvimento de Jogos e Simulaes
Interactivas

Orientador: Professor Dr. Jos ngelo Braga de Vasconcelos

Dissertao apresentada Universidade Fernando Pessoa como parte dos


requisitos para obteno do grau de Mestre em Computao Mvel.

I
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Resumo
Portugal demonstra uma grande debilidade na indstria dos jogos de
computador, pois detm poucas empresas dedicadas a este ramo. Assim, pergunta-se
qual ser a razo para este facto. A obteno da resposta vai ao encontro do objectivo
desta dissertao, sendo que faltam mais cursos dedicados ao ramo e, tambm, uma
metodologia para ajudar ao desenvolvimento dos jogos. Recentemente foram criados
dois cursos de desenvolvimento de jogos em Portugal, no sendo este nmero de todo
estimulante. Por outro lado, existem infindveis metodologias para a criao de
Software, mas no existe uma mais especfica, exclusivamente dedicada ao
desenvolvimento de jogos. Esta dissertao apresentar uma possvel metodologia de
engenharia de software para o desenvolvimento de jogos de computador e far um
paralelismo entre jogos de computador e simulaes interactivas, demonstrando que na
realidade so duas reas idnticas. O estudo emprico pretende demonstrar o interesse
dos alunos do ensino superior do curso de Engenharia Informtica pelo
desenvolvimento de jogos de computador. A criao de uma metodologia de engenharia
de software para o desenvolvimento de jogos ser apenas um apoio para um curso da
rea e, caso se comprove exequvel, este no perder nenhuma das vertentes de interesse
do curso de engenharia informtica, promovendo o estmulo dos seus estudantes. Deste
modo, esta metodologia torna-se uma ferramenta, que visa estimular a comunidade
acadmica para esta realidade.

II
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Abstract
Portugal shows a great weakness in the industry of computer games, it has few
companies dedicated to this industry. So, the question arises what is the reason for their
absence. Obtaining the response is consistent with the objective of this thesis, being that
we are missing more courses devoted to business and also a methodology to help the
development of games. They just created two courses in game development in Portugal,
but this number is not at all exciting. On the other hand, there are countless methods for
creating software, but theres not a more specific, exclusively dedicated to game
development. This paper will present one possible method of software engineering for
the development of computer games and makes a parallel between computer games and
interactive simulations, showing that, in reality are two similar areas. The empirical
study pretends to demonstrate the interest of students for higher education courses in the
Engineering development of computer games. The creation of a methodology of
software engineering for game development is only a support for a course in the area, if
it is proved feasible, it will not lose any of the aspects of interest to the course of
computer engineering, promoting the stimulation of their students. Thus, this approach
becomes a tool to stimulate the academic community to this reality.

III
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Synthse
Portugal prsente encore une dbilit en ce qui concerne l`industrie des jeux de
l`ordinateur, car il y a peu d`entreprises qui travaillent cette branche de connaissances.
Donc, on demande quelle sera la cause de ce fait. La rponse cette question, nous
emmne l`objectif de cette dissertation, car il nous manque encore plus de cours qui
s`en occupent et il faut, aussi, une mthodologie qui aide le dveloppement des jeux.
Rcemment, au Portugal, on a cre deux cours pour le dveloppement de ces jeux, mais
ce nombre n`est pas suffisant pour rpondre aux besoins des jeunes intresss.
Cependant, il y a beaucoup de mthodologies pour la cration de Software, mais il n`y a
aucune plus spcifique qui s`occupe, exclusivement, du dveloppement de ces jeux.
Alors, cette dissertation prsente une mthodologie possible du ct de l`Ingnierie de
Software pour le dveloppement des jeux de l`ordinateur. Elle fera un paralllisme entre
les jeux de l`ordinateur et les simulations interactives en mettant en vidence qu`il s`agit
de deux champs identiques. Cet tude empirique veut, aussi, dmontrer lintrt des
tudiants de l`enseignement suprieur du cours de l `Ingnierie Informatique par ce
thme. La cration dune mthodologie de l`Ingnierie de Software pour le
dveloppement des jeux sera seulement un appui pour un cours dans ce domaine et, s`il
est excutable, il ne perdra pas un des points d`intrt du cours de L`Ingnierie
Informatique, en promouvant, simultanment, le stimule de ses tudiants. Par
consquent, cette mthodologie est vraiment importante puisqu` elle vise
l`encouragement de la communaut acadmique pour cette ralit.

IV
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Ao meu orientador, Professor Doutor Jos ngelo Braga de Vasconcelos, um


agradecimento especial por toda a dedicao e esforo demonstrados durante a
elaborao deste trabalho, especialmente pela pacincia.

Ao Professor Doutor Nuno Jorge Gonalves de Magalhes Ribeiro, pelo apoio


demonstrado e a divulgao do questionrio aos alunos de Engenharia Informtica da
Universidade Fernando Pessoa.

Ao Professor Doutor Rui Leandro Alves da Costa Maia e ao ES-CEFOC, pelo


apoio e o espao online utilizado para a realizao do questionrio.

A todos os restantes professores do curso de Engenharia Informtica da


Universidade Fernando Pessoa.

minha namorada Estela Maria Pinheiro Enxurreira por todas as horas perdidas
a ajudar-me.

Aos meus pais Gabriel Pedro Dias Velasques e Maria Joo Vilaa L e esposa
do meu pai, quem eu considero como uma segunda me, Maria de Ftima Lopes
Velasques, por toda a ajuda que me prestaram durante a elaborao do trabalho.

Ao meu irmo e esposa, Joo Pedro L Velasquez e Ana Filipa da Costa Pinto
pela ajuda prestada na reviso do texto

Aos pais da minha namorada, Adriano Manuel da Graa Enxurreira e Orqudea


Maria da Silva Pinheiro por toda a pacincia que demonstraram.

Aos meus amigos e colegas pela ajuda e apoio que tem vindo a demonstrar
durante toda a minha vida acadmica.

Obrigado

V
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

ndice
1. INTRODUO ............................................................................................................................... 1

1.1. DEFINIO DO PROBLEMA ...................................................................................................... 2

1.2. OBJECTIVOS DO ESTUDO ........................................................................................................ 3

1.3. A RELEVNCIA DA INVESTIGAO ......................................................................................... 3

1.4. A ESTRUTURA DA DISSERTAO ............................................................................................ 4

1.5. A METODOLOGIA DA DISSERTAO ....................................................................................... 5

1.6. AS LIMITAES DO ESTUDO ................................................................................................... 6

2. ENGENHARIA DE SOFTWARE ................................................................................................. 7

2.1. INTRODUO .......................................................................................................................... 7

2.2. VISO CLSSICA DA ENGENHARIA DE SOFTWARE .................................................................. 7

2.3. ENGENHARIA DE REQUISITOS DE SOFTWARE .......................................................................... 8

2.3.1. Requisitos de Software ............................................................................................. 9

2.3.2. Identificao, anlise, e definio de requisitos .................................................... 10

2.4. DESIGN DO SOFTWARE ......................................................................................................... 10

2.4.1. Arquitectura de Software........................................................................................ 11

2.4.2. Processo do Design de Software ............................................................................ 12

2.5. CONSTRUO DO SOFTWARE................................................................................................ 12

2.5.1. Noes Fundamentais ............................................................................................ 12

2.5.2. Gesto da Construo de Software ........................................................................ 14

2.5.3. Consideraes Prticas .......................................................................................... 14

2.6. TESTES DO SOFTWARE .......................................................................................................... 15

2.7. MANUTENO DO SOFTWARE .............................................................................................. 16

2.8. MODELOS CLSSICOS ........................................................................................................... 16

VI
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

2.8.1. Modelo Cascata (WaterFall) .................................................................................. 17

2.8.2. Modelo Espiral ....................................................................................................... 17

2.8.3. Prototipagem .......................................................................................................... 18

2.9. MODELOS GEIS................................................................................................................... 19

2.9.1. Rapid Aplication Development (RAD) ................................................................... 19

2.9.2. Modelo gil (SCRUM) ........................................................................................... 20

2.9.3. Stage Gate .............................................................................................................. 21

2.9.4. Extreme Programming ........................................................................................... 22

3. SIMULAES VISUAIS INTERACTIVAS ............................................................................. 23

3.1. INTRODUO ........................................................................................................................ 23

3.2. REA DA AERONUTICA ...................................................................................................... 23

3.3. REA DA MEDICINA ............................................................................................................. 24

3.4. REA DA ARQUITECTURA..................................................................................................... 25

3.5. REA MILITAR ..................................................................................................................... 25

3.6. EXEMPLO PRTICO DE UMA SIMULAO 3D ......................................................................... 26

3.7. PROGRAMAO DE SIMULAES COM FERRAMENTAS DE DESENVOLVIMENTO DE JOGOS ..... 27

3.7.1. XNA Game Studio................................................................................................... 27

3.7.2. Projecto Scratch do MIT ........................................................................................ 27

4. INDUSTRIA DOS JOGOS DE COMPUTADOR ...................................................................... 29

4.1. INTRODUO ........................................................................................................................ 29

4.2. HISTRIA RECENTE DA PROGRAMAO DE JOGOS ............................................................... 30

4.3. A INDSTRIA DOS JOGOS DE COMPUTADOR.......................................................................... 32

4.4. DESENVOLVIMENTO DE JOGOS DE COMPUTADOR.................................................................. 33

5. ENGENHARIA DE SOFTWARE PARA A CONSTRUO DE JOGOS ............................. 36

5.1. INTRODUO ........................................................................................................................ 36

VII
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

5.2. PROCESSO DE CRIAO DE UM JOGO ..................................................................................... 36

5.3. DESIGN DE JOGOS ................................................................................................................. 38

5.3.1. Ideia de Jogo .......................................................................................................... 38

5.3.2. Concepo de jogo ................................................................................................. 39

5.3.3. Temas do Jogo........................................................................................................ 40

5.4. CONCEPO DO JOGO ........................................................................................................... 41

5.4.1. Ideia........................................................................................................................ 41

5.4.2. Ideia de Jogo .......................................................................................................... 41

5.4.3. Enredo de Jogo....................................................................................................... 42

5.5. DOCUMENTO DO PROCESSO DE DESENVOLVIMENTO DO JOGO ............................................. 43

5.5.1. Mecanismos Principais .......................................................................................... 44

5.5.2. Narrativa e Histria do jogo .................................................................................. 44

5.5.3. Interactividade do jogo .......................................................................................... 45

5.6. TECNOLOGIAS DE APOIO AO DESENVOLVIMENTO.................................................................. 49

5.7. PLATAFORMA XNA .............................................................................................................. 52

5.8. CODIFICAO ....................................................................................................................... 52

5.8.1. Inicializar o Projecto de XNA ................................................................................ 53

5.8.2. Inicializar componentes ......................................................................................... 55

5.8.3. Desenhar Componentes .......................................................................................... 57

5.8.4. Update do Gameplay .............................................................................................. 59

5.9. PROJECTO SCRATCH ............................................................................................................. 61

6. ESTUDO EMPRICO .................................................................................................................. 64

6.1. OBJECTOS DE ESTUDO .......................................................................................................... 64

6.2. MOTIVAO ......................................................................................................................... 64

VIII
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

6.3. MTODO DE RECOLHA .......................................................................................................... 66

6.4. QUESTIONRIO - ANLISE DE RESULTADOS ......................................................................... 66

7. CONCLUSO ............................................................................................................................... 76

8. BIBLIOGRAFIA ........................................................................................................................... 78

9. ANEXOS ........................................................................................................................................ 81

9.1. QUESTIONRIO ESTUDO DO PERFIL DE UM ALUNO PARA UM CURSO SUPERIOR DE


INFORMTICA NO MBITO DA PROGRAMAO DE JOGOS ...................................................... 81

9.2. RESULTADOS DO QUESTIONRIO .......................................................................................... 85

IX
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

ndice de Grficos

GRFICO 1 SISTEMA DE COORDENADAS ............................................................................................................... 56


GRFICO 2 MODIFICAO DE COORDENADAS ....................................................................................................... 57
GRFICO 3 COORDENADAS DE UM SPRITE ............................................................................................................ 58
GRFICO 4 TIPO DE CONHECIMENTO CONSIDERA CRTICO PARA UM ENGENHEIRO INFORMTICO? ................................... 68
GRFICO 5 TIPO DE CONHECIMENTO CONSIDERA CRTICO PARA UM ENGENHEIRO INFORMTICO? ................................... 68
GRFICO 6 GOSTA DE JOGOS DE COMPUTADOR? ................................................................................................... 69
GRFICO 7 GOSTAVA DE SABER COMO FUNCIONAM (E SO PROGRAMADOS) OS JOGOS? ............................................... 69
GRFICO 8 GOSTARIA DE SABER CRIAR OS SEUS PRPRIOS JOGOS? ............................................................................ 69
GRFICO 9 OGOS DE COMPUTADOR SO UM FACTOR DE MOTIVAO PARA O INGRESSO DE ALUNOS NO ENSINO SUPERIOR... 70
GRFICO 10 MOTIVAO UM FACTOR ESSENCIAL PARA O PROGRESSO DO ALUNO NO ENSINO SUPERIOR? ....................... 70
GRFICO 11 O QUE PODER MOTIVAR MAIS O PROGRESSO DE UM ALUNO? ................................................................ 71
GRFICO 12 CONCORDA COM UMA LGICA DE APRENDIZAGEM BASEADA NA PROGRAMAO DE JOGOS .......................... 72
GRFICO 13 DE PROGRAMADOR DE JOGOS, CONSIDERA QUE ESTA UMA PROFISSO COM FUTURO? ............................... 72
GRFICO 14 CONSIDERA ADEQUADA A UTILIZAO DE UMA APRENDIZAGEM BASEADA NA PROGRAMAO DE JOGOS .......... 72
GRFICO 15 A PROGRAMAO DE JOGOS NECESSITA DE METODOLOGIAS AVANADAS DE INVESTIGAO .......................... 72
GRFICO 16 EM QUE NVEL DE EDUCAO CONSIDERA QUE A PROGRAMAO DE JOGOS, PODE SER INSERIDA ................... 73
GRFICO 17 IMPORTNCIA ATRIBUI NECESSIDADE DE EXISTIREM CURSOS DEDICADOS PROGRAMAO DE JOGOS ........... 74
GRFICO 18 QUAIS SO AS LINGUAGENS DE PROGRAMAO DE JOGOS QUE CONHECE? ................................................ 75

X
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

ndice de Figuras

FIGURA 1 MODELO DE UMA CASA, VISO CENTRAL ................................................................................................ 26


FIGURA 2 MODELO DE UMA CASA, VISO TRANSVERSAL .......................................................................................... 26
FIGURA 3 MODELO DE UMA CASA, VISO 3D ........................................................................................................ 26
FIGURA 4 BLOCOS DE SCRATCH .......................................................................................................................... 28
FIGURA 5 BLOCO SE DO SCRATCH ....................................................................................................................... 28
FIGURA 6 TENNIS FOR TWO ............................................................................................................................... 30
FIGURA 7 XNA MOTOR DE JOGO ........................................................................................................................ 53
FIGURA 8 ADICIONAR CONTEDOS ..................................................................................................................... 55
FIGURA 9 AMBIENTE INICIAL DO SCRATCH ............................................................................................................ 61
FIGURA 10 INSERO DE SPRITES NO SCRATCH ...................................................................................................... 62
FIGURA 11 BLOCOS DE SCRIPT DO JOGO EM SCRATCH ............................................................................................. 62

XI
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

ndice de Tabelas

TABELA 1 NDICE DO GAME DESIGN DOCUMENT ................................................................................................... 45


TABELA 2 COMPARAO ENTRE TECNOLOGIAS ...................................................................................................... 52

XII
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

ndice de Esquemas

ESQUEMA 1 PROCESSO DE ENGENHARIA DE REQUISITOS (ADAPTADO DE SOMMERVILLE 2004) ........................................ 8


ESQUEMA 2 PROCESSO DO DESIGN DE SOFTWARE (ADAPTADO DE SOMMERVILLE 2004) .............................................. 12
ESQUEMA 3 NOES FUNDAMENTAIS CONSTRUO DE SOFTWARE (ADAPTADO DE SOMMERVILLE 2004) .................... 13
ESQUEMA 4 GESTO - CONSTRUO DE SOFTWARE (ADAPTADO DE SOMMERVILLE 2004)............................................ 14
ESQUEMA 5 CONSIDERAES PRTICAS CONSTRUO DE SOFTWARE (ADAPTADO DE SOMMERVILLE 2004) .................. 15
ESQUEMA 6 MODELO WATERFALL ..................................................................................................................... 17
ESQUEMA 7 MODELO ESPIRAL (BOEHM 1988) .................................................................................................... 18
ESQUEMA 8 PROCESSO DA PROTOTIPAGEM (ADAPTADO DE SOMMERVILLE 2004) ....................................................... 19
ESQUEMA 9 MODELO RAD............................................................................................................................... 20
ESQUEMA 10 MODELO DE ENGENHARIA DE SOFTWARE ORIENTADA PROGRAMAO DE JOGOS ................................... 37

XIII
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

1. Introduo

O objecto primrio de um jogo de computador, criar uma quantidade de


estruturas fundamentais de fcil utilizao, para que haja um interface entre humano e a
mquina o mais natural possvel.

Muita gente sabe quando que teve o primeiro computador, mas poucos sabem
desde quando se tornaram bons utilizadores, dessas mquinas que hoje em dia inundam
o mercado de trabalho, empresas e casas.

Se a informtica apesar de ser supostamente uma rea complexa, tornou-se, hoje


em dia, imprescindvel para a nossa vida, como que as pessoas tiveram e tm tanta
facilidade em utiliz-la? Para isto contribuiu a tarefa que tanto diverte fazer e refazer
uma infinidade de vezes! O Jogo. Jogar em todo o tipo de hardware que tenha sido
considerado topo de gama na altura. Do ponto de vista do utilizador, um ptimo
passatempo e ajuda a adquirir uma capacidade de interaco superior entre humano e
computador pessoal (PC).

No caso do programador ou equipa de programao de jogos, tudo o que foi


alcanado no ponto de vista do utilizador apenas o resultado de todo um imenso
processo de imaginao, de criao, trabalho e muito mais. Acima de tudo, a construo
de um jogo o seu mundo real, emprego e sustento; mas na sua perspectiva, um jogo
uma viso do mundo a sua, como ele , como ele acha que , ou at como ele gostaria
que o mundo fosse. Depois dos sistemas operativos e da inteligncia artificial a criao
de jogos actualmente para os programadores o ltimo desafio, mas que ao contrrio da
programao anterior esta exige do hardware uma evoluo ainda mais rpida, com o
ultrapassar de limites antes inimaginveis. O mundo em que vivemos uma realidade, o
mundo dos jogos uma realidade virtual cabe ao programador imaginar, estruturar,
construir o jogo, cabe ao utilizador/jogador utiliz-lo nos seus limites. Assim um
utilizador/jogador joga para se divertir e um programador/jogador joga para trabalhar.

Mas isso no tudo, os jogos so, hoje em dia, um impulsionador titnico de


toda a indstria informtica, tanto a nvel de hardware, bem como de novas tcnicas de
programao de software e novas linguagens, que podem ser utilizadas em aplicaes

1
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

de outras reas como na engenharia, na simulao de barragens, pontes e edifcios, na


arquitectura, com a simulao animada de ambientes sociais e de espaos construdos,
na medicina na simulao de operaes cirrgicas e at no apoio a essas mesmas
operaes.

Tendo em conta que o tempo que um sistema operativo, como por exemplo o
Windows XP, levou para dar a vez ao Windows Vista (cerca de 7 anos), se a indstria
de hardware acompanhasse em demora a criao dos sistemas operativos, s agora que
estariam a ser criadas novos dispositivos de memria de computadores (RAM),
Motherboards e disco rgidos, pois no havia necessidade de evoluir muito para alm
dos processadores anteriores. Foram tambm jogos, com a sua constante exigncia e
apetite de novas tecnologias e ferramentas para atingirem novos patamares de qualidade
que empurraram a fasquia das peas fsicas para nveis em tempo imprevisveis.
Orientando assim os consumidores assduos de jogos de computador a adquirirem sem
hesitar essas novas peas, necessrias para experimentar os jogos de modo a atingir os
limites que eles permitem. Neste sentido os jogos de computador definem muitas e
variadas fontes de rendimento e de evoluo para toda a indstria informtica.

Deste modo se assim to bvio que as mais-valias, as vantagens e a


percentagem de lucro dos jogos so to elevadas, porque que h to pouco
investimento nacional nesta rea da indstria? O problema que o desenvolvimento da
programao de jogos no foi considerada como prioritria e como tal no havia uma
aprendizagem especializada para o efeito at h bem pouco tempo e mesmo agora
insuficiente.

Com esta breve introduo espera-se afastar alguns preconceitos que existem
sobre os jogos de computador, as suas aplicaes, no s ldicas, e como esta rea da
informtica tem tido um papel muito importante e qui decisivo no desenvolvimento
do software de todas as reas do saber. Se para uns o jogo virtual o limite, para outros,
da microcirurgia conquista do espao, o limite a imaginao.

1.1. Definio do Problema

O principal problema reside no ensino das tecnologias informticas, por um lado


por no se achar necessrio e por outro porque no existe espao num curso superior
para leccionar programao de jogos. Assim o que necessrio um modelo de ensino

2
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

baseado no j utilizado mas orientado para o desenvolvimento de jogos. Algumas das


cadeiras mais especficas do curso de Engenharia Informtica podem facilmente ser
adapatadas de modo a introduzir conceitos de programao de jogos no seu programa. O
modelo de Engenharia de Software existente foi criado de modo a ajudar ao
desenvolvimento de todo o tipo de software, mas se um jogo de computador tambm
um software, porque no juntar os dois.

1.2. Objectivos do Estudo

O principal objectivo desta dissertao ser apresentar um modelo de engenharia


de software para o desenvolvimento de jogos de computador e simulaes interactivas.
Apesar de serem duas reas diferentes do desenvolvimento de software ambas
dependem de ambientes de trabalho idnticos. necessrio reparar que uma simulao
interactiva de uma casa, depende de um motor de grficos, por exemplo 3D, tal como
um jogo, assim um modelo de desenvolvimento dedicado aos jogos poder facilmente
ser usado para as simulaes interactivas. Tal como tambm ser demonstrado neste
texto, a interactividade o que faz do jogo de computador um jogo, sem esta no seria
possvel interagir com as personagens, objectos e ambientes, logo sem interactividade
no existiria jogo.

Com estes conceitos em mente ser desenvolvido um modelo de possvel


utilizao para a criao de ambos os casos, demonstrando a relevncia que o ensino
dedicado para esta rea seria uma boa hiptese tanto para os alunos como possivelmente
para a indstria de jogos.

1.3. A Relevncia da Investigao

O ensino utilizando jogos de computadores j uma realidade. possvel, por


exemplo, ensinar, a um baixo nvel, a contar utilizando jogos ou, a um nvel mais
elevado, ensinar a programar ou fazer clculos matemticos. Tudo dependeria do
envolvimento do jogador com o jogo e a vontade que o jogo incutiria no jogador de
chegar mais longe.

Um dos melhores processos de ensino manter o aluno interessado em aprender


e criar a vontade de ver mais, chegar mais longe, e a mesma razo que leva um
jogador a querer chegar ao fim do um jogo. Desvendar o caminho, resolver o ltimo

3
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

enigma. Dependendo do jogo, o jogador aprende sempre alguma coisa, porque no usar
esta caracterstica para o ensino?

Actualmente o jogador no aprende s com o jogo, com numa nova abordagem


na tecnologia dos jogos, o computador que aprende com o jogador. Ou seja os jogos
em vez de ensinarem o jogador a fazer algo, permitem que seja o jogador a ensinar o
jogo. O conceito tem como sigla GAWP (Games With a Purpose) que engloba um tipo
de jogos que retiram do jogador capacidades que o jogo no consegue obter sozinho.
Um exemplo muito simples o de dar ttulos a imagens. Tudo indica que o ensino e os
jogos de computadores se podem completar, assim, o que falta para elevar a fasquia
introduzir a criao de jogos no ensino superior.

Um aluno ser mais facilmente motivado a seguir um certo ramo se existir


alguma componente mais relevante e encontrar desafios mais motivantes no inicio dos
seus estudos. Falando com alunos, muitos demonstraram que a motivao que os levou
a entrar para o ramo da informtica foi a dos jogos de computadores.

Os benefcios do desenvolvimento de jogos vo bem mais longe do que simples


ideias populares que jogos so brinquedos. Jogos de computador necessitam da
integrao de vrias tcnicas de computao grfica, interfaces multimdia, redes e
inteligncia artificial. Como resultado os jogos podem ser a base e a estrutura de
projectos mais interessantes para os alunos, aumentando assim o seu empenho no
trabalho.

Assim estes atributos sugerem que em quase todos os cursos, os jogos podem ser
uma ferramenta poderosa para a criao de profissionais excepcionais.

1.4. A Estrutura da Dissertao

O restante documento est dividido em seis captulos, nomeadamente,


Engenharia de Software, Simulaes Visuais Interactivas, Industria dos Jogos de
Computador, Engenharia de Software para a Construo de Jogos, Estudo Emprico e
por ltimo a Concluso.

Na seco de Engenharia de Software abordado o modelo convencional de


desenvolvimento de software utilizando principalmente uma referncia nesta rea, o

4
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Software Engeneering Body of Knowledge [SWEBOK 2004], como guio para o


processo. So tambm apresentadas as tendncias da engenharia de software tais como
o Agile e extreme programming.

Na seco de Simulaes Visuais Interactivas, aborda-se algumas das reas nas


quais as tecnologias de programao de jogos podem e so usadas de modo a ajudar a,
por exemplo, ter uma melhor percepo do que o utilizador ir efectuar ou mesmo
aprender a fazer algo.

Na seco de Industria dos Jogos de Computador abordada a histria dos jogos


e o processo de desenvolvimento de jogos de computador na sua generalidade, pois para
cada tipo de jogo existam algumas diferenas.

Na seco de Engenharia de Software para a Construo de Jogos ser abordada


a criao de um modelo que fundir o modelo geral de engenharia de software com o
processo necessrio para a criao de jogos, criando deste modo um modelo de
engenharia de software para simulaes interactivas / jogos.

Na seco de Estudo Emprico sero abordados os questionrios efectuados no


mbito desta dissertao, de modo a considerar se este tipo de modelo necessrio e se
existe interesse pelo lado dos alunos a seguir esta abordagem de ensino em cursos
superiores na rea da informtica.

Na seco de Concluso so descritos os resultados obtidos, os objectivos


cumpridos, a fiabilidade do modelo e as suas limitaes. O trabalho futuro a
desenvolver tambm ser abordado nesta seco.

1.5. A Metodologia da Dissertao

A metodologia da dissertao compreende uma reviso e anlise da literatura nas


reas de engenharia de software e indstrias de jogos. Esta reviso e anlise estaro
inseridas nos captulos 2 - Engenharia de Software, 3 - Simulaes Visuais Interactivas
e 4 - Industria dos Jogos de Computador. Com base nestes pressupostos principais de
Engenharia de Software e nos requisitos gerais de programao de um jogo de
computador, desenvolvido um modelo de engenharia de software para o
desenvolvimento de jogos de computador que ser apresentado no captulo 5.

5
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

O captulo 6 apresenta o desenvolvimento de um estudo emprico sobre o


interesse dos alunos em relao insero de programao de jogos no plano curricular
de um curso na rea da informtica, recorrendo a um questionrio que foi efectuado via
internet aos alunos do Curso Superior de Engenharia Informtica de Universidade
Fernando Pessoa. Neste captulo estaro tambm descritos os resultados e as concluses
obtidas do estudo emprico. O captulo 7 conclui a dissertao apresentando as
concluses retiradas do trabalho efectuado.

1.6. As Limitaes do Estudo

Para uma melhor presena da opinio dos alunos do ensino superior no ramo da
informtica poder-se-ia ter introduzido o questionrio noutros ambientes fora da
Universidade Fernando Pessoa, mas o mesmo no foi possvel. Poder-se-ia tambm
procurar levar o mesmo questionrio a alunos do ensino secundrio, principalmente do
12 ano de escolaridade, de modo a perceber exactamente se a programao de jogos
afectaria a escolha destes no curso a seguir.

6
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

2. Engenharia de Software

2.1. Introduo

A Engenharia uma cincia que aplica o conhecimento das cincias naturais e


da matemtica, em conjunto com a experincia adquirida e com as prticas
desenvolvidas em projectos reais. O objectivo principal a criao de benefcios para
indivduos e organizaes atravs de uma utilizao eficaz e eficiente de recursos
humanos e fsicos. A Engenharia de Software segue a mesma linha de orientao:
definio, desenvolvimento e manuteno de software til para as organizaes tendo
em conta uma gesto dinmica dos recursos de hardware, software, humanos e
financeiros. A viso clssica da disciplina de engenharia de software no mbito das
cincias da computao visa o desenvolvimento e a manuteno do ciclo de vida do
software. Esta disciplina estabelece e utiliza slidos princpios de engenharia para obter
um software fivel, o mais econmico possvel e que funcione correctamente em
mquinas reais. A Engenharia de Software estuda os mtodos, tcnicas, procedimentos e
ferramentas que permitem representar, especificar, desenvolver e manter aplicaes de
software associadas aos diferentes domnios do nosso conhecimento.

2.2. Viso clssica da Engenharia de Software

A metodologia clssica de engenharia de software engloba um conjunto de


tarefas a desempenhar durante o ciclo de vida do software. Os diferentes mtodos
utilizados definem a forma como construir o software e esto associados s diversas
fases de desenvolvimento e manuteno:

a) Requisitos de Software

b) Design de Software

c) Construo de Software

d) Testes de Software

d) Manuteno de Software

O ciclo de vida de um projecto de software deve contemplar este conjunto de


fases e um respectivo conjunto de resultados sob a forma de documentao, prottipos

7
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

de software ou simplesmente artefactos de software que sero apresentados


gradualmente entidade (normalmente designada por cliente) a que se destina o
projecto de desenvolvimento de software. Estas fases so explicadas em mais detalhe a
seguir. A viso clssica de Engenharia de Software segue principalmente o modelo
Cascata, dividindo o processo completo em fase, onde para se comear a prxima tem
de primeiro se terminar a anterior. Este modelo explicado mais detalhadamente neste
captulo.

2.3. Engenharia de Requisitos de Software

A anlise e recolha de requisitos de software deu origem a uma rea nova na


engenharia, actualmente descrita por Engenharia de Requisitos. Os requisitos de
software exprimem as necessidades e limitaes do produto de software que contribuem
para a soluo do mesmo problema do mundo real. A rea de conhecimento dos
requisitos de software est preocupada com a anlise, especificao e validao de
requisitos de software. Caso estas actividades sejam executadas deficientemente os
projectos de software ficam criticamente vulnerveis.

O processo de Engenharia de Requisitos um conjunto de actividades que leva


produo da definio e especificao de requisitos [Sommerville 2004]. Estas
actividades, quando completas, do origem ao documento de requisitos. Este documento
define assim o problema que ser resolvido pelo novo software.

Anlise de Requisitos

Definio de Requisitos

Modelos do Sistema
Especificao de
Requisitos

Documento de
Requisitos

Esquema 1 Processo de Engenharia de Requisitos (adaptado de Sommerville 2004)

8
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

O documento de requisitos de software contem os requisitos do sistema, assim


o documento oficial, necessrio para os programadores do sistema. O documento de
requisitos inclui a definio e a especificao de todos os requisitos, mas este
documento s dever demonstrar o que o software deve fazer e no como o deve fazer.
Deste modo poder-se- espelhar cada requisito para a parte de design de software que
use o mesmo requisito.

2.3.1. Requisitos de Software

A definio de requisitos de software uma descrio abstracta dos servios que


o software dever providenciar e as restries sobre as quais deve funcionar
[Sommerville 2004]. Isto significa que todos os servios, funes e operaes que o
software ter sero aqui descritos em linguagem natural e diagramas intuitivos. Um
requisito uma afirmao que estabelece como o software, que vai ser criado, se deve
comportar. Uma caracterstica essencial que o requisito de software seja verificvel.
Por outras palavras, depois de um requisito de software estar implementado, o software
tem de se comportar de acordo com as condies estabelecidas no requisito, ou seja no
mais bsico possvel um requisito de software uma propriedade que tem de ser
demonstrada para resolver algum problema do mundo real.

Durante esta fase existem dois tipos de requisitos, funcionais e no funcionais.


Requisitos Funcionais descrevem funes que o software executa. Por exemplo a
formatao de algum texto ou operao de sistema. Requisitos no Funcionais so os
que agem para restringir a soluo, ou seja os requisitos que se aplicam aos standards ou
qualidade de performance para restringir o design da operao do sistema. Os
Requisitos no Funcionais ainda devem ser divididos em mais uma serie de requisitos.
Neste caso existem os requisitos do produto, do processo e requisitos externos. Os
requisitos do produto representam as necessidades que o software ter de cumprir, tipo
velocidades de transferncia de dados ou clculos. Os requisitos do processo so datas
de entregam standards necessrios e os requisitos externos englobam requisitos
administrativos das organizaes ou necessidades ticas.

A especificao de requisitos adiciona mais informao definio de


requisitos, assim introduzindo o mais nfimo pormenor de cada requisito. Por causa
deste nvel de detalhe o uso de uma linguagem natural, pode no ser o mtodo mais

9
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

eficaz e deste modo necessrio encontrar alternativas para descrever estes requisitos.
Algumas alternativas incluem notaes grficas, especificaes matemticas e outras.

2.3.2. Identificao, anlise, e definio de requisitos

Se o projecto for vivel, ento torna-se necessrio planear o seu


desenvolvimento. preciso, nesta fase, definir a equipa de desenvolvimento, as
actividades necessrias, atribuir pessoas s actividades e estimar o tempo para cada
actividade bem como para o projecto. Nesta fase tem que existir uma boa comunicao
entre a empresa e o cliente de modo a que todos os requisitos do sistema sejam bem
entendidos. Esta fase dever estabelecer os requisitos do sistema de que o software ir
fazer parte, ou seja, a identificao do conjunto de requisitos que satisfazem o novo
sistema de software

Em qualquer organizao existem processos de troca e partilha de fluxos de


informao que precisam de ser bem analisados pela equipa de desenvolvimento do
Software. Em funo dos requisitos identificados anteriormente, necessrio
desenvolver um trabalho de anlise nos domnios de informao a representar, funes
pretendidas, desempenho e interface com o utilizador.

Uma vez efectuada a anlise a equipa pode ento passar ao prximo passo, trata-
se agora de elaborar o design de software. Ao contrrio do que se possa pensar o design
no implica apenas a apresentao do ambiente do sistema, ele inclui principalmente a
arquitectura de como o software se comportar.

2.4. Design do Software

Com a crescente complexidade dos sistemas de software a necessidade da fase


de design de software torna-se ainda mais evidente. Esta complexidade implica um risco
acrescido do sistema no alcanar os seus objectivos. Para se evitar este risco
necessrio uma plano especfico para o desenvolvimento do software. O design de
Software facilita assim a criao do software fornecendo um guia e possibilita as
primeiras avaliaes da aplicao

Como est descrito no Software Engineering Body of Knowledge, Design is


defined as both the process of defining the architecture, components, interfaces and

10
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

other characteristics of a system and the result of [that] process, o design definido
como tanto o processo de definir a arquitectura, os componentes, os interfaces e outras
caractersticas do sistema e do resultado desse processo.

O Design de software demonstra uma papel importante no desenvolvimento de


software permitindo, a equipa, desenvolver modelos e planos que constituiro no futuro
a soluo a ser desenvolvida. Esta fase envolve o desenvolvimento de Algoritmos e
Estruturas de dados, Arquitectura de software, Regras e Procedimentos. Este conjunto
deve traduzir os requisitos de software em desenvolvimento, cuja qualidade deve ser
aferida antes da codificao, assim deve ser bem documentada, fazendo parte da
configurao do software.

O Design de Software engloba, tal como os Requisitos de Software, uma srie de


fases. Assim numa primeira fase necessrio resolver alguns problemas chave do
sistema, problemas que no englobam a programao mas sim objectivos, restries e
alternativas de que dispe. Aps isto, numa nova fase, sero planeados os eventos do
sistema e como estes interagem, a distribuio de componentes e manuseamento de
erros e excepes. Uma vez obtidas estas fases inicia-se o processo de desenhar a
arquitectura do sistema, ou seja estruturas, estilos e escolhas das linguagens de
programao. Com isto executado ter de preparar os atributos de qualidade e tcnicas
de avaliao da mesma.

Para finalizar existem duas ltimas fases, uma de descries do design tanto
estticas ou estruturais e dinmica ou dos comportamentos do sistema e a ltima a fase
de planeamento de estratgias em geral, orientadas a funes, orientadas a objectos e
orientadas a estruturas de dados.

2.4.1. Arquitectura de Software

A Arquitectura de software dividida em duas fases, a arquitectura genrica e


arquitectura detalhada, estas tambm podem ser, de acordo com o software engineering
body of knowledge, descritas como design de alto nvel e design detalhado. A
arquitectura genrica a fase o software e decomposto e organizado em mdulos e nas
suas relaes. Ou seja descreve a organizao fundamental do sistema de software,
identificando os mdulos e as relaes entre cada um e o ambiente, para que alcancem
os objectos pretendidos.

11
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

J a arquitectura detalhada, preocupa-se com a descrio detalhada de cada


mdulo, tornando possvel o desenvolvimento adequado.

2.4.2. Processo do Design de Software

Um modelo genrico do design de software um simples grfico direccionado


para ao software. O objectivo atingir a criao deste grfico sem inconsistncias. Para
este grfico ser concludo so necessrias vrias iteraes de modo a obter o melhor
grfico possvel. O processo de design envolve ento vrios modelos do software com
diferentes nveis de abstraco, oferecendo assim a possibilidade de melhorar modelos
anteriores. Obtendo assim um progresso do processo de design simplificado mas eficaz.

medida que o progresso dos modelos vai sendo realizado o detalhe de cada
modelo vai aumentando igualmente. Deste modo obtm-se um modelo final que oferece
especificaes precisas dos algoritmos e estruturas de dados necessrias para a
implementao.

Contornos Design Mais Design Design


Design Informal Informal Terminado
Informal

Esquema 2 Processo do Design de Software (adaptado de Sommerville 2004)

2.5. Construo do Software

A fase de construo de software refere-se a todo o processo de criao, atravs


da codificao, unidades de teste, integrao e debugging. Nesta fase ser desenvolvido
todo o sistema utilizando os recursos e design apresentados nas fases anteriores.

2.5.1. Noes Fundamentais

Existem quatro noes fundamentais para a construo de software que


englobam, minimizar a complexidade, antecipar mudanas, construir para verificar e
standards de construo. A necessidade de minimizar ou reduzir a complexidade

12
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

simples de compreender, pois medida que o desenvolvimento avana a complexidade


aumenta e se no houver cuidado pode ficar impossvel de compreender a programao.

Antecipar mudanas segue o exemplo da noo anterior pois se durante o


desenvolvimento j se estiver espera que a qualquer instante tenha de se alterar
alguma parte do cdigo ser mais fcil de o fazer, para tal existem varias tcnicas que
ajudam as eventuais alteraes.

Construir para verificar significa exactamente isso, se j se desenvolveu software


de maneira a que a falhas sejam facilmente detectadas e corrigidas tanto pela equipa que
est a desenvolver como na parte de testes do sistema acelera o processo e tambm
simplifica.

Os Standards de construo so as aplicaes que directamente afectam o


desenvolvimento. Nestes existem quatro grupos principais, as linguagens de
programao, mtodos de comunicao, as plataformas de desenvolvimento e as
ferramentas usadas para ajudar. As linguagens de programao sero, por exemplo, o C
ou C++, os mtodos de comunicao usados sero a maneira utilizada para estabelecer
uma comunicao entre os elementos da equipa, por exemplo o tipo de formato de texto
a ser usado, DOC ou PDF. As plataformas sero os sistemas para os quais se est a
desenvolver. E para acabar as ferramentas de ajuda sero aplicaes de apoio tipo o
UML (Unified Modeling Language).

Noes
Fundamentais

Minimizar a Antecipar Construir para Standars de


complexidade mudanas verificar construo

Esquema 3 Noes fundamentais Construo de Software (adaptado de Sommerville 2004)

13
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

2.5.2. Gesto da Construo de Software

No intuito de gerir o processo de construo ter-se- de usar modelos de


construo, planear e calendarizar os eventos ou actividades. Existem vrios modelos de
construo de software, entre eles uns que so mais lineares que outros mas todos tm o
objectivo de apresentar um ciclo de vida do desenvolvimento do software. O modelo
Waterfall, gil (SCRUM), Stage Gate e as tcnicas RAD (Rapid Application
Development) so alguns dos modelos mais conhecidos que sero abordados
posteriormente. Todas estas metodologias podem ser usadas, dependendo do rigor e do
trabalho que est a ser realizado.

Gesto da
construo

Construo de Planeamento Medidas de


modelos construo

Esquema 4 Gesto - Construo de Software (adaptado de Sommerville 2004)

A escolha do mtodo um aspecto essencial para a construo mas tambm se


tem de planear a sequncia do que ser desenvolvido, por exemplo no se pode criar
design grfico sem possuir os componentes visuais. Uma vez criado, o plano ter de se
calendarizar cada passo de modo a ter uma data aproximada para terminar o
desenvolvimento.

2.5.3. Consideraes Prticas

No processo de codificao existem sempre algumas consideraes que todos os


elementos de uma equipa de programao precisam de pensar. A construo do design,
as linguagens utilizadas, as tcnicas de codificao, os testes, a reutilizao de cdigo, a
qualidade e a integrao. Todos estes pontos tem de ser considerados para que a equipa
possa mais facilmente se entender e assim prosseguir mais rapidamente. Por exemplo se
nas tcnicas de codificao o programador deve criar cdigo compreensvel, usando
nomes para as variveis perceptveis, comentar o cdigo e gerir os prprios erros.

14
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Todas estas consideraes so necessrias para qualquer equipa de


desenvolvimento de software, s quando se fizerem estas prticas que poder ser
considerada uma verdadeira equipa.

Consideraes
Prticas

Construo Linguagens Tcnicas de Testes Reutilizao Qualidade e


do design codificao de cdigo integrao

Esquema 5 Consideraes Prticas Construo de Software (adaptado de Sommerville 2004)

2.6. Testes do Software

Teste de software consiste na verificao dinmica do comportamento do


programa num conjunto de testes finitos. Aplicao de mecanismos que permitam
detectar eventuais erros cometidos na fase de anlise ou na fase de concepo. Os testes
podem ser de variada ordem, tais como: testes associados lgica interna do sistema de
software, onde so efectuados testes s instrues; ou validaes ao funcionamento
externo, em que se verifica se determinados valores de entrada produzem os resultados
esperados. necessrio ter em conta o software que est a ser desenvolvido, no caso de
pequenos programas, os testes so simples e fceis de executar, mas no caso de grandes
sistemas, os testes tem de ser executados por fases. O processo de teste dever ser ento
feito incrementalmente juntamente com a implementao do software. Geralmente
existem 5 fases, os testes de unidades (unit testing), testes de mdulos (module testing),
testes de subsistemas (sub-systems testing), testes de sistema (systems testing) e testes
de aceitao (Acceptence testing).

Na fase de unit testing so testados componentes individualmente, garantindo


que funcionam independentemente. Na module testing so testados vrios componentes
dependentes de outros, tipo classes de objecto, funes e procedimentos. A fase de sub-
system testing envolve o teste dos mdulos integrados em partes integrais do sistema.
System testing testa a integrao de todos os sub-systems de modo a encontrar erros nas

15
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

interaces dos mesmos sub-systems. E a Acceptance testing so os testes finais


executados j com dados oficiais, de modo a testar se o sistema realiza as tarefas
pretendidas.

Para alm do processo de testes genrico tambm so hoje em dia utilizadas


tcnicas de desenvolvimento orientadas aos testes (Test Driven Development). Estas
tcnicas oferecem a possibilidade de testar seces de cdigo sem a necessidade de
executar todo o cdigo, assim diminuindo o tempo de debug e compilao. Na realidade
o programador primeiro necessita criar as unidades de teste automticas que definem os
requisitos do cdigo antes de escrever o cdigo em si, deste modo quando o cdigo
estiver completo logo testado para comprovar o seu resultado.

2.7. Manuteno do Software

O software um produto que tem um tempo de vida til, sendo assim necessrio
efectuar periodicamente actualizaes. Consequentemente as organizaes necessitam
de actualizar periodicamente o seu sistema de software, o seu hardware, assim como
desenvolver programas de formao dos respectivos utilizadores do sistema. Em termos
globais o processo de manuteno motivado por alteraes no ambiente exterior
(novas verses de hardware / software), por alteraes solicitadas pelos clientes que
pretendem novas funes ou melhor desempenho do software, ou por erros detectados
no sistema.

Existem 3 tipos de manutenes que podem ser executados aps a entrega do


software. Primeiro a manuteno correctiva que tal como j foi dito, preocupa-se com
os erros detectados no software j em utilizao. Estes erros so normalmente
conhecidos por bugs do sistema. Segundo a manuteno adaptativa, que normalmente
significa alterar o software para funcionar num novo ambiente, tipo funcionar em
sistemas operativos diferentes. O terceiro a manuteno perfectiva, utilizada para
implementar novas funcionalidades ao Software que o cliente possa ter exigido, estas
funcionalidades so novos requisitos funcionais e no funcionais.

2.8. Modelos Clssicos

Os modelos para desenvolver o Processo de Software so um conjunto de passos


que devem ser tomados durante todo o processo de criao de um software.

16
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Dependendo do que for desenvolvido existem modelos mais adequados do que outros.
A seguir apresentar-se-o alguns dos modelos mais utilizados.

2.8.1. Modelo Cascata (WaterFall)

um modelo de desenvolvimento de software sequencial, no qual se verifica um


fluir constante (como uma cascata) atravs das fases de anlise de requisitos, projecto,
implementao, testes (validao), integrao, e manuteno de software.

Este mtodo simples no utilizado em grandes projectos, mas para melhor


expor o processo de criao o mais fcil e rpido de explicar.

Identificao
de requisitos

Concepo

Codificao

Testes

Manuteno

Esquema 6 Modelo Waterfall

Este modelo constitudo por cinco fases. A fase posterior s realizada quando
a sua antecessora estiver concluda e assim sucessivamente. Se um erro for detectado
numa determinada fase, o analista s tem que recuar fase imediatamente anterior para
corrigir esse erro.

2.8.2. Modelo Espiral

O processo de desenvolvimento clssico foi um pouco alterado com este


modelo. O modelo espiral, desenvolvido por Boehm, envolve algumas melhorias em
relao aos modelos clssicos, mas no os descarta, na realidade estes modelos podem
ser utilizados juntamente com o modelo espiral. O modelo tem o nome espiral porque
usa os ciclos da espiral para repetir todas as fases que forem necessrias para o

17
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

desenvolvimento do software. A titulo de exemplo ir-se- explicar um ciclo de 4 fases,


mas o modelo no esta sujeito a um numero fixe de fases.

As fases englobam determinar objectivos, avaliar alternativas e riscos,


desenvolver e verificar e para terminar planear o prximo passo. Como o esquema
demonstra cada fase repetida at o software estar completo. Na primeira fase
determina-se o objectivo para o ciclo que vem a seguir, na segunda avalia-se
alternativas possveis e identificam-se e resolvem-se os possveis riscos, para na terceira
fase se poder desenvolver o software. Na quarta fase planeia-se o prximo ciclo, a no
ser que o software j esteja completo, caso seja verdade termina-se o desenvolvimento.

Esquema 7 Modelo Espiral (Boehm 1988)

2.8.3. Prototipagem

Uma das maiores dificuldades para o desenvolvimento de software e a


dificuldade que os clientes tm para demonstrar o que desejam que o software faa, para
contrariar esta dificuldade foi criado o modelo de prototipagem, que se resume criao
rpida de prottipos e melhorando estes at se atingir o resultado pretendido.

18
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Os benefcios deste modelo englobam melhor compreenso entre cliente e


programador medida que se apresentam os prottipos, servios em falta podem ser
descobertos, dificuldades no uso podem ser identificadas e refinadas, os programadores
podem detectar requisitos em falta, um sistema a funcionar esta rapidamente disponvel
para demonstraes e o prottipo usado como base para criar as especificaes do
sistema.

Estabelecer Definir Desenvolver Avaliar o


objectivos finalidades o prottipo prottipo
do prottipo

Planear o Delinear as Prottipo Relatrio de


prottipo definies executvel avaliao

Esquema 8 Processo da Prototipagem (adaptado de Sommerville 2004)

2.9. Modelos geis

2.9.1. Rapid Aplication Development (RAD)

Esta forma de desenvolvimento de software est associada a um conjunto de


ferramentas que surgiram no final da dcada de 80. Estas ferramentas permitem
especificar as caractersticas do software a alto nvel e posteriormente a gerao
automtica de cdigo, ou seja, a ferramenta gera o cdigo fonte de forma automtica
baseado na especificao efectuada a alto nvel. A base deste modelo consiste em
especificar software a um nvel prximo da linguagem natural.

19
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Alto nvel prximo da linguagem


natural

Especificar
Baixo nvel prximo da
mquina

Esquema 9 Modelo RAD

Este modelo constitudo pelas seguintes fases de desenvolvimento,


levantamento de requisitos, definio de uma estratgia para o projecto, implementao
com ferramentas, testes, documentao e manuteno

2.9.2. Modelo gil (SCRUM)

Este modelo de desenvolvimento oferece mtodos para definir o planeamento, os


principais papis (roles) e a forma de trabalho. A ideia do SCRUM e definir papis bem
especficos para cada elemento da equipa de trabalho e o que cada um vai ter de fazer
para o projecto ser terminado.

Sinteticamente o mtodo funciona da seguinte maneira:

O produto definido: os requisitos e o que o cliente quer.


Assim o chefe da equipa define as funcionalidades mais importantes e com estas
cria uma lista do que ser necessrio fazer.
Com as prioridades definidas sero definidos os Sprints, ou seja as
funcionalidades so divididas por sprints, que representam o tempo para realizar
cada tarefa.
Cada sprint possui uma das funcionalidades da lista, e devem ser feitos de
acordo com as prioridades definidas. Estes Sprints devem ser preparados para
durarem de 2 a 4 semanas e no final de cada perodo, tenham produto para
apresentar.
Os Sprints vo sendo feitos at terminar a lista de tarefas e assim o projecto ficar
completo.

20
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Mais detalhadamente o SCRUM possui trs partes principais: os Papeis, as


Cerimnias e os Artefactos.

Os papis so o Product Owner, ou seja o proprietrio do produto que representa


os interesses do cliente. O ScrumMaster, o lder da equipa de desenvolvimento e a
equipa em si. As cerimnias so eventos que acontecem dentro do ciclo de
desenvolvimento, so a reunio de planeamento do Sprint, reunies dirias e a reunio
de reviso do sprint. Os artefactos so ferramentas bsicas para se trabalhar com este
modelo, o Product Backlog, o Sprint Backlog e o Burndown Chart. O Product Backlog
a lista de funcionalidades a serem criadas. O Sprint Backlog a lista de requisitos e
prioridades para funcionalidade que esto a desenvolver, ou seja uma lista que
especifica os passos necessrios para implementar uma funcionalidade do sistema. E o
Burndown Chart que um grfico que demonstra a quantidade de trabalho cumulativo
restante de um sprint.

2.9.3. Stage Gate

um mtodo que evoluiu do mtodo gil, acrescentando apenas alguns passos


para melhorar o processo de criao, neste caso de jogos, criando uma gesto de
recursos (humanos e monetrios) melhorada.

O Stage Gate acrescenta ento, uma srie de portagens (gates) que cada Sprint
inicialmente tem de atravessar. Nestas portagens os Sprints so avaliados de acordo com
alguns pr-requisitos impostos pela empresa ou chefe. Quando o projecto no aceite,
ou seja no cruza a portagem, todos os recursos atribudos ao Sprint so transferidos
para os restantes que conseguem cruzar a portagem. Cada Sprint que falhe no
necessariamente descartado, todo o material desenvolvido at ao momento guardado
ou reciclado para uso posterior.

Assim, todo o projecto impe datas e recursos iniciais a cada equipa, enquanto
estas tentam desenvolver a melhor funcionalidade possvel; caso no consigam
convencer na data marcada, todos os recursos so ento redistribudos pelos restantes
marcando nova data para uma nova portagem. Finalmente s existir o projecto final.

21
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

2.9.4. Extreme Programming

Este mtodo uma proposta de desenvolvimento gil e iterativo, isto significa


que realizado um desenvolvimento rpido e iterativo de pequenas partes da
funcionalidade do software. Estas partes devem ser constantemente melhoradas. Deste
modo o modelo oferece uma possibilidade de entrega rpida do cdigo tornando o
cliente um membro activo do desenvolvimento, pois a sua interaco que possibilita o
avano rpido do projecto.

Uma das caractersticas importante do Extreme Programming a no existncia


de um processo de design tradicional com a elaborao de modelos de arquitectura de
software. Assim este modelo no se prende a nenhum conceito pr feito para o
desenvolvimento de software, libertando assim as empresas escolha do mtodo que
melhore lhes convir.

22
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

3. Simulaes Visuais Interactivas

3.1. Introduo

Uma simulao interactiva, na realidade um jogo, contem um actor, um


objectivo e at contem uma histria, embora no seja exactamente no mesmo contexto
do jogo, mas as simulaes tm todas estas caractersticas. Na realidade a indstria de
jogos de computador tambm contribui para as simulaes, e vice-versa. Para
desenvolver um jogo, onde a personagem tem de se movimentar o mais naturalmente
possvel necessrio saber exactamente como funcionam os msculos, e as suas
reaces s foras fsicas. Estas informaes podem ser facilmente avaliadas com
simuladores de movimentos de corpos humanos.

A Simulao interactiva, normalmente mencionada como simulao interactiva


visual, pode ser usada nas mais variadas reas de investigao ou ensino. Uma
apresentao de um desenho arquitectnico ou a simulao da insero de uma agulha
cirurgicamente de um paciente, pode ser facilmente transformada num simulao
interactiva de modo a ajudar ou ensinar. No primeiro caso o arquitecto poderia simular
uma visita casa e mostrar o aspecto do interior alterando cores, texturas, e objectos ou
simplesmente ligando ou desligando uma luz. No segundo caso, que um caso provado,
pode-se visualizar todo o trajecto da agulha cirurgicamente do paciente. [Chentanez, N.,
et. al. 2009]. Dependendo da rea em que est a ser utilizada a simulao interactiva
pode ser desenvolvida adequadamente, possibilitando assim melhores ferramentas para
cada rea.

Pretende-se com este captulo demonstrar que nas mais variadas reas
cientificas, as tecnologias de simulaes interactivas / jogos de computador so
efectivamente utilizadas e com resultados bastante produtivos.

3.2. rea da Aeronutica

Na rea da aeronutica relativamente simples apresentar um exemplo pois a


maior parte dos jogos de avies, so simuladores de aviao, muito aproximados da
realidade. Por exemplo os vrios Flight Simulators que tm vindo a ser desenvolvidos
aproximam-se de tal forma da realidade que quase se pode aprender a pilotar um avio
apenas por jogar. O Flight Simulator X, a ltima verso do simulador de voo o

23
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

culminar de 25 anos de jogos, e contem dzias de aeronaves o mais realistas possvel,


de modo a conseguir simular vida real. [Flight Simulator X]

Esta rea no se baseia apenas em simuladores de aviao que so jogos, pois


tambm os militares e agencias espaciais usam simuladores para treinar os seus pilotos
para misses quer dentro ou fora da terra. Por exemplo todos os pilotos espaciais,
passam horas nos simuladores para conseguir obter bons resultados e de modo a no
falharem quando a verdadeira misso for realizada. Nestes casos j no so apenas os
jogos de computador que esto a ser usados, mas simuladores profissionais que para
alm do simulador por software tambm usam mquinas de modo a aproximar a
experiencia do utilizador realidade. [Beard, S. et. al. 2008]

3.3. rea da Medicina

A rea da Medicina consegue ser to abrangente quanto a anterior, pois desde


simplesmente ensinar os alunos a fazer algumas operaes simples at realizar
operaes cirrgicas podem ser usadas as simulaes interactivas. Um exemplo destas
tecnologias a funcionar a simulao interactiva de insero de agulhas cirrgicas e a
sua orientao. [Chentanez, N. et. al. 2009]

Com a evoluo das tecnologias, at existem simuladores de operaes plsticas.


Que conseguem se aproximar imenso da realidade, recorrendo a uma fotografia da zona
do corpo que se deseja alterar, o programa consegue facilmente distinguir os objectos
muito intuitivamente e oferece a possibilidade de simular as alteraes pretendidas.
Capacidades de simulaes de Rinoplastia virtual (plstica no nariz), contorno virtual da
face, etc, so oferecidas com o programa. [Cirurgia Plstica Virtual 1.0]

As simulaes interactivas so, no seu cerne, um jogo de computador. A


primeira vez que uma simulao cirrgica passou a jogo, foi com o jogo de tabuleiro
Operao que simulava uma operao a vrias partes do corpo humano. Mas com a
introduo dos computadores apareceram simulaes idnticas com o intuito de ensinar
o processo de uma operao, por exemplo, a um joelho. [edHeads]

24
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

3.4. rea da Arquitectura

Na rea de Arquitectura a simulao interactiva pode ser usada para demonstrar


uma obra numa apresentao 3D, aproximando assim o utilizador de uma imagem de
como ficar a obra. No exemplo prtico do ponto 3.6 deste captulo, ser apresentado
um simulador de uma casa em 3D, esta simulao servir para demonstrar que com o
motor de um jogo possvel desenvolver simuladores interactivos dedicados
arquitectura.

Os programas de desenho para arquitectura conseguem apresentar o objecto


desenhado num ambiente 3D, mas no oferecem a possibilidade de passear pelo interior
da casa interagindo com a mesma, por exemplo ligando e desligando interruptores ou
abrindo persianas para ver a luz que entra na casa, simulando a posio do sol.

Neste caso j existem jogos de computador que oferecem a possibilidade de


implementar casas e desenhos nos mesmos e depois podendo utilizar os seus desenhos,
o Second Life [Second Life] um exemplo destes jogos. O jogo contm um interface
que ajuda a criar objectos e at de os importar de programas de desenho grfico, assim o
jogador poder usar os seus desenhos e objectos grficos no jogo.

3.5. rea Militar

A rea Militar j usa simulaes a vrios sculos, desde que os estrategas


usavam mapas para planear as prximas batalhas que se pode dizer que realizavam
simulaes do que desejavam que acontece-se em batalha. Foi s recentemente que
estas simulaes de estratgia vieram para o mundo dos jogos de computador. Um dos
primeiros jogos de estratgia do mundo foi o Dune II que apresentava 3 faces que
lutavam entre si pelo domnio de um planeta. A partir deste cone do mundo dos jogos,
os Real Time Strategy Games (RTS) foram considerados um novo tipo de jogo e
amplamente desenvolvidos. As simulaes de guerra no acabam nos RTS, pois os
simuladores de batalhas reais ainda so usados com uso das mais recentes tecnologias
de recolha de dados no terreno.

25
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

3.6. Exemplo prtico de uma simulao 3D

Um exemplo simples mas muito utilizado, so as simulaes de construes.


recorrente ver programas de televiso que demonstram simulaes de edifcios. Estas
simulaes so efectuadas em programas de software de desenho do gnero do Autocad
ou 3D Studio. Um dos problemas a interaco limitada mas utilizando um motor de
jogos de computador estas limitaes transformam-se em possibilidades. Um motor de
jogos consegue abrir um modelo de uma casa, como representam as seguintes imagens,
depois com algumas linhas de cdigo pode-se modificar o aspecto, da mesma.

Figura 1 Modelo de uma casa, viso central Figura 2 Modelo de uma casa, viso transversal

Estas imagens apresentam o modelo de uma casa em 3D, a primeira imagem


representa a posio inicial da casa, j a segunda demonstra uma rotao no eixo do Y
que para este motor representa o eixo vertical. Utilizando os cursores do teclado
consegue-se alterar a posio da cmara em relao casa, dando a iluso de que esta
que se esta a mover. A prxima imagem mostra que se pode mover a cmara para
qualquer posio, mas sempre apontada a casa.

Figura 3 Modelo de uma casa, viso 3d

26
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Estes tipos de simulaes podem ser facilmente criadas com recurso aos motores
de jogos, facilitando assim a demonstrao de projectos. Uma empresa de construo
civil poderia utilizar estas ferramentas para demonstrar os seus projectos dando uso
assim a uma ferramenta que, apesar de no ter sido criado originalmente para este
efeito, seria um ptimo apoio para as apresentaes.

3.7. Programao de simulaes com ferramentas de


desenvolvimento de jogos

Ferramentas dedicadas programao de jogos podem ser utilizadas para as


simulaes interactivas e os modelos de software so os mesmos que so utilizados para
o desenvolvimento de sistemas comuns. Deste modo a programao de simulaes
interactivas facilmente traduzida a partir de um jogo de computador.

3.7.1. XNA Game Studio

O exemplo apresentado no ponto 3.6 deste captulo, foi desenvolvido no motor


de jogos do XNA, mas os mtodos utilizados no so necessariamente mtodos
dedicados simulao, nem so mtodos especficos do XNA. A casa apenas um
modelo 3D da mesma, criado em 3DStudio, mas a cmara que esta a ser utilizada para
ver a casa foi criada a partir de um cdigo de um jogo, onde a cmara mantinha-se
sempre numa viso de 3 pessoa. Percebe-se ento que o XNA o motor que mostra
todos estes artefactos, mas os mtodos usados no necessitam de ter sido exactamente
criados para o efeito que se est a dar.

Nos prximos captulos o XNA Game Studio ser explicado em mais detalhe,
fica s aqui a noo de que com um motor dedicado ao desenvolvimento de jogos, pode
ser facilmente utilizado para a criao de simulaes interactivas.

3.7.2. Projecto Scratch do MIT

Este projecto um exemplo ilustrativo da importncia desta rea de


desenvolvimento de software, principalmente na rea de aprendizagem de lgica. Este
software oferece uma perspectiva de construo de jogos e simulaes base de blocos
de dados, ao estilo de Legos, assim permitindo que os programadores possam ter idades
de 8 anos ou superiores, mas conseguirem criar os prprios jogos.

27
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Esta figura apresenta os blocos de dados de teste e


dos ciclos que so usados no Scratch, pode-se usar os se
e seno tal como se usa numa linguagem de
programao, apenas neste software a visualizao
diferente, assim fcil perceber a facilidade que existe
para se usar esta linguagem no ensino a crianas. Com o
uso do drag and drop a programao simplifica-se e
oferece ao utilizador uma facilidade como nenhuma outra
ferramenta de programao oferece.

Para se compreender melhor a programao por


Figura 4 Blocos de Scratch
blocos pode-se usar um exemplo de um se tal como est na
figura seguinte. Esta demonstra que caso uma varivel i seja igual a 10 que o objecto
se mover 10 passos. Seno o objecto roda 15 graus no sentido dos relgio.

Este projecto explicado com mais detalhe no


captulo 5, apresentando um pouco da programao de um
pequeno jogo e da interaco entre o utilizador e o software.

Figura 5 Bloco Se do Scratch

28
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

4. Industria dos Jogos de Computador

4.1. Introduo

Quando se pensa em jogos de computador, somos logo invadidos pela ideia do


ldico. partida os jogos de computador so produzidos para brincar, no entanto o
processo de construo de um jogo revela-se em algo bem mais desafiador do que se
possa imaginar.

Na construo de um jogo, ldico ou no, tendo em conta o pblico-alvo a que


se destina, para atingir um determinado objectivo, idealizado, estruturado, escrito e
construdo pela imaginao, ter-se- de contar com um conjunto muito alargado de
conhecimentos informticos que serviro de base e suporte a toda a criao do jogo.

A histria, os cenrios, os enredos, a criao de nveis, os prmios, bonificaes,


punies, etc., so informaes com que o programador deve trabalhar para a realizao
do jogo.

A programao de um jogo de computador possivelmente uma das reas mais


complexas, em termos de algoritmos, no ramo da informtica. Para se poder construir
um jogo necessrio a compreenso e domnio total de vrias matrias, que se inter-
complementam num vasto processo de criao/produo. Durante todo o processo de
criao de um jogo, so necessrios clculos matemticos e fsicos, conhecimentos de
design grfico, de bases de dados linguagens orientadas a objectos e de linguagens
orientadas ao desenvolvimento de jogos.

Por exemplo: s um simples mudar de posio de um objecto, necessita de


clculos matemticos que, quando no compreendidos, podem complicar ou atrasar o
processo de criao do jogo.

Dado que todo este conhecimento por si s no o suficiente para atingir o


sucesso, teremos que adicionar ao conceito do jogo, o gameplay, a histria e mesmo a
interaco com o jogador, que so elementos essenciais para o produto final. Isto
demonstra que um jogo , necessariamente, mais complicado de desenvolver do que um
programa informtico. O processo de criao de um jogo de computador, necessita de
uma vasta equipa de pessoas, com diferentes caractersticas, capazes de complementar

29
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

os seus conhecimentos focalizando-os no objectivo a que se propuseram para que o


produto final constitua algo de inovador, coerente e com qualidade superior, no sentido
de conquistar o mercado associado.

Sintetizando o jogo de computador no apenas um brinquedo, mas sim um


grande e complexo projecto de software, que foi desenvolvido por uma vasta equipa de
profissionais. Por exemplo se todos os programas de software se preocupassem em tirar
o melhor partido possvel da mquina, ou a apresentar o melhor ambiente ao utilizador,
como nos jogos, estes poderiam ser ainda mais eficientes. A evoluo continua, o que
permite compreender o vasto conjunto de aplicaes empregues nos jogos a serem
utilizadas no desenvolvimento de aplicaes administrativas, tcnicas e cientficas. Com
o desafio da construo de novos jogos seremos sempre confrontados com novas
tcnicas, criaes e efeitos surpreendentes; os jogos no se fecham sobre si mesmo, os
resultados tm e tero cada vez mais aplicaes em todos os campos do saber.

4.2. Histria Recente da Programao de Jogos

O jogo foi sempre uma actividade de treino, teste e preparao para a defesa,
para a caa, para alm do aspecto ldico desde o incio da humanidade.

Foi em 1958 que os jogos passaram era digital


e entraram no mundo dos computadores, isto quando
William A. Higinbotham desenvolveu o jogo TENNIS
FOR TWO. [Nacke 2005]. Desde ento a indstria de
jogos de computadores tem evoludo, at, mesmo,
ultrapassar a indstria da msica e do vdeo.
actualmente uma das indstrias mais fortes no mundo Figura 6 Tennis for two

das tecnologias.

A histria continua e, em 1962, um aluno do Massachusetts Institute of


Technology (MIT) desenvolveu o primeiro Space Wars para um dos computadores mais
potentes da altura, o PDP-1. Este jogo criado com a inteno de testar as capacidades do
computador, foi um sucesso junto da maioria dos alunos das faculdades americanas que
deram por si a jogar o jogo em vez de ir para as mesas de pinball. Em 1971 foi
distribuda a primeira mquina de jogos a moedas. A partir daqui surgiram companhias
como a Atari e outras que conceberam consolas para ligar aos televisores.

30
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Foi na dcada de 80 que comeou a revoluo das consolas com o surgir da


Nintendo. Com as primeiras NES, o Japo entrou em fora na guerra das consolas.
Ainda nessa dcada surgiram outras consolas de renome, como sejam a Sega, com a
Master System, e a Atari com o novo Atari 7800. Nesta altura a Nintendo vencia a
concorrncia ao conseguir vender 10 vezes mais consolas que os seus principais
opositores. No final desta dcada apareceu a primeira grande consola porttil: a
Nintendo Gameboy.

A partir da as grandes consolas desenvolveram-se estando sempre a ser


melhoradas ou acrescentadas. A NES, Master System, Megadrive, Super NES, NeoGeo,
Saturn, PlayStation, Nintendo64, Dreamcast, Playstation 2, Xbox, Gamecube, Xbox
360, Wii e Playstation 3 so as principais consolas do mercado de acordo com a sua
poca.

Em simultneo com a evoluo das consolas, tambm o PC, com as


caractersticas que j dispunha e com a entrada das placas grficas, tipo 3dfx, NVIDIA e
ATI, entrou na guerra dos jogos. Assim, e neste momento, as 4 principais plataformas
de jogos so o PC, a Xbox 360, a Playstation 3 e a Nintendo Wii.

Os jogos evoluram juntamente com a evoluo dos computadores e das


linguagens de programao. Uma linguagem que foi originalmente criada para
desenvolver um sistema operativo (UNIX) foi mais tarde reutilizada para o
desenvolvimento dos jogos e assim associada para sempre sua criao. Esta linguagem
o C, que evoluiu mais tarde para o C++, e que passou a ser uma referncia na
programao dos jogos, continuando a ser uma das melhores ferramentas no
desenvolvimento dos melhores jogos de sempre. Hoje em dia j existem vrias
ferramentas feitas especificamente para o desenvolvimento de jogos, mas podemos
continuar a dizer que a industria evoluiu a partir do C.

Dentro do mundo dos jogos tambm se deve mencionar que existem vrios tipos
de jogos, que por sua vez apresentam maneiras diferentes de visualizar a realidade ou
mesmo de a alterar. Estes podem ser visualizados pelo jogador na primeira, na terceira
pessoa ou mesmo como uma entidade externa. Podem ser jogados de diferentes
maneiras, tais como utilizando comandos, teclados ou mais recentemente por gestos.
Facilitam ainda a comunicao entre diferentes comunidades do mundo, graas

31
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

internet que usada para partilhar aventuras que seriam impensveis h uns anos atrs.
Isto apenas vem confirmar que os jogos esto sempre em constante evoluo, o que nos
fora a imaginar como ser o mundo dos jogos daqui a dez anos.

Os jogos de computador inserem-se ainda num conjunto das mais variadas


actividades em que se pode melhorar a ateno, aumentar a velocidade de reaco,
testar a inteligncia, a aprender, a apreender novos conhecimentos e at mesmo, mais
recentemente, levar as pessoas a fazer exerccio fsico, danar ou relaxar.

4.3. A Indstria dos Jogos de Computador

A indstria dos jogos de computadores, mais formalmente conhecida como


indstria de entretenimento interactivo o sector econmico do desenvolvimento,
marketing e venda dos jogos de computador. Formada a partir da necessidade de gerir
todo o mundo dos jogos de computador no final do sculo XXI, incorpora dezenas de
competncias e d trabalho a centenas de milhares de pessoas por todo o mundo.

Esta indstria foi dos principais impulsionadores dos mais recentes


desenvolvimentos de hardware e software para os computadores pessoais, desde as
placas grficas, placas de som e at sistemas operativos do gnero do UNIX, que foi
original criado para correr um jogo de viagens espaciais. Hoje conhecido como um
dos maiores sistemas operativos para os super computadores ou grandes servidores do
mundo. [Dennis 1996].

Outros desenvolvimentos tambm surgiram, as placas de som foram criadas para


oferecer a possibilidade de inserir som digital nos jogos e mais tarde musicas e ficheiros
de udio. As primeiras placas grficas foram desenvolvidas para apenas aumentar o
nmero de cores, agora j esto a ser desenvolvidas placas que para alm de oferecerem
acelerao 3D tambm trazem clculos preparados para funes de fsica e
processadores dedicados (GPUs) para se poder obter o mximo nmero de objectos em
jogo, melhorando assim os efeitos especiais.

Os jogos modernos esto entre o software mais exigente para as capacidades de


um computador, pois necessitam de uma capacidade de processamento que rivaliza com
os maiores programas de edio de grficos ou vdeo. Isto leva a que um grande volume
das vendas dos grandes computadores seja efectuado a jogadores, que desejam sempre o

32
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

melhor para jogar, o que leva a que os jogos, sejam um grande impulsionador para o
desenvolvimento das capacidades dos computadores.

4.4. Desenvolvimento de jogos de computador

Para o desenvolvimento de um jogo torna-se necessrio comear por referir que


preciso saber, antes de mais, o que um jogo. Basicamente um jogo comea por ser
uma histria que necessita de ser contada.

Ao longo dos tempos a maneira de contar histrias evoluiu: inicialmente o


contador de histrias, relatava eventos de carcter tnico ou imaginativo, de carcter
fantstico, que entretinham essencialmente a populao mais nova, que o quisesse ouvir,
e tentava transmitir-lhes alguns conhecimentos das razes culturais desse povo.
Posteriormente assistiu-se ao aparecimento do narrador que, como que em voz off,
antecipava os acontecimentos que os actores exemplificavam em palco, explicando ao
pblico o rumo da histria. Este j se baseava em documentos escritos que deram
origem aos livros de contos. Os livros tornaram-se na nova maneira de contar histrias,
no tanto contadas, mas mais vividas individualmente por cada leitor. Aps esta era e
com a evoluo tecnolgica da humanidade a maneira de contar histrias evolui outra
vez, agora para os filmes, que transcreviam para a tela as imagens dos livros ou as
projeces do imaginrio do realizador ou a sua interpretao. Assim sendo sempre
existiram histrias o que variou foi o suporte de transmisso ou comunicao dessa
histria que passou pela transmisso oral at ao suporte flmico. Com o suporte digital e
com a programao de computadores d-se uma revoluo num curto prazo de tempo
(30 a 40 anos).

A histria libertou-se do texto e do guio, passando a tambm depender do


leitor, que como jogador, pode interferir na estrutura da histria, no seu
desenvolvimento, at nos personagens podendo fazer com que a histria/jogo possa ser
vivida interactivamente, sem ter um resultado pr-definido.

Os livros so baseados numa narrao, que conduz o leitor a partir de uma ideia
ao longo da histria sem permitir a sua interveno ou a possibilidade de alterar alguma
coisa. Todo o ambiente descrito normalmente em detalhe cabendo ao leitor o trabalho
de o imaginar. Todos os argumentos so construdos segundo uma linha que definida
pelo pensamento do autor.

33
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Os filmes, construdos segundo a interpretao do realizador, so em quase tudo


idnticos aos livros, agora conduzidos pelo realizador, com algumas excepes; o
argumento, a histria, o ambiente so transmitidos por uma representao visual,
impedindo assim o leitor de imaginar o seu contedo, uma vez que j no tem de
intervir com a sua imaginao mas apenas de percepcionar o que lhe est a ser
comunicado visual e sonoramente, facilitando a sua compreenso mas perdendo por
vezes os detalhes que fazem parte da histria. Neste caso o espectador no necessita de
ter imaginao, segue apenas o que lhe est a ser apresentado.

Ao contrrio dos suportes anteriores, livros e filmes, onde o leitor/espectador


conduzido passivamente ao longo da histria, actualmente, num jogo ele pode realmente
alterar o desenrolar dos acontecimentos, claro que o que o jogador pode fazer est
limitado pela programao do jogo, mas mesmo assim, o jogo oferece uma
caracterstica nica. Os jogos so os livros + os filmes + interactividade. A
interactividade a possibilidade do jogador alterar o seguimento do jogo, isto da
histria.

Os jogos podem ento ser avaliados pelo nvel de interactividade; quanto mais
interactivos melhor a experincia, logo, melhor ser o jogo. Se no existir
interactividade no um jogo mas sim um conto.

A interactividade a caracterstica intrnseca dos jogos de computador que os


diferencia de todos os outros suportes j abordados. Por exemplo, um jogador pode ter
como objectivo ver o final da histria, sem ter de percorrer vrios trajectos que lhe so
apresentados, dando-lhe assim a possibilidade de escolher qual dos percursos que quer.
Isto permite ao intrprete/jogador seleccionar o caminho que deseja, criando a sua
prpria verso da histria. Num jogo ideal nada est predefinido, tudo depende da opo
de quem joga, obviamente isto ainda no se v nos jogos de hoje em dia porque
necessitaria de uma capacidade infinita de possibilidades programadas antecipadamente
e a capacidade de processamento de parte do jogo.

O processo de programao que se segue pode ser caracterizado de acordo com a


dificuldade de construo e que pode ir do mais ou menos complexo ao de extrema
dificuldade, porque para criar e concretizar um jogo h um processo longo, rigoroso e
difcil. De acordo com o que se pretende um jogo de qualidade pode demorar anos a ser

34
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

desenvolvido e, mesmo quando acabado, pode conter inmeros problemas que devero
ser resolvidos posteriormente por upgrades/updates.

Durante todo este processo, e durante todas as fases necessrio que a ideia e a
concepo do jogo se mantenham iguais para todos os intervenientes no projecto, de
modo a que todos estejam a trabalhar para um mesmo objectivo. Para isso necessrio
criar, logo no incio, um documento que registar e acompanhar todo o projecto at ao
seu termo. Este documento, ou guio, tem usualmente no meio informtico a designao
de Game Design Document. A criao deste documento est sujeita a uma estrutura em
que so definidos os mais diferentes passos. Primeiro ter de definir a ideia daquilo que
se pretende que o jogo seja. Do tipo de jogo, ao tema, pblico-alvo, contedo,
desenvolvimento progressivo, e mesmo que tenha um espao para que algum item possa
ser retirado ou acrescentado ao projecto final.

Assim, tal como foi dito, so necessrias vrias etapas que permitem estruturar e
facilitar o desenvolvimento de um projecto/jogo.

35
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

5. Engenharia de Software para a Construo de Jogos

5.1. Introduo

Este captulo demonstrar que a engenharia de software na programao de


jogos de computador semelhante, quando no igual, de um sistema normal de
software. No captulo de Programao de jogos j se falou de vrios passos necessrios
que so semelhantes, tipo o Documento do Processo de Desenvolvimento do Jogo
(Game Design Document - GDD) que se assemelha ao documento de requisitos. Este
captulo ir demonstrar, todas as fases de criao de um jogo, mas de modo a criar um
paralelismo entre o desenvolvimento de um software e de um jogo de computador.

O intuito provar que com as mesmas tcnicas, linguagens de programao e


conhecimentos, na rea da informtica, se pode criar um jogo de computador.

5.2. Processo de criao de um jogo

O Processo de criao de um jogo de computador e de um produto de software


so muito semelhantes. Metodologias tipo gil e RAD tambm so usadas para a
criao de jogos. Estas metodologias no so necessariamente especficas para o
desenvolvimento de jogos de computador, mas sendo o jogo um software este ter o
mesmo ciclo de vida de um software normal assim podem e devem ser usados os
mesmos modelos.

Em Engenharia de Software so necessrios vrios passos antes de se entrar na


parte de codificao. Em primeiro lugar tm de se preparar os recursos de software, e
prosseguir pela fase de design. No caso de criao de jogos, estes passos so
introduzidos na criao do Documento do Processo de Desenvolvimento do Jogo (Game
Design Document - GDD). Este documento contm todos os detalhes necessrios
criao do jogo. Inicia-se o projecto criando a ideia de jogo que, juntamente com a
anlise de requisitos e design de software, ir criar o Game Design Document (GDD).
Com este documento ser possvel passar fase de codificao e comear a desenvolver
o jogo. A tabela seguinte apresenta o modelo como foi idealizado, ser fcil perceber
que o modelo no diverge muito do modelo que apresentado para Engenharia de
Software, mas com umas determinadas alteraes de modo a ser orientado para a
programao de jogos.

36
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Engenharia de Software orientada programao de jogos e simulaes


interactivas

Concepo de jogo

Ideia

Ideia do jogo

Enredo do jogo

Game Design Document

1. Pgina de Titulo
2. Tabela de contedos
3. Histrico (as verses j feitas)
4. Vista geral do jogo
5. Gameplay e mecnicas de jogo
6. Historia e Personagem
7. Nveis
8. Interface
9. Inteligncia Artificial
10. Tecnologia
11. Arte do jogo (Game Art)
12. Software Secundrio
13. Gesto
14. Apndices

Escolha da Plataforma Tecnologias


de Apoio

Codificao

Manuteno

Esquema 10 Modelo de Engenharia de Software orientada


programao de jogos / simulaes interactivas

37
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

5.3. Design de Jogos

Nesta fase pretende-se estabelecer o objectivo do jogo. Para o desenvolvimento


de jogos de computador, antes de se escolher metodologias e ferramentas, necessrio
conceber o jogo no seu todo. O Design o processo e suporte para criar o jogo, de o
imaginar, definir o seu funcionamento, descrever os elementos que o constituem e
transmitir estes elementos para a equipa de trabalho.

A concepo pode comear por ser apenas uma simples ideia que quando
desenvolvida e aperfeioada se concretiza no jogo. Um exemplo disso e que tem ganho
muitas atenes especialmente pela sua jogabilidade o World of Goo. Este jogo que
apenas usa um simples motor 2D consegue ser ptimo por causa da sua jogabilidade. O
conceito do jogo simples: trata-se de levar uma srie de bolas de petrleo (Goo) para
um cano. A ideia no nada de inovadora, mas o facto de os criadores usarem as leis da
fsica para darem movimento s bolas em todo o jogo, ajuda a criar um ambiente
cativante o que motiva o utilizador a seguir em frente.

5.3.1. Ideia de Jogo

Ideias simples constituem grandes jogos, um exemplo muito conhecido o de


dois canalizadores que querem salvar uma princesa de um terrvel drago.

As ideias iniciais no precisam de ter sentido, no necessitam de grandes


descries, podem tomar como ponto de partida elementos simples a serem
desenvolvidos pela imaginao de quem a est a formular. Todos os jogos comeam
assim, nada mais necessrio para comear um jogo, neste ponto a nica coisa que
preciso a descrio da personagem. Ou seja, quem a personagem e o que ele faz,
assim j se est a dar uma envolvncia ao jogo, pois se soubermos quem a personagem
j se consegue imaginar a continuao.

Uma vez criada a ideia inicial tem de ser desenvolvida a ideia de jogo. Esta ideia
que no mais que a estrutura do funcionamento do jogo, no deve conter mais de 8 a
10 linhas, que apenas descrevem os desafios que o jogador ir ter de ultrapassar e o que
fazer para os ultrapassar. Neste ponto, tem de se descrever todos os obstculos que o
jogador ter e como os conseguir superar, por exemplo: o jogador poder ter a

38
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

possibilidade de saltar por cima dos inimigos e se lhes cair em cima eles morrem, caso
contrrio ser o jogador a perder vida.

5.3.2. Concepo de jogo

A maior dificuldade no design no apenas ter a ideia mas sim o desenvolver do


funcionamento de um jogo desafiador e divertido. Pois se este no desafiar o jogador ao
mesmo tempo que o diverte no merece ser jogado e assim a ideia perde o seu valor.
neste tempo de concepo do jogo que se torna necessrio ultrapassar esta dificuldade.

Ao conceber o jogo o designer ter de ter em mente que este deve entreter e
cativar as outras pessoas. Isto a interactividade do jogo, quanto melhor for mais o jogo
entreter. O conceito dever ter 4 elementos principais. A Narrativa, o Papel principal
(Role), a descrio / Setting (quem somos) e o Gameplay (o que se pode fazer).

Narrativa Caso seja necessria uma histria, esta ser introduzida neste ponto
(mas existem jogos que no necessitam de histria (como o Tetris)). O jogo necessitar
de um histria que ser percorrida pelo jogador sendo para tal criados mundos no seu
percurso que uma vez desenvolvidos faro parte da histria.

Papel e Objectivos Neste ponto do projecto/jogo dever ser descrito o


interveniente na histria ou personagem, quais as suas caractersticas e objectivos que
intuitivamente podem sugerir o que ele pode fazer, movimentos, limitaes, apetncias
e potenciao. O papel do jogador a pea chave para o gameplay do jogo.

Cenrio Caracteriza o espao onde se desenrola o jogo. Pode ser mais do que
um e se for tridimensional deve permitir o seu percurso em vrios sentidos. o modelo
de interaco, a maneira como o jogador interage com esse espao/mundo (se um
avatar, se omnipresente, etc.). a perspectiva de como o jogador v o jogo (1 ou 3
pessoa). Finalmente o mundo do jogo.

Gameplay A diverso, o jogo deve ser prazenteiro e divertido. Este objectivo


atinge-se formalmente pela qualidade, ou seja pela quantidade de opes que o jogo
oferece. O jogador interage com o jogo escolhendo opes (correr, saltar, andar, etc.)
ultrapassando obstculos ou no tendo um resultado imediato (ganha ou perde). Um
bom Gameplay significa um jogo que repetvel, permitindo voltar atrs em qualquer

39
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

situao, o que faz com que o jogo se torne viciante. Esta uma das caractersticas
necessrias para que um jogo possa ser um sucesso.

Na realidade a maioria dos jogos copiam temas e situaes que j existem na


nossa sociedade quotidiana. Facilita-se assim a criao do jogo e oferece-se equipa de
trabalho a possibilidade de no seu desenvolvimento se focar mais no jogo em vez de
perder tanto tempo na histria.

5.3.3. Temas do Jogo

Os temas dos jogos para computador podem ser resumidos em trs tipos de
lazer: o Social, Cultural e Desportivo sendo que dentro destes trs tipos podem-se
desenvolver imensas concepes para jogos, tipo:

Social

Festas e eventos sociais, amizades e novos conhecimentos, bem como a criao


virtual de uma vida quotidiana, podem ser usados como temas de jogos, existindo j
jogos que utilizam este tipo de ocupao ldica, como por exemplo o SIMS ou o
Second Life. Estes jogos conseguem aproximar o utilizador destes eventos e da sua
simulao virtual. Para alm do seu claro aspecto ldico, este tipo de jogos pode ter a
sua mais-valia na apreciao e avaliao de comportamentos na rea da psicologia e da
sociologia. Na simulao de situaes e no seu estudo correspondente. Com a
programao e as tcnicas desenvolvidas para jogos podem proceder-se a estudos de
circulao viria dentro de cidades, em feiras e at dentro de edifcios.

Cultural

Livros, Filmes e Teatro oferecem, por si s, praticamente tudo o que um jogo


necessita para o seu desenvolvimento. J foram construdos vrios jogos que se baseiam
na histria de um bom livro ou filme, como por exemplo todos os jogos das sagas Star
Wars ou Senhor dos Anis. Neste grupo de jogos so muito conhecidos os que foram
desenvolvidos para acompanharem o desenvolvimento de crianas nos vrios grupos
etrios para as diferentes disciplinas escolares. So tambm conhecidos os jogos que
pem prova os nossos conhecimentos artsticos de msica, na pintura, na visita virtual
a museus, palcios e at a cidades. Trata-se de uma rea por explorar e com uma
variedade quase infinita de jogos.

40
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Desportivo

Os jogos baseados em temas de desporto so possivelmente os mais comuns,


sendo que podem ser desenvolvidos com a possibilidade de jogar individualmente ou
em equipa. Os jogos de futebol, de basketball, de tnis, etc., que necessitam de
controlos de jogo em equipa, so os mais conhecidos. neste aspecto que este grupo se
distingue dos restantes uma vez que exige a participao de mais do que um jogador.
Pode-se perceber facilmente a potenciao deste tipo de programas/jogo com
aplicaes, por exemplo, do tipo de defesa (situaes de guerra, de terrorismo, policiais,
manifestaes, etc.) que tanto podem ser criadas para uso ldico como uso cientfico.

5.4. Concepo do Jogo

Antes de criar o GDD necessrio desenvolver a concepo de jogo, na


realidade ter a imaginao para construir uma histria inovadora, aliciante e diferente de
modo a cativar o seu desenvolvimento. Um exemplo de ser apresentado nos prximos
pontos de modo a ter um documento sensivelmente completo e de fcil explicao. Nem
todas as seces do plano do GDD apresentado podero ser necessrias, pois depende
do tipo de jogo que se est a desenvolver.

5.4.1. Ideia

A ideia inicial ser algo muito simples e a que ser usada , O mundo est a ser
atacado por algo misterioso, sero extraterrestres, sero monstros no se sabe, mas
com a nave iremos repeli-los. A partir daqui j se possui um ponto de arranque para o
jogo, temos o jogador, que ser a nave, algum contexto para os inimigos e para a
histria, agora ter-se- de adaptar esta ideia ideia do jogo.

5.4.2. Ideia de Jogo

Seguindo a ideia criada, ter-se- ento a nossa nave que ir defender o mundo de
um inimigo, estes sero representados por naves de extraterrestres que querem invadir o
nosso mundo. O cenrio de fundo onde se desenvolver a aco representado pelo
mundo que ser observado de uma perspectiva lateral, ou seja ver-se- o jogo a decorrer
num sentido horizontal e as naves podero andar em todos os sentidos horizontais e
verticais. No caso dos inimigos, movimentar-se-o no sentido oposto ao do jogador com

41
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

velocidades diferentes de modo a tentar embater contra o mesmo, eliminando-o. O


jogador ter a possibilidade de se afastar dos seus inimigos e tambm disparar contra
eles. O jogo ter ainda um chefe no final de cada nvel, que ter um tamanho superior
ao dos inimigos normais e poderes igualmente superiores. Para conseguir ultrapassar
cada nvel o jogador ter de derrotar este chefe. Durante o jogo, iro surgir tambm
alguns upgrades para o jogador, tipo melhores tiros, ou mais vidas, estes upgrades
devero aparecer a flutuar no ecr com movimentos aleatrios.

Para uma ideia de jogo, esta ser o suficiente, pois agora j sabemos como o
contexto do jogo quais os possveis movimentos do jogador e do inimigo, como
decorrero os movimentos e tambm alguns acrescentos que o jogo ter. Certamente
que esta no uma ideia de jogo inovadora, mas quanto mais complicada fosse a ideia
mais complicado seria explicar o processo.

5.4.3. Enredo de Jogo

Esta ideia de jogo j demonstra parte da narrativa, pelo menos uma apresentao
dela, mas pode-se criar uma histria para o jogo. Hoje em dia fala-se muito na chegada
de um planeta novo ao sistema solar, assim pode-se criar a histria que nesse novo
planeta existe uma civilizao tecnologicamente mais desenvolvida e que, j da ltima
vez que este planeta passou pelo sistema solar, atacaram o nosso planeta, na altura quase
tudo foi destrudo mas desta vez estaremos preparados com um esquadro de naves elite
para defender o nosso planeta. Os extraterrestres, desta vez, no tero a vida facilitada.
Este esquadro chama-se SAD, Seek and Destroy. Esta fora de elite possui 5 naves
de alto desempenho para defesa do nosso planeta e sero requisitados para atacarem os
novos inimigos defendendo o planeta.

Papel e objectivos

O papel principal deste jogo ser a nave do jogador, que tal com j foi descrito
poder usar uma das 5 naves do esquadro; estas tero movimentos idnticos mas
apresentam algumas caractersticas diferentes umas das outras. As naves podero
movimentar-se em todos os sentidos horizontais e verticais sobre o cenrio do mundo e
tero a possibilidade de disparar contra os seus inimigos. Mas cada nave possui
diferentes caractersticas. A primeira nave ter uma velocidade superior em relao s
outras, a segunda ter maior resistncia aos ataques, e a terceira ter mais poder de fogo.

42
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Quanto s duas ltimas, uma ser maior mas tambm ser mais resistente e a ultima ser
mais pequena e rpida mas com menor resistncia em relao a todas as outras.

Cenrio

O cenrio para o jogo j foi sucintamente descrito. J se sabe que o personagem


ser uma nave, logo o avatar ser esta nave, que ser vista de cima numa perspectiva de
3 pessoa. O mundo ser visto de uma perspectiva lateral, ou seja veremos o mundo a
passar por traz da nave. O movimento do mundo efectuar-se- da direita para a esquerda
e a nave ter de voar na direco oposta para poder chegar ao seu destino.

Gameplay

No caso do jogo que est a ser desenvolvido, o gameplay simples, pois a nave
pouco mais pode fazer do que voar e disparar. Sero ento os vrios upgrades que
criaro a qualidade do jogo. Os nveis tambm sero primariamente diferentes, assim
mantendo a ateno do jogador nos novos mapas e inimigos.

5.5. Documento do Processo de Desenvolvimento do Jogo

O Design do jogo o processo de registar o jogo imaginado. Aps todos os


passos anteriores ser redigido todo o documento de design do jogo que ir acompanhar
o trabalho de todos os programadores, designers, artistas, etc., que compem a equipa e
que constituir o suporte base e estrutural do desenvolvimento de todo o jogo.

O Game Design Document (GDD) o mapa do qual o jogo ser criado. Como
tal, todos os detalhes necessrios para a construo do jogo tem de estar mencionados
no documento. Se no estiver no documento, ento provavelmente no estar no jogo.
[Baldwin, 2005]

O GDD o guio e o mapa sobre o qual o jogo ser construdo. Como tal,
dever conter toda a informao que se refere ao jogo desde a ideia, os participantes, os
cenrios, e todos os detalhes necessrios para a sua construo. O documento mais
parecido com o GDD o guio de um filme de animao, mas que no caso de um jogo
tem de especificar de forma clara e convincente a interaco com o jogador ou
jogadores, deve indicar claramente o objectivo final do jogo, propsitos e opes.
como j referi o documento base de trabalho de toda a equipa de desenvolvimento que

43
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

dispor de documentos parcelares tcnicos, fichas artsticas e outros que devero ser
mencionados no GDD.

Obviamente este documento diferente de jogo para jogo, variando consoante a


complexidade de cada um, da maior ou menor exigncia de opes, objectivos,
alternativas, etc. Podem-se imaginar os documentos criados para os jogos tipo PacMan,
Super Mario, ou Quake. Todos estes jogos necessitam de GDD detalhados sendo que
estes sero completamente diferentes nas suas caractersticas, modelos e at formatao.
O documento define a maneira como o jogo funciona, descrevendo os elementos que
compem o jogo e transmite essa informao, de forma clara, para todos os membros da
equipa que o est a desenvolver.

Desta forma combinam-se todas as formas necessrias para o desenvolvimento


do jogo: a ideia, a arte, a cincia e a habilidade no mesmo documento.

Segundo o seu criador o Game Design Document deve conter os seguintes


pontos principais: Mecanismos Principais (Core Mechanics), Narrativa/Histria e
Interactividade. Mas bvio que no constitudo apenas por estes trs pontos. a
partir deles que desenvolvido o GDD.

5.5.1. Mecanismos Principais

So o cerne do jogo. So as regras que o regulam e definem a maneira como o


jogo funciona. Por exemplo as regras de um jogo de xadrez, no so necessrias para
mexer as peas mas so necessrias para jogar o jogo.

5.5.2. Narrativa e Histria do jogo

Todos os jogos contam uma histria, por muito simples e dissimulada que esta
seja, existe sempre. A narrativa a parte da histria que o autor conta ao jogador, a
parte no interactiva do jogo. O jogador pode alterar o desenrolar da histria mas nunca
pode alterar a histria em si, a interactividade do jogador acaba quando comea a
narrativa do autor.

44
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

5.5.3. Interactividade do jogo

A interactividade representa a forma como o jogador interage com o jogo. O que


o jogador faz, ouve, v e realiza no mundo virtual. O Game Designer define todas as
interaces possveis entre o jogador e os objectos do jogo. Quanto maior for a
interaco melhor ser a participao do jogador no jogo. Um bom jogo avaliado pela
vontade que os jogadores demonstram em continuar a jogar mesmo depois de o terem
terminado. Um jogo com boa interactividade um bom passo para atingir essa
finalidade.

Como foi descrito um GDD necessariamente diferente para todos os jogos o


que torna complicado desenvolver uma estrutura que possa ser seguida
independentemente do tipo de jogo. Mas j existem alguns que se aproximam muito
dessa realidade.

Dentro dos trs pontos j descritos pode-se planificar melhor o jogo, assim
dando origem ao seguinte ndice:

1. Pgina de Titulo
2. Tabela de contedos
3. Histrico (as verses j feitas)
4. Vista geral do jogo
5. Gameplay e mecnicas de jogo
6. Historia e Personagem
7. Nveis
8. Interface
9. Inteligncia Artificial
10. Tecnologia
11. Arte do jogo (Game Art)
12. Software Secundrio
13. Gesto
14. Apndices
Tabela 1 ndice do Game Design Document

Este ndice pode ser usado no GDD de qualquer jogo, pois mesmo que alguns
dos parmetros no seja necessrio para o jogo, pode ser simplesmente omisso.

Seguidamente ir-se- aprofundar melhor cada um destes parmetros,


demonstrando assim exactamente como um GDD deve ser utilizado, mesmo que
algumas partes no sejam totalmente necessrias.

45
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

1. Pgina de Titulo

Nesta pgina ser necessrio inserir, para alm do nome do jogo, a informao
de direitos de autor, o nmero da verso do jogo, o autor e a data.

2. Tabela de Contedos

A tabela de contedos, tal como o nome diz, um ndice que contm todas as
subseces do documento, necessrio ter a certeza que todas as seces esto
representadas nesta tabela.

3. Histrico

Esta uma lista que descrever todas as grandes mudanas das verses do jogo
sempre que este modificado com o objectivo de o melhorar. As alteraes tm de ser
introduzidas nesta seco.

4. Vista Geral do Jogo

A vista geral do jogo ser dividida em mais uma srie de subseces, a


concepo do jogo, que envolve o conceito e ideia inicial que levou criao do
mesmo, as caractersticas iniciais do jogo, tipo de jogo (RPG, FPS entre outros), o
publico alvo, ou seja, a populao a quem o jogo se destina e qual a idade mnima legal
para o utilizar, o sumario do game flow (como o jogador se movimenta no jogo), look
and feel, que descreve a viso bsica do jogo e como este se deve comportar. Por ltimo
temos o Project scope, que um sumrio de todos os principais locais e ambientes do
jogo.

Esta ltima subseco envolve o nmero de localizaes, nveis, npcs


(personagens no humanas do jogo), nmero de armas disponveis, entre outros.

5. Gameplay e mecnicas de jogo

Nesta seco descrito o plano do jogo dividido nas seguintes seces,


gameplay, mecnicas/regras do jogo, screen flow (descries dos ecrs/cenrios e como
se relacionam), opes do jogo, save e load e por ultimo ajudas.

46
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

A seco de gameplay constituda pela progresso do jogo, bem como a parte


que envolve a estrutura das misses e dos puzzles. No gameplay tambm inserido os
objectivos do jogo e o game flow, sendo este ltimo o modo como o jogador tem a
percepo do decorrer do jogo em si.

Na seco de mecnica e regras do jogo, so definidas quais as regras do jogo,


tanto as implcitas como as explcitas. Estas regras envolvem todo o mundo que se
encontra a ser simulado no jogo bem como a forma como os objectos interagem. Tudo
isto implica conhecimentos de vrias reas tais como, fsica, regras de movimento,
objectos, aces, combates, economia entre outros.

6. Historia e Personagem

Nesta seco iro ser descritas todas as histrias e personagens do jogo. Seces
como historial das personagens, progresso no jogo, Cut Scenes, sero representadas.
Tambm ser apresentado o mundo do jogo, caractersticas fsicas e descries gerais
do ambiente.

A histria e narrativa envolvem, todo o historial do jogo, elementos de enredo,


progresso do jogo, licenas necessrias e cut scenes. O mundo do jogo constitudo
pelas imagens e ambiente do mesmo e pelas reas ou nveis. Estas devem integrar a
descrio geral, caractersticas fsicas, nveis e conexes a outras reas. Isto deve ser
repetido para cada rea ou nvel do jogo.

As personagens devem ser descritas de acordo com o seu historial,


personalidade, aspecto, habilidades especiais, relevncia para a histria e para com as
outras personagens. Isto deve ser realizado para casa personagem integrante do jogo.

Esta seco est dividida em trs partes de modo a separar a histria em geral do
mundo do jogo, as reas do jogo e as personagens. Deste modo poder-se- trabalhar em
separado cada uma das partes.

7. Nveis

Aqui sero explicados ao mnimo detalhe cada um dos nveis do jogo. O nvel
no necessariamente uma rea do jogo, da estar separado da seco anterior. Uma
rea pode conter vrios nveis, ou os nveis podem ser contabilizados de acordo com a

47
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

evoluo do jogador e no da zona onde se encontra. Por estas razes os nveis tm de


ser extremamente bem explicados.

Cada nvel necessita ento de ser descrito em detalhe. Para a concretizao dessa
finalidade podem-se usar os seguintes campos, sinopse, material introdutrio (cut
scenes), objectivos, descrio fsica, mapa, caminho critico, encontros, descrio do
nvel pormenorizadamente e material de fecho.

Desde que se sigam estes apontadores, facilmente se far uma descrio


completa de qualquer nvel para um jogo de computador

8. Interface

A interface outra das seces que necessita de ser bastante detalhada, pois ser
a partir desta que o jogador ir navegar pelo jogo, independentemente do tipo de jogo a
que se destina.

Na interface dever vir descrito o sistema virtual e de controlo do jogo, udio e


musica, efeitos sonoros e sistemas de ajuda.

Estes seis so facilmente explicados, o sistema visual engloba os menus, o


sistema de renderizao, as posies das cmaras e os modelos de iluminao. O
sistema de controlo apresenta o modo como o jogador controla o jogo, que tipo de
comando. udio, msica, efeitos sonoros e sistema de ajudas, finalizam o interface, que
se for bem executado poder ser superior a muitos outros interfaces.

9. Inteligncia artificial

A maior parte dos jogos, hoje em dia, necessita de inteligncia artificial, assim
torna-se necessrio prever todas as jogadas que podem ser feitas pelos personagens do
jogo e program-las de modo a comportarem-se de acordo umas com as outras. Por
exemplo no jogo de xadrez preciso saber o modo como todas as peas se movem para
poder criar estratgias e introduzi-las na inteligncia artificial.

Esta seco engloba os seguintes pontos, IA do oponente, personagens que no


entram na aco de combate (NPCs), personagens amigveis e IA de suporte. Este
engloba, por exemplo, colises e deteco de caminhos.

48
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

10. Tecnologia

Esta seco conter o hardware alvo e todos os restantes pr-requisitos para


poder usar este hardware. Por exemplo no se poder usar XNA para uma playstation.
Assim com a escolha da plataforma fica-se cingido ao software, ao motor de jogo e as
linguagens de scripting.

11. Arte do jogo

Nesta seco iro ser demonstrados todos os desenhos orientadores do jogo, tipo
desenhos das personagens, ambientes, guias de estilos, equipamento, cut scenes e outros
objectos do jogo.

12. Software secundrio

Este software secundrio, poder ser o software de instalao, editor de mapas


ou aplicaes de update.

13. Gesto

Na gesto necessrio conter, um calendrio detalhado, recursos, anlises de


riscos e planos de testes.

14. Apndices

Nesta seco poder ser introduzido tudo o que se possa ter negligenciado nas
seces anteriores.

5.6. Tecnologias de apoio ao desenvolvimento

Com o GDD terminado, o prximo passo a escolha das linguagens de


programao que sero usadas para criar o jogo, neste caso no basta, apenas, escolher a
linguagem que se gosta mais, primeiro tem de se saber para que plataforma se esta a
desenvolver. Isto necessrio porque dependendo da plataforma tambm a linguagem
muda.

As tecnologias que existem para a criao de jogos so imensas, mas podem ser
separadas por dificuldade, tipo de programao, requisitos, finalidade e necessidades de
cada uma. A seguir indicar-se-o quatro tecnologias que apesar de serem orientadas

49
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

para o desenvolvimento de jogos, divergem na sua complexidade e no tipo de jogo que


se deseja desenvolver, e apresentar-se- a tecnologia escolhida para a parte de
codificao deste trabalho. Existem mais tecnologias do que estas de que ir-se- falar,
mas a ttulo de exemplo estas chegam para demonstrar a disparidade que existe entre os
vrios tipos.

Se a ideia criar um jogo de duas dimenses (2D) e no possuir muito


conhecimento de criao de jogos ou mesmo de linguagens de programao, poder-se-
o usar editores de jogos do gnero do GameMaker [pagina oficial GameMaker] ou do
Scratch [pagina oficial Scratch]. O primeiro editor de jogos oferece uma grande
variedade de ferramentas especificamente para o desenvolvimento de jogos 2D. Usando
esta ferramenta um utilizador no experiente pode facilmente criar o prprio jogo de
computador.

claro que esta ferramenta tem as suas limitaes, como qualquer outra, mas
para se criar um jogo simples, para entrar no mundo de criao de jogos, ou
fundamentar alguma ideia, este software ser suficiente.

Por exemplo um programador de jogos mais experiente pode usar esta


ferramenta para testar o gameplay de um jogo, ou seja a sua jogabilidade.

No caso do Scratch tambm orientado a jogos 2D tal como j foi dito, mas este
motor, criado no MIT [pagina oficial Scratch], leva a ideia de facilitar ainda mais longe.
A ferramenta oferece uma serie de blocos que representam as funcionalidades bsicas
da programao e ao estilo de uma montagem de Legos, podem-se criar jogos. Devido a
esta funcionalidade, virtualmente qualquer pessoa consegue criar o seu jogo, basta para
isso investigar um pouco de como a ferramenta funciona.

Esta ferramenta foi escolhida para uma demonstrao, devido simplicidade que
envolve. Ser realizada uma comparao com o XNA Game Studio e ser evidente a
facilidade de desenvolvimento do Scratch.

obvio que um jogo de ltima gerao no depende de ferramentas to bsicas


e sim de motores de jogo muito mais avanados, do gnero do Unreal Engine[pagina
oficial Unreal Engine], este motor usado para uma grande percentagem de jogos de

50
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

computador, visual e tecnologicamente avanados, jogos tipo Unreal Tournament,


Gears of War, Medal of Honor e outros.

Este motor oferece uma grande variedade de ferramentas para a criao de cada
segmento do jogo. Estas ferramentas oferecem a capacidade de renderizao de
objectos, animao, udio, fsica, gameplay, scripting (sistema para a criao de
sequncias complexas de eventos), vdeos, efeitos de partculas, ferramentas de edio e
uma linguagem de programao integrada (totalmente orientada ao objecto do gnero de
C#).

Comparando estas tecnologias, apercebe-se da disparidade entre elas. O


Gamemaker e um editor de regras onde uma linguagem de programao nem sequer
considerada, o Scratch uma linguagem ainda pouco desenvolvida e mais orientada ao
ensino de crianas e o Unreal Engine contem um conjunto de ferramentas que
necessitam um grande conjunto de conhecimentos para poder viabilizar o uso do motor
mas quando usadas podem criar jogos de muito alto nivel.

No falando sequer de custos, estas tecnologias contm cada uma, um grande


defeito. O Gamemaker e o Scratch so demasiado simples para o desenvolvimento de
um jogo para o mercado, e o Unreal Engine demasiado complexo, isto para o caso de
um programador que queira iniciar-se no processo de criao de jogos.

Para simplificar o processo de criao de jogos, mas sem perder capacidades


necessrias para um jogo que rivalize com os melhores do mercado, foi criado o XNA
Game Studio [pagina oficial do XNA Game Studio]. Esta ferramenta criada pela
Microsoft uma biblioteca de programao baseada em C# que tambm contem uma
Framework prpria para o desenvolvimento de jogos. O que o XNA oferece com a
Framework um motor de jogos j funcional e totalmente preparado para que o criador,
utilizando apenas as bibliotecas j existentes e algum conhecimento prprio, possa criar
o seu jogo.

Por exemplo, o programador no tem de se preocupar em criar mtodos


especficos para ligar, testar e usar a placa grfica, esta j vem especificada pela
Framework, o programador apenas ter de a chamar e utilizar os mtodos que a
Framework oferece. O mesmo se passa com os clculos matemticos e fsicos porque
vm inseridas na Framework bibliotecas que j especificam estes dados. Uma

51
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

caracterstica que o XNA tem e que fez com que a ferramenta tenha evoludo muito
depressa so as comunidades de desenvolvimento que possui, as outras tecnologias
tambm dispem destas comunidades, mas no caso do XNA estas so muito maiores. A
razo para isto o facto de a ferramenta ser livre.

Caractersticas
Nvel
Custos Capacidade Comunidades
Dificuldade
Tecnologias
GameMaker Pro Razoveis Fcil Baixa Sim
Unreal Engine Caro Complexo Alta Sim
XNA GameStudio Livre Mdio Mdia/Alta Sim
Scratch Livre Fcil Baixa Sim

Tabela 2 Comparao entre Tecnologias

5.7. Plataforma XNA

O XNA Game Studio considerado um Kit dedicado programao de jogos


para quem deseja aprender a criar jogos de computador. Kit porque partida a
plataforma j oferece uma panplia de ferramentas dedicadas a esse fim. O XNA traz
includo o IDE de desenvolvimento baseado no Visual Studio, mas apenas com a
possibilidade de utilizar a linguagem de programao C#. A Framework, que o
conjunto de classes necessrias para a execuo de um jogo XNA funcionando quer em
.Net Framework para Windows ou .NET Compact Framework para XBOX e ZUNE.
Traz ainda o XNA Content Pipeline, que a componente de gesto de contedos do
XNA, e para acabar o XACT, ferramenta de udio para organizar todos os arquivos de
som e os incorporar no jogo. Uma ltima caracterstica que o XNA Game Studio
gratuito o que permite um vasto conjunto de possibilidades para experimentar sem
despesa inicial.

5.8. Codificao

Um dos primeiros conceitos que se tem de aceitar sobre a programao de jogos


que um jogo na realidade um ciclo infinito de eventos, ou seja semelhana com o
que acontece com um filme o jogo uma sequncia de imagens que esto a ser tratadas
medida que o tempo passa. Tratadas porque para alm de estarem a ser desenhadas no
ecr esto tambm constantemente a ser modificadas, mas com a diferena em relao o
filme em que a interactividade com o jogador ir realizar a ideia de jogo.

52
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

5.8.1. Inicializar o Projecto de XNA

Ao iniciar um novo projecto em XNA, este cria desde logo o ciclo para o jogo e
no s. Cria tambm todo o motor do jogo, basta correr o programa sem qualquer
modificao que o motor j funciona. Apesar de que sem nada apenas ir aparece um
ecr azul, por traz desse ecr j o ciclo est a correr e todas as classes do XNA esto
prontas a ser usadas.

Figura 7 XNA motor de jogo

At este ponto nenhum cdigo foi inserido, mas para se poder comear a
codificar necessrio conhecer as principais funes do XNA que esto na classe
Game.cs. O motor partida contm seis funes que representam os passos necessrios
do jogo. As funes so:

public Game1()

protected override void Initialize()

protected override void LoadContent()

protected override void UnloadContent()

protected override void Update(GameTime gameTime)

protected override void Draw(GameTime gameTime)

Estas funes j so criadas juntamente com o novo projecto de XNA. A


primeira funo apenas o construtor do jogo que quando chamada representa o incio
do ciclo infinito. Esta inicializa automaticamente o Sistema grfico para o jogo.

53
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

A funo Initialize() destina-se a inicializar contedos no grficos e alguns


servios que o utilizador possa necessitar, por exemplo ser aqui que se iro inicializar
(gerar) as bibliotecas de sons para o jogo.

A seguinte funo, LoadContent() destina-se a introduzir o contedo grfico


necessrio ao jogo; por exemplo para um jogo so necessrias texturas e aqui que iro
ser inicializadas.

A funo UnloadContent(), o inverso da anterior, caso um tipo de textura deixe


de ser necessrio poder ser retirada de memoria usando esta funo.

Estas duas funes so as principais ligaes ao Content Pipeline, que tal como
j foi dito a componente de gesto de contedos do XNA Game Studio. O mais
importante a referir acerca deste gestor que sem o programador se preocupar em ler
imagens de diferentes tipos ou gerir memoria para cada uma delas, o Content Pipeline j
faz isso sozinho, facilitando assim o desenvolvimento do jogo.

de notar que estas funes s so chamadas, normalmente, uma vez no jogo,


ou seja quando o jogo inicializado estas funes so chamadas automaticamente. A
razo simples, s necessrio dizer onde esto as texturas uma vez, ou seja p-las em
memria. Uma vez isto completado pode o jogo comear utilizando as funes
seguintes.

A funo Update (GameTime gameTime), destina-se literalmente modificao


do estado em cada frame, aqui ser introduzido todo o gameplay do jogo, o estado dos
objectos e as suas interaces. No caso do XNA este tenta manter sempre uma
velocidade de frame de 60 frames por segundo, o que representa que a cada segundo
que passa a funo Update chamada 60 vezes, tal como a prxima funo de Draw.

A funo Draw (GameTime gameTime), destina-se ao desenho dos estados, ou


seja desenha 60 vezes por segundo todo o ecr e os objectos do jogo.

Esta noo de Frames por Segundo (FPS), representa o movimento do jogo, na


relalidade todo os objectos do jogo esto estticos, mas basta que durante esses 60
frames por segundo os faamos aparecer em locais diferentes que, a noo que o
homem tem de movimento, exactamente como acontece com os filmes.

54
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

5.8.2. Inicializar componentes

Antes de se comear a programar o gameplay necessrio inserir os objectos do


jogo, no caso deste teremos de inserir os fundos (background), as texturas das naves,
das balas e mais algumas de apoio. O processo e fcil. Primeiro teremos de adicionar as
imagens das texturas ao projecto. Para isto basta ir ao Soluction Explorer do jogo e
adicionar um Existing Item no Content do jogo tal como est exemplificado na
imagem #.

Figura 8 Adicionar Contedos

Este processo ter de ser repetido at todos os contedos estarem inseridos no


jogo. Para que a apresentao do cdigo seja melhor poder dividir os contedos por
pastas, criando novas pastas no New Folder.

Uma vez que todas as texturas esto inseridas ter-se- de as inicializar no


cdigo. Primeiro necessrio ter uma varivel do tipo Texture2D e trs Vector2 para
guardar a posio da nave.

Texture2D NOME;

Vector2 Position;

Vector2 Direction;

Vector2 Speed;

Esta varivel servir para armazenar a textura, neste momento j se obteve um


dos objectos do jogo, como o jogo ser em 2D a textura pode ser utilizada como a nave

55
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

em si, s faltar ir funo LoadContent() e inseri-la na memoria do jogo. A posio, a


velocidade e a direco sero usadas mais tarde para poder movimentar a nave.

Tal como foi demonstrado a funo LoadContent() introduz o contedo grfico


do jogo, este contedo ser guardado no Content Manager do XNA

NOME = Content.Load<Texture2D>("numberone_right");

Position = new Vector2(START_POSITION_X, START_POSITION_Y);

Direction = Vector2.Zero;

Speed = Vector2.Zero;

O Content Manager a ferramenta que foi descrita anteriormente por Content


Pipeline, aqui ser gerida a memoria necessria para tratar a imagem.

Neste momento a textura j est no jogo como um objecto, agora s falta o que
este vai fazer e como o desenhar. Seguindo o GDD criado, sabe-se que a nave que este
objecto representa ir movimentar-se (voar), no sentido dos pontos cardeais. E ter-se-o
de atribuir exactamente estes movimentos. Para isto ser possvel necessrio
compreender como orientado o mundo virtual do XNA.

X,Y(0,0)
(800,0)

(0,600)

Grfico 1 Sistema de Coordenadas


O XNA em 2D contm um sistema de coordenadas X e Y que comeam em zero
no canto superior esquerdo e aumentam a medida que se deslocam para o canto inferior
direito, tal como est demonstrado no grfico 1.

56
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Para inserir a nave no jogo ser necessrio criar algumas constantes para ajudar,

const int START_POSITION_X = 125;

const int START_POSITION_Y = 150;

const int SHIP_SPEED = 160;

const int MOVE_UP = -1;

const int MOVE_DOWN = 1;

const int MOVE_LEFT = -1;

const int MOVE_RIGHT = 1;

const int MAX_DOWN = 550;

const int MAX_RIGHT = 750;

No princpio comea-se com a posio inicial da


Y-1
nave, tanto em X como em Y. A seguir atribui-se 160 a
velocidade da nave, este nmero no mensurvel mas
X-1 X+1
ser usado mesmo para, usando clculos matemticos
simples, calcular a posio da nave a cada frame. As
quatro variveis seguintes servem para modificar a Y+1

direco na qual a nave vai. Este processo est


Grfico 2 Modificao de
apresentado no grfico 2. As duas ltimas variveis coordenadas

representam o valor mximo de X e Y para onde a nave


se pode deslocar, obrigando a nave a no sair do campo de viso (tamanho do ecr).

5.8.3. Desenhar Componentes

Uma vez os componentes inicializados ser necessrio desenh-los. Na funo


Draw() ir-se- usar o SpriteBatch para o objectivo. O SpriteBatch uma classe do XNA
que quando usado garante que todos os sprites (imagens) que forem utilizados tero as
mesmas caractersticas em relao ao jogo. No inicio do cdigo da classe Game.cs
verifica-se que o SpriteBatch j esta inicializado.

SpriteBatch spriteBatch;

Agora s teremos de usar esta varivel para desenhar no jogo. Na funo draw
teremos de realizar trs passos. Iniciar o SpriteBatch, desenhar a nave e fechar o
SpriteBatch. O cdigo para realizar estas tarefas o seguinte.

57
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

spriteBatch.Begin();

spriteBatch.Draw(NOME,new
Vector2(START_POSITION_X,START_POSITION_Y),Color.White);

spriteBatch.End();

Deste cdigo s ser necessrio explicar a linha do draw pois o Begin e o End
so o iniciar e o fechar. Na segunda linha j se est mesmo a desenhar a nave. O NOME
a textura que esta a ser desenhada, o new Vector2 vai ser a posio inicial da nave e
a Color.White est no cdigo porque representa a modulao das cores, que quando
definida como branca apresentar todas as cores do espectro, ficando com as cores
originais da imagem. Neste momento se o jogo fosse executado apareceria a imagem da
nave dentro do ecr do jogo, mas com o seu tamanho original.

Uma coisa a ter em conta quando se est a desenhar os objectos no ecr que as
coordenadas dos objectos tambm seguem o mesmo sistema do ecr do jogo, o que
significa que o canto superior esquerdo da imagem , para a prpria, o ponto X,Y (0,0)
como se demonstra no grfico 3.

X,Y(0,0)

Grfico 3 Coordenadas de um Sprite

Neste momento se o jogo fosse corrido, ir-se-ia ver uma imagem quase do
tamanho do ecr devido ao tamanho da imagem em si. De modo a no existir este
problema, ter-se- de modificar a escala da nave, mas para isso ser necessrio alterar o
mtodo de desenho da nave para a seguinte linha

spriteBatch.Draw(NOME,Position, new
Rectangle(0,0,NOME.Width,NOME.Height),Color.White,0.0f,
Vector2.Zero,0.3f,SpriteEffects.None,0);

58
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Com esta nova linha de cdigo, a imagem aparecer na mesma no ecr, mas
agora com uma escala inferior em 0.3, o que significa cerca de um tero o seu tamanho
original. A posio tambm foi alterada de modo a poder ser modificada
posteriormente.

Para a funo Draw() ter a possibilidade de usar escalas necessrio inserir mais
uma srie de coisas, uma vez que ficou quase tudo a zero de modo a no alterar nada
que no se queira. Foi acrescentado o rectngulo que tem os limites da imagem desde o
ponto (0,0) at ao ponto mximo da imagem (Max_Width, Max_Height). A seguir a
cor, foi acrescentada a rotao, que no caso zero, a seguir foi acrescentada a origem da
imagem a zero mais uma vez, a escala e para acabar os efeitos da imagem e o nvel a
que ser desenhada. Destes dois ltimos, os efeitos esto desligados e o 0 representa o
nvel a que a nave vai ser desenhada.

5.8.4. Update do Gameplay

Uma vez a nave desenhada no ecr, falta dar-lhe movimento, seno estaramos a
olhar apenas para uma imagem esttica. Para esta finalidade ter-se- de utilizar a funo
Update(). Aqui poderemos testar o teclado, rato ou gamepad e de acordo com o
resultado alterar o estado da nave. Neste exemplo ir-se- apenas usar o teclado mas
facilmente se podero encontrar dados de como usar os outros na comunidade XNA.

Primeiro necessrio saber o estado do teclado a cada momento, para isso ter-
se- de ter um varivel que teste o teclado a cada ciclo do jogo e tambm uma segunda
para se saber qual o estado do teclado no ciclo anterior.

KeyboardState PreviousKeyboardState;

Esta varivel ira guardar o estado do teclado no ciclo anterior, uma vez na
funo Update(), criar-se- a segunda que ter o estado actual.

KeyboardState aCurrentKeyboardState = Keyboard.GetState();

Obtendo o estado basta test-lo, para saber quais as teclas que esto a ser
pressionadas, para esta finalidade s ser necessrio usar o seguinte cdigo.

Speed = Vector2.Zero;

Direction = Vector2.Zero;

59
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

KeyboardState aCurrentKeyboardState = Keyboard.GetState();

if (aCurrentKeyboardState.IsKeyDown(Keys.Left) == true)

if (Position.X > 0)

Speed.X = SHIP_SPEED;

Direction.X = MOVE_LEFT;

else if (Position.X < 0)

Speed.X = 0;

Direction.X = 0;

Position += Direction * Speed *


(float)gameTime.ElapsedGameTime.TotalSeconds;

PreviousKeyboardState = aCurrentKeyboardState;

Este cdigo fcil de compreender. Primeiro necessrio passar a zero a


velocidade e direco, obrigando assim a nave a s mexer quando se pressionar uma
tecla. O restante cdigo utilizado para testar a tecla seta da esquerda do cursor e caso
esteja pressionada, atribuir velocidade e direco adequada. No caso de a tecla ser
pressionada ter-se- de testar a posio em X (valor horizontal) para ter a certeza que a
nave se encontra dentro do ecr, nesse caso poder movimentar-se, seno simplesmente
no se move. Antes de passar para o resto do cdigo ser necessrio repetir o processo
para as restantes teclas. No final mostra-se como que efectuada a transformao
destas variveis para modificar a posio da nave. posio soma-se a multiplicao da
velocidade pela direco, por exemplo 160 * (-1) d uma velocidade negativa, logo a
nave move-se para traz, e volta-se a multiplicar pelo total de segundos que passaram de
jogo, fazendo com que a nave se mova sequencialmente e no saltando pixis. Neste
momento se o jogo fosse inicializado, iria aparecer a nave com um tamanho mais
reduzido e com o uso dos cursores do teclado, mover-se-ia.

60
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

O jogo neste ponto ainda no est completo, mas esta seco apenas mostra a
simplicidade que criar objectos e usar os mtodos dos XNA, o prottipo final, estar
como anexo da dissertao, apenas necessrio mencionar que algum cdigo do jogo
foi retirado da comunidade XNA, que livremente disponibiliza para uso.

5.9. Projecto Scratch

O Scratch uma nova linguagem de programao, desenvolvida no


Massachusetts Intitute of Technology (MIT), que facilita a criao de histrias
interactivas, animaes, jogos, msica e arte, da ainda a possibilidade de partilhar as
criaes na internet. Desenvolvido, originalmente, para ajudar crianas (8 anos e mais) a
desenvolver capacidades de aprendizagem. Usando esta aplicao as crianas podero
experimentar e interiorizar capacidades importante do gnero de clculos matemticos,
ideias informticas, desenvolver a sua criatividade e lgica. De modo a criar um
paralelismo com o
XNA ir-se- criar o
mesmo pequeno
exemplo que foi feito
anteriormente. Para
comear com o
Scratch, basta ir ao
site oficial e fazer
download do
programa que livre.
Uma vez instalado

este apresenta
Figura 9 Ambiente inicial do Scratch
automaticamente o
ambiente de programao. Os Ambiente contem 4 seces principais, Seco de blocos,
de scripting, de sprites e de jogo. As seces tm funes especficas a de blocos
contem os movimentos, sons, aparncia, caneta, controle, sensores, operadores e
variveis. Para replicar o jogo feito anteriormente bastar usar blocos de movimento e
controle.

61
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Inicialmente ter-se- de apagar o


sprite que vem com o Scratch, para isso
basta clicar em cima do sprite do gato
na seco de sprites com o boto da
direita do rato e apagar. Aps isto ser
introduzido o sprite da nave espacial
utilizado anteriormente, para isso
carrega-se no boto de escolher novo
objecto do arquivo.

A imagem que se segue


demonstra o boto que deve ser usado e
o resultado da imagem depois de se
inserir. Neste momento necessrio
reduzir o sprite pois est do tamanho do
espao de jogo. Para isso basta usar o
boto que se encontra por cima da
Figura 10 Insero de sprites no Scratch
imagem para reduzir a imagem ao
tamanho pretendido.

Neste momento s falta criar os


movimentos para a nave, de modo a
andar para a direita, esquerda, cima e
baixo. Para isso ser necessrio
introduzir o bloco de movimento
mude x por [10] este bloco far que a
nave anda para a direita, na direco do
X, 10 pixeis, para se usar as outras
direces basta subtrair 10 pixeis
noutro bloco igual a este e para a
direco do Y basta usar o bloco
mude y por [10].

Com os movimentos
Figura 11 Blocos de script do jogo em Scratch
introduzidos, falta dizer qual tecla

62
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

que chama o bloco de movimento, para isso basta introduzir em cima de cada bloco de
movimento um bloco de controlo quando tecla [space] pressionada e mudar o campo
space pela tecla pretendida. No caso do jogo foram utilizadas as teclas dos cursores.

Com estes passos executados a nave j se movimenta igualando o que foi feito
no XNA.

63
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

6. Estudo Emprico

6.1. Objectos de Estudo

Visto que a ideia de programao de jogos nem sempre bem acolhida pela
comunidade, foi idealizado um estudo para testar o interesse dos alunos. O estudo
emprico realizado foi baseado num inqurito por questionrio, aplicado na Web para os
alunos de Engenharia Informtica da Universidade Fernando Pessoa, no qual foi obtida
uma amostra de 70 respostas num universo de pouco mais de 100 alunos. Foram
escolhidos os alunos de Engenharia Informtica devido ao intuito do questionrio; de
obter uma ideia real do interesse que os alunos do ramo de informtica demonstram em
relao introduo da programao de jogos de computador no ensino superior.

O aluno de um curso superior no ramo da informtica detm uma boa viso do


plano de estudo por que est a passar e tambm uma ampla ideia dos gostos e objectivos
dos seus colegas, assim o melhor objecto de estudo para obter uma previso sobre o
interesse desses alunos na programao de jogos para o ensino superior.

6.2. Motivao

Um curso que seja envolvido no mundo da computao de jogos pode, no s


ser uma mais-valia para os cursos de informtica, a comear pela obteno de uma
maior ateno e interesse dos seus alunos e terminando no desenvolvimento de grandes
profissionais que criaro e aplicaro tecnologias, hoje em dia impensveis. Durante um
curso de Engenharia Informtica o aluno bombardeado com uma srie de ferramentas
e processos / metodologias para o desenvolvimento de aplicaes. Mas estas aplicaes
nem sempre so motivantes para o aluno. A insero de projectos que possam motivar
mais o aluno a realiz-los, no s com a ideia de aprender mas tambm pelo gosto de o
concretizar, desenvolvero motivaes e capacidades fazendo com que este aluno possa
demonstrar uma destreza muito superior e assim superar-se consecutivamente para
atingir melhores e maiores resultados.

A insero da programao de jogos como projectos efectivos de disciplinas e


mesmo de cursos superiores j uma realidade em muitas universidades pelo mundo
fora, tendo j sido realizados estudos que demonstraram o interesse dos alunos por esses
cursos, [Zyda 2008] [Ferguson 2007].

64
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Em Portugal s recentemente que apareceram os primeiros cursos de


programao de jogos ao nvel superior, um exemplo o curso de Design de Jogos
Digitais do Instituto Politcnico de Bragana [pagina oficial do Instituto Politcnico de
Bragana]. Mas j anteriormente existiram alguns institutos e ncleos que
demonstraram algum interesse, tal como o Instituto Politcnico de Portalegre que
inseriu algumas disciplinas de concepo de jogos no plano curricular do curso de
Engenharia Informtica e o Ncleo Estudantil de Computao Grfica da Faculdade de
Engenharia do Porto. [pagina oficial do Instituto Politcnico de Portalegre] [pagina
oficial do Ncleo Estudantil de Computao Grfica]

O desafio o de criar um plano de estudos dedicado ao desenvolvimento de


jogos, que no depurasse o aluno das caractersticas essenciais de que este necessita
para ser um Engenheiro Informtico mas que em simultneo o motive a realizar o curso
superando-se em cada momento.

Com o passar do tempo o desenvolvimento de jogos est a ser integrado na


comunidade acadmica, pelo mundo fora, como um meio de aprendizagem de
confiana. Como tal as grandes Universidades criaram cursos com esse objectivo.
Cursos orientados ao desenvolvimento da programao de jogos esto implementados
em muitas universidades por todo o mundo e em grande expanso.

Um curso de desenvolvimento de jogos pode ser extremamente caro envolvendo


vrias ferramentas de custos altos, mas a Microsoft, lanou para o mercado uma
ferramenta que para alm de ser livre, pode facilmente ser usada para o ensino. Esta
ferramenta o XNA Game Studio que integra grande parte das funcionalidades que
so hoje ensinadas nos cursos de Engenharia Informtica simplificando assim a sua
insero.

O XNA a Framework.NET para o desenvolvimento de jogos, tanto para a


plataforma de Windows como para a XBOX 360 ou ZUNE. Tanto o XNA Game
Studio como o C# Express esto livres para download na Microsoft. Estas ferramentas
permitem assim o estudo de desenvolvimento de jogos para departamentos com baixos
recursos, facilitando a sua insero no currculo de um Curso de Engenharia
Informtica.

65
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

6.3. Mtodo de Recolha

O mtodo de recolha usado para o questionrio, foi o da introduo do mesmo


numa pgina Web usando o LimeSurvey [pagina oficial do LimeSurvey], uma aplicao
de criao e gesto de questionrios livre. A aplicao foi inserida num espao Web
disponibilizado pelo ES-CEFOC Estudo de Sondagens e Centro de Formao
Contnua da Universidade Fernando Pessoa. Com o apoio da coordenao do Curso de
Engenharia de Software o questionrio foi divulgado, possibilitando atingir o maior
nmero possvel de alunos.

6.4. Questionrio - Anlise de Resultados

Iniciar-se- por resumir as perguntas e concluses retiradas do questionrio aps


uma primeira reviso. As primeiras perguntas tinham como objectivo saber quais as
disciplinas que os alunos consideravam serem necessrias para a realizao de um bom
curso de Engenharia Informtica. As disciplinas mais indicadas foram as de Algoritmos,
de Programao e de Engenharia de Software. Aps estas perguntas foi averiguado o
interesse dos alunos pelos jogos e pela prpria programao dos mesmos. Sem grande
novidade resultou numa opinio quase unnime em relao ao gosto por jogos bem
como igualmente ao interesse pela sua programao.

Prosseguindo foram inquiridas as motivaes que levam um aluno a seguir para


o ensino superior e se achava que se o curso de Engenharia Informtica contivesse
programao de jogos no seu plano poderia ser um factor de motivao ainda maior
para a escolha do curso pelo aluno.

A importncia da existncia destes cursos tambm foi questionada aos alunos,


que por sua vez responderam que neste momento seria urgente existirem cursos do
gnero. Neste caso a resposta com mais escolha foi a que correspondia promoo de
uma melhor formao na rea.

Por curiosidade foi inquirido aos alunos quais as linguagens de programao de


jogos conheciam, e o resultado foi principalmente as linguagens de programao que
so ensinadas actualmente no curso de engenharia, o Java e o C, apesar de estas no
serem linguagens dedicadas programao de jogos. Em segundo lugar aparecem duas

66
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

que sim j so dedicadas apenas programao de jogos, o OpenGL e o Microsoft


XNA.

Para finalizar foi perguntado quais seriam as maiores dificuldades para a


definio de cursos superiores dedicados programao de jogos. Neste caso as
respostas foram pouco expressivas, pois situaram-se bastante nos valores mdios entre
muito difcil e nada difcil.

Aprofundando mais as respostas do questionrio verificar-se- o verdadeiro


interesse destes alunos pela programao de jogos de computador, como se ver a
seguir.

Na primeira questo foi inserido um quadro no pressuposto de obter a opinio do


aluno quanto ao tipo de conhecimento que achava crtico para um engenheiro
informtico. Este quadro oferecia um conjunto de respostas que iam desde o nvel 1
(Pouco Critico) at ao nvel 7 (Muito Critico) inserindo tambm a hiptese de no
responder. Para que os alunos focassem melhor as suas respostas foram usados nomes
de matrias geralmente dadas no curso. Sendo no quadro a primeira pergunta
enumeraram-se as alternativas em alneas da seguinte forma:

1.1 Tecnologias de Sistemas Operativos


1.2 Programao de computadores (Algoritmia e programao)
1.3 Programao orientada aos objectos
1.4 Redes de computadores e comunicao de dados
1.5 Sistemas de informao
1.6 Multimdia
1.7 Base de Dados
1.8 Engenharia de Software
1.9 Outros. (Por favor, especificar)

Foi sem grande surpresa que se verificou que as matrias que os alunos acharam
mais crticas para o curso fossem Programao de computadores (Algoritmos e
Programao) e Engenharia de Software tal como o demonstram os seguintes grficos:

67
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

40 36
1. Pouco Critico (1)
35
N 2 (2)
30
u 3 (3)
A 25
m 4 (4)
l 20
e 15 5 (5)
u
r 15
n 6 (6)
o 8
o 10 5 7. Muito Crtico (7)
s 2 3
d 5 0 1 Sem resposta
e 0
Programao de computadores (Algoritmia e programao)

Grfico 4 Que tipo de conhecimento considera crtico para um Engenheiro Informtico? Programao de
computadores

Este grfico representa o nmero de alunos que achou muito crtico a


aprendizagem de Programao de computadores. Em termos de percentagem verifica-se
que 51.43% dos alunos acredita que esta matria a mais importante para o curso.

O grfico seguinte representa a segunda rea que os alunos acreditam ser mais
crtica para um engenheiro informtico, a disciplina de Engenharia de Software.

29
30

N 25 1. Pouco Critico (1)


22
u 2 (2)
A
m 20 3 (3)
l
e 4 (4)
u
r 15
n 5 (5)
o 10
o 10 6 (6)
s 7. Muito Crtico (7)
d
e 5 2 2 2 2 Sem resposta
1

0
Engenharia de Software

Grfico 5 Que tipo de conhecimento considera crtico para um Engenheiro Informtico? Engenharia de
Software

68
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Apesar de uma grande quantidade dos alunos no considerar esta matria como
muito crtica, no deixa de ser uma escolha bastante importante para o curso.

Nas seguintes perguntas, da segunda quarta, indagava-se sobre os gostos dos


alunos e a curiosidade que estes detinham pela indstria dos jogos. As seguintes
perguntas foram expostas juntamente com as opes possveis de Sim, No e Sem
Resposta.

2. Gosta de jogos de computador?


3. Gostava de saber como funcionam (e so programados) os jogos?
4. Gostaria de saber criar os seus prprios jogos?

Obtiveram-se repostas para as 3 perguntas que rondavam os 85% de Sim. Este


valor no surpreendente visto se estar a falar de alunos de informtica. Os grficos
seguintes demonstram exactamente os resultados das perguntas.

Estes resultados demonstram


sem sombra de dvida o interesse que
14% 0% Sim (Y) um aluno do ensino superior do ramo da
No (N)
86% Informtica tem para com esta matria.
Sem resposta
Poder-se-ia criar uma soluo para
apoiar os alunos a desenvolver jogos de
computador.
Grfico 6 Gosta de jogos de computador?

Sim (Y)
13% 6%
7%3% Sim (Y)
No (N)
No (N) 81%
90%
Sem resposta Sem
resposta

Grfico 7 Gostava de saber como funcionam (e so Grfico 8 Gostaria de saber criar os seus prprios
programados) os jogos? jogos?

69
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

A motivao dos alunos para o ingresso no ensino superior tambm foi inquirida
neste questionrio e o quanto motivado estaria o aluno caso o curso fosse de
programao de jogos de computador, deste modo foram feitas as seguintes questes:

5. Considera que os jogos de computador so um factor de motivao para o


ingresso de alunos no ensino superior no ramo da informtica?
6. Acredita que a motivao um factor essencial para o progresso do aluno no
ensino superior?
7. O que poder motivar mais o progresso de um aluno?

Mais uma vez os resultados no foram surpreendentes pois os alunos voltaram a


responder Sim com bastante frequncia, isto para as perguntas 5 e 6, no caso da
pergunta 7 foi-lhes exposto as seguintes quatro opes de escolha.

Jogar
Desenvolver / programar
Concepo / histria do jogo
Sem Resposta

Sim (Y) Sim (Y)


3% 1%
24% 0%
No (N) No (N)
76%
96%
Sem Sem
resposta resposta

Grfico 9 Considera que os jogos de computador Grfico 10 Acredita que a motivao um factor
so um factor de motivao para o ingresso de essencial para o progresso do aluno no ensino
alunos no ensino superior no ramo da superior?
informtica?

Para as perguntas 5 e 6 as respostas so bastante esclarecedoras, a maioria dos


alunos considera que a motivao um factor essencial para o progresso do aluno no
ensino superior e tambm, embora em menor nmero, consideram que os jogos podem
ser um factor de motivao para o ingresso no ensino superior.

70
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

No prximo grfico confirma-se o interesse dos alunos pela programao e que


no esto a tirar o curso para jogar ou contar histrias, mas sim para programar e
desenvolver software.

Neste caso 70% dos inquiridos responderam Desenvolver / programar.

4% Jogar (1)
16% 10%
Desenvolver /
Programar (2)
Concepo / Histria
70%
do jogo (3)
Sem resposta

Grfico 11 O que poder motivar mais o progresso de um aluno?

As cinco perguntas seguintes pretendem demonstrar o que os alunos pensam de


um curso baseado em jogos de computador e no caso deste existir onde seria melhor
aplicado, ou seja em que nvel de escolaridade seria inserido mais correctamente e se
concordam que um curso destes poderia ter boas sadas profissionais.

8. Concorda com uma lgica de aprendizagem baseada na programao de


jogos de computador no ensino superior?
9. Uma vez feita a opo profissional, de programador de jogos, considera que
esta uma profisso com futuro?
10. Sabendo que a programao de jogos utiliza as linguagens de programao,
considera adequada a utilizao de uma aprendizagem baseada na
programao de jogos para uma disciplina de programao?
11. Sabendo que a programao de jogos necessita de metodologias avanadas
de investigao e desenvolvimento poder ser usada para disciplinas de
engenharia de software ou anlise de sistemas?
12. Em que nvel de educao considera que a programao de jogos, pode ser
inserida.

Mais uma vez as perguntas tem respostas de Sim e No, excepo da ltima
que oferece quatro escolhas,

71
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Secundrio (10 12 anos de escolaridade)


Licenciatura.
Mestrado.
No sabe.

Sim (Y) Sim (Y)


12% 13%
11%
21%
No (N) No (N)
67% 76%

Sem Sem
resposta resposta

Grfico 12 Concorda com uma lgica de Grfico 13 Uma vez feita a opo profissional, de
aprendizagem baseada na programao de jogos programador de jogos, considera que esta uma
de computador no ensino superior? profisso com futuro?

Nestas respostas, regista-se que os alunos acreditam no uso de uma


aprendizagem baseada em jogos e que crem poder ter boas sadas profissionais quando
acabarem o curso.

Curiosamente as perguntas 10 e 11 foram feitas de modo a obter uma ideia se os


alunos concordariam com a insero de matrias relacionadas com a programao de
jogos nas disciplinas de programao e de engenharia de software, o curioso foi o facto
de os alunos acharem que estas so as disciplinas mais crticas para o curso e
concordarem com a insero destas matrias nas disciplinas.

8% Sim (Y) Sim (Y)


20%
19% 6%
No (N) No (N)
73% 74%

Sem Sem
resposta resposta

Grfico 14 Sabendo que a programao de jogos Grfico 15 Sabendo que a programao de jogos
utiliza as linguagens de programao, considera necessita de metodologias avanadas de
adequada a utilizao de uma aprendizagem investigao e desenvolvimento poder ser usada
baseada na programao de jogos para uma para disciplinas de engenharia de software ou
disciplina de programao? anlise de sistemas?

72
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Como os grficos demonstram os alunos concordam com a utilizao de uma


aprendizagem baseada na programao de jogos de computador para as disciplinas de
Programao e Engenharia de Software ou Anlise de Sistemas.

De todas as respostas at agora revistas, pode-se desde j concluir que um curso


de Engenharia Informtica orientado para a programao de jogos de computador seria
bem visto pelos alunos.

Falta agora saber em que altura da escolaridade, consideram os alunos que o


curso deveria ser inserido. Esta pergunta a 12 do questionrio e cria um dilema. Os
alunos dividiram-se entre a licenciatura e o mestrado, criando assim um problema. O
resultado demonstrado no seguinte grfico:

Secundrio (10
12 anos de
escolaridade) (a)
7% 13%
Licenciatura (b)
40%
40%
Mestrado (c)

Sem resposta

Grfico 16 Em que nvel de educao considera que a programao de jogos, pode ser inserida

Como o grfico demonstra a licenciatura e o mestrado receberam ambos 40%


das respostas dos alunos, passando assim a opo da insero do curso para a instituio
que o oferece. Apenas se pode concluir que o curso pertence ao ensino superior.

Na pergunta 13 foi inserido um novo quadro de respostas por nveis. Nele


pretendia-se saber o que os alunos achavam sobre a importncia da existncia de cursos
dedicados programao de jogos. Para tal foram inseridas as seguintes propostas:

1. Novos ramos de desenvolvimento e novas licenciaturas


2. Criao de cursos superiores mais dedicados programao de jogos
3. Promover a formao na rea
4. Aplicar esta tecnologia noutros ambientes e processos de negcio
5. Desenvolver novas caractersticas e competncias para os estudantes

73
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

6. Inovar produtos, procedimentos e servios

Mais uma vez foram usados os nveis de 1 (Pouco critico) a 7 (Muito Critico) e
Sem resposta para finalizar.

Os resultados obtidos mostram que as opes 5, 6 e 7 somadas so


significativamente mais volumosas que as quatro primeiras, demonstrando assim o
interesse e a importncia que os alunos atribuem existncia dos cursos em anlise,
como o apresenta o seguinte grfico:

19
20
18 1. Pouco Critico (1)
15 15
16 2 (2)
14 3 (3)
12 10 4 (4)
10 8
5 (5)
8
6 (6)
6
4 2 7. Muito Crtico (7)
1
2 0 Sem resposta
0
Inovar produtos, procedimentos e servios

Grfico 17 Que nvel de importncia atribui necessidade de existirem cursos dedicados programao de
jogos - Inovar produtos, procedimentos e servios

De modo a obter uma noo real das linguagens de programao que os alunos
conheciam, foi inserida uma pergunta que apresentava algumas das linguagens de
programao mais utilizadas para a programao de jogo, desta maneira poder-se-ia
saber o que os alunos mais conheciam. O seguinte grfico representa essa pergunta.

74
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

60 55

46
50 14.1 Linguagem C (1)

40 14.2 Java (2)


33
31
14.3 Linguagem C++ (3)
26
30
14.4 Unreal Engine (4)

20 14.5 Microsoft XNA (5)


11
14.6 OpenGL (6)
10

0
Quais so as linguagens de programao de jogos que conhece?

Grfico 18 Quais so as linguagens de programao de jogos que conhece?

relativamente sem grande surpresa que as linguagens mais conhecidas sejam o


Java e o C, isto tambm porque para alm de serem as matrias mais leccionadas nos
cursos de Engenharia de Software, so as mais usadas no mundo inteiro.

A pergunta 15 do questionrio, tenta perceber se os alunos compreendem os


problemas que podem aparecer com a criao de cursos dedicados ao ensino de
programao de jogos. Foi assim criado um quadro de respostas por nveis, mas que
desta vez ia desde o nvel 1 (Pouco difcil) at ao nvel 7 (Muito difcil) e com a
hiptese de no dar resposta como anteriormente. As perguntas eram as seguintes.

1. Aspectos culturais
2. Problemas de comunicao e exposio dos cursos
3. Aceitao do publico em geral
4. Carncia de recursos humanos e competncias na rea
5. Infra-estruturas tecnolgicas inadequadas
6. Carncia de recursos financeiros
7. Tempo disponibilizado pelas partes envolvidas
8. Outros. (Por favor, especificar)

Neste caso os alunos orientaram as suas respostas principalmente para o nvel 4


obtendo um conjunto de respostas muito medianas. Muito provavelmente esta pergunta
no era adequada aos alunos, mas sim a coordenadores de curso e outros responsveis.

75
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

7. Concluso

O objectivo desta dissertao foi tentar identificar porque razo o


desenvolvimento de jogos de computador no realizado em grande escala em
Portugal. Isto poderia ser justificado pela pouca oferta de cursos superiores dedicados a
esta rea. Esta situao sofreu uma alterao satisfatria, com a criao de dois cursos
de ensino superior, direccionados para a temtica de programao de jogos. O problema
que se coloca agora a no existncia de um modelo de engenharia de software
dedicado programao de jogos. Com o desenvolvimento desta dissertao, procura-se
solucionar esta falha expondo um modelo de software direccionado exclusivamente para
a criao de jogos de computador. De modo a comprovar a metodologia, esta foi
utilizada para criar um prottipo de um jogo de computador.

A principal preocupao no processo de implementao de um novo curso, ou


rea de interesse, tentar discernir se esta ter ou no, interesse e receptividade por
parte do pblico-alvo, neste caso, alunos a terminar a sua rea de formao obrigatria.
Para o presente trabalho no foi possvel obter opinies junto destes alunos, pelo que se
resolveu realizar um questionrio online aos alunos de Engenharia Informtica, no qual
teriam oportunidade de responder a determinas questes que avaliavam o seu interesse,
sobre a possvel insero de programao de jogos no programa curricular.

Um aluno que se sinta estimulado com o desenvolver do curso, com certeza


um aluno melhor, mais dedicado. A motivao foi um factor importante quando foi
executado o estudo emprico, pois era necessrio saber qual a opinio dos alunos sobre a
insero de programas curriculares orientados aos jogos no curso de Engenharia
Informtica. Com a opinio dos alunos valoriza-se a necessidade destes programas,
como foi provado, uma grande maioria de alunos concorda plenamente com esta
abordagem reflectida nestes cursos.

A concluso a que se chega aps a avaliao de um conjunto significativo de


opinies que, uma larga maioria, concorda e sentir-se-ia mais estimulada se o curso de
Engenharia Informtica inclusse uma valncia de programao de jogos no seu
currculo.

A concluso final que se pode retirar desta dissertao, impulsiona criao de


mais cursos dedicados programao de jogos, visto ser uma rea com evidente futuro

76
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

e para a qual os alunos demonstram imenso interesse. Com a ajuda de um modelo de


Engenharia de Software para o desenvolvimento de jogos de computador estes novos
cursos seriam mais uma ferramenta para estimular os alunos, no sendo obrigados e
seguir modelos convencionais, mas no retirando aos alunos os requisitos necessrios
para a criao de software.

Foram duas as limitaes que se apresentaram durante o desenvolvimento desta


dissertao: A primeira foi o grande conjunto de informao que existe nesta rea, tanto
ao nvel do desenvolvimento de jogos como ao nvel da Engenharia de Software. No
existe ainda um modelo de engenharia de software dedicado rea em questo, e
existem inmeros gneros de jogos. Esta limitao obriga ento a criar um modelo
generalizado, pois contem a necessidade de funcionar para qualquer tipo de jogo.

A segunda limitao foi a impossibilidade de contactar com alunos que


estivessem a terminar o ensino obrigatrio. Deste modo poder-se-ia realmente saber o
seu verdadeiro interesse nesta rea. Assim foram contactados alunos do primeiro ano de
Engenharia Informtica.

Uma perspectiva futura que se podia executar seria a utilizao desta dissertao
para o apoio criao de um novo curso ou mestrado orientado ao desenvolvimento de
jogos de computador.

77
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

8. Bibliografia

Baldwin, M. (2005). Game Design Document Outline Baldwin Consultant

Barker, F. S. (2006).Visual C# 2005 Express Edition Starter Kit, Editora Wrox

Beard, S.D., Ringo, L.A., Mader, B., Buchmann, E.H., Tanita, T. (2008). Space Shuttle
Landing and Rollout Training at the Vertical Motion Simulator, American Institute of
Aeronautics and Astronautics

Boehm, B. (1988)."A Spiral Model of Software Development and Enhancement" - IEEE


Computer, vol.21

Chentanez, N., Alterovitz,R., Ritchie,D., Cho, L., Hauser,K.K., Goldberg, K.,


Shewchuck,J.R., OBrien,J.(2009),Interactive Simulation of Surgical Needle Insertion
and Steering. ACM Transactions on Graphics, Vol. 28, No. 3, Article 88

Creators Club de XNA http://creators.xna.com/ visitado em 30/10/2009

Dennis, M. R. (1996). The Evolution of the Unix Time-sharing System, Lucent


Technologies Inc.

Doughty, M. (). COMPUTER GAME DEVELOPMENT EDUCATION AT


UNIVERSITY, University of Lincoln, Brayford Pool, Lincoln, UK

edHeads Operao a um joelho http://www.edheads.org/activities/knee/ - visitado


06/10/2009

Ferguson,E. Rockhold, B. Heck, B.(2007).Video Game Development Using XNA


Game Studio And C#.NET Artigo ACM New York 115-118

GameMaker - http://www.yoyogames.com/make - visitado 24/11/2009

Grootjans, R. (2009), XNA 3.0 Game Programming Recipes: A Problem-Solution


Approach, Editora Apress

Instituto Politcnico de Portalegre http://www.estgp.pt/ensino/07_08/eijs/eijm.asp


visitado em 23/03/2009

78
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Kabashi, A. El-Saabi, H. (2006). Game Software Process, Tese.

Miles, R, (2008). Microsoft XNA Game Studio 2.0: Learn Programming Now!,
Editora Microsoft.

Nacke, L. (2005). Facilitating the education of game development, Artigo

Ncleo Estudantil de Computao Grfica http://necg.fe.up.pt/necgsite/noticias


visitado em 23/03/2009

Pagina oficial do curso de Design de Jogos Digitais do Instituto Politcnico de Bragana


- http://djd.esact.ipb.pt/acesso.htm - visitado 26/10/2009

Pagina oficial do jogo Flight Simulator X -


http://www.microsoft.com/games/flightsimulatorX/ visitado em 29/09/2009

Pagina oficial da plataforma para questionrios online LimeSurvey -


http://www.limesurvey.org/ visitado 28/12/2009

Pressman, R. S. (2006). Engenharia de Software, Editora Mac Graw Hill

Scratch - http://scratch.mit.edu/ - Visitado 17/12/2009

Second Life http://secondlife.com/ - visitado 06/10/2009

Silva, J. Sedlak, J. (2008). Building XNA 2.0 Games Editora Apress

Software De Cirurgia Plstica Virtual 1.0 http://www.photo-warping.com/pt-br -


Visitado 06/10/2009

Sommerville, I. (1997), Software Engineering, Editora Addison-Wesley

(2004). SWEBOK Guide to the Software Engineering Body of Knowledge, IEEE


2004 Version

Unreal Engine - http://www.unrealtechnology.com/ - visitado 24/11/2009

Wallace, S. Russel, I. Markov, Z. (2008).Integrating Games and Machine in th


Undergraduated Computer Science Classroom Artigo ACM GDCSE08

79
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

XNA Game Studio - http://msdn.microsoft.com/en-gb/xna/default.aspx - visitado


24/11/2009

Zyda, M. Lacour, V. Swain, C. (2008).Operating a Computer Science Game Degree


Program Artigo ACM GDCSE08

80
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

9. Anexos

9.1. Questionrio Estudo do perfil de um aluno para um curso


superior de informtica no mbito da programao de jogos
Exmo(a). Sr(a).,

Este questionrio foi desenvolvido com a finalidade de identificar e analisar os perfis dos
alunos que ingressam num curso superior de informtica, e que tero interesse num ramo de
especializao em programao de jogos de computador. Como tal, ficaria muito grato se fizesse
o favor de o preencher, respondendo a todas as questes com a mxima sinceridade. Trata-se de
um questionrio em que se garante o completo anonimato e a confidencialidade das respostas
dadas pelos participantes.

O objectivo deste questionrio o de identificar os motivos que possam levar um


candidato ao ensino superior a ingressar num curso de informtica que integre um ramo de
programao de jogos de computador. Neste contexto, as questes abrangem, em particular, os
aspectos mais significativos de um curso que podero motivar um aluno para o desenvolvimento
de simulaes virtuais interactivas, isto, de jogos de computador.
1. Que tipo de conhecimento considera critico para um Engenheiro Informtico?

Muito crtico
Pouco crtico

1.1 Tecnologias de Sistemas Operativos 1 2 3 4 5 6 7


1.2 Programao de computadores (Algoritmia e programao) 1 2 3 4 5 6 7
1.3 Programao orientada aos objectos 1 2 3 4 5 6 7
1.4 Redes de computadores e comunicao de dados 1 2 3 4 5 6 7
1.5 Sistemas de informao 1 2 3 4 5 6 7
1.6 Multimdia 1 2 3 4 5 6 7
1.7 Base de Dados 1 2 3 4 5 6 7
1.8 Engenharia de Software 1 2 3 4 5 6 7
1.9 Outros. (Por favor, especificar)
-
-
2. Gosta de jogos de computador?
a. Sim.
b. No.
c. No aplicvel.
3. Gostava de saber como funcionam (e so programados) os jogos?
a. Sim.
b. No.
c. No aplicvel.
(continue na pgina seguinte, por favor)

81
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

4. Gostaria de saber criar os seus prprios jogos?


a. Sim.
b. No.
c. No aplicvel.
5. Considera que os jogos de computador so um factor de motivao para o
ingresso de alunos no ensino superior no ramo da informtica?
a. Sim.
b. No.
c. No aplicvel.
6. Acredita que a motivao um factor essencial para o progresso do aluno no
ensino superior?
a. Sim.
b. No.
c. No aplicvel.
7. O que poder motivar mais o progresso de um aluno?
a. Jogar
b. Desenvolver/programar
c. Concepo / histria do jogo
8. Concorda com uma lgica de aprendizagem baseada na programao de jogos
de computador no ensino superior?
a. Sim.
b. No.
c. No aplicvel.
9. Uma vez feita a opo profissional, de programador de jogos, considera que esta
uma profisso com futuro?
a. Sim.
b. No.
c. No aplicvel.
10. Sabendo que a programao de jogos utiliza as linguagens de programao,
considera adequada a utilizao de uma aprendizagem baseada na programao
de jogos para uma disciplina de programao?
a. Sim.
b. No.
c. No aplicvel.

(continue na pgina seguinte, por favor)

82
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

11. Sabendo que a programao de jogos necessita de metodologias avanadas de


investigao e desenvolvimento poder ser usada para disciplinas de engenharia
de software ou analise de sistemas?
a. Sim.
b. No.
c. No aplicvel.

12. Em que nvel de educao considera que a programao de jogos, pode ser
inserida
a. Secundrio (10 12 anos de escolaridade)
b. Licenciatura.
c. Mestrado.
d. No sabe.
13. Que nvel de importncia atribui necessidade de existirem cursos dedicados
programao de jogos

Muito importante
Nada importante

13.1 Novos ramos de desenvolvimento e novas licenciaturas 1 2 3 4 5 6 7


13.2 Criao de cursos superiores mais dedicados programao de jogos 1 2 3 4 5 6 7
13.3 Promover a formao na rea 1 2 3 4 5 6 7
13.4 Aplicar esta tecnologia noutros ambientes e processos de negcio 1 2 3 4 5 6 7
13.5 Desenvolver novas caractersticas e competncias para os estudantes 1 2 3 4 5 6 7
13.6 Inovar produtos, procedimentos e servios 1 2 3 4 5 6 7
14. Quais so as linguagens de programao de jogos que conhece?
14.1. Linguagem C
14.2. Java
14.3. Linguagem C++
14.4. Unreal Engine
14.5. Microsoft XNA
14.6. OpenGL

(continue na pgina seguinte, por favor)

83
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

15. Quais so as maiores dificuldades para a definio de cursos superiores


dedicados programao de jogos?

Muito difcil

Nada difcil
15.1 Aspectos culturais 1 2 3 4 5 6 7
15.2 Problemas de comunicao e exposio dos cursos 1 2 3 4 5 6 7
15.3 Aceitao do publico em geral 1 2 3 4 5 6 7
15.4 Carncia de recursos humanos e competncias na rea 1 2 3 4 5 6 7
15.5 Infra-estruturas tecnolgicas inadequadas 1 2 3 4 5 6 7
15.6 Carncia de recursos financeiros 1 2 3 4 5 6 7
15.7 Tempo disponibilizado pelas partes envolvidas 1 2 3 4 5 6 7
15.8 Outros. (Por favor, especificar)
-
-

Muito obrigada pela participao.

84
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

9.2. Resultados do Questionrio


1. Que tipo de conhecimento considera critico para um Engenheiro Informtico?
1.1 Tecnologias de Sistemas Operativos

Resposta Contagem Percentagem


1. Pouco Critico (1) 1 1.43%
2 (2) 1 1.43%
3 (3) 2 2.86%
4 (4) 14 20.00%
5 (5) 13 18.57%
6 (6) 18 25.71%
7. Muito Crtico (7) 19 27.14%
Sem resposta 2 2.86%

19
20 18
18 1. Pouco Critico (1)
N
16 14 2 (2)
u 13
A 14
m 3 (3)
l 12
e 4 (4)
u
r 10
n 5 (5)
o 8
o 6 (6)
s 6
d 4 7. Muito Crtico (7)
2 2
e 1 1
2 Sem resposta
0
Tecnologias de Sistemas Operativos

1.2 Programao de computadores (Algoritmia e programao)

Resposta Contagem Percentagem


1. Pouco Critico (1) 2 2.86%
2 (2) 0 0.00%
3 (3) 1 1.43%
4 (4) 5 7.14%
5 (5) 8 11.43%
6 (6) 15 21.43%
7. Muito Crtico (7) 36 51.43%
Sem resposta 3 4.29%

85
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

40 36
1. Pouco Critico (1)
N 35
u 2 (2)
A 30
m 3 (3)
l 25
e 4 (4)
u
r 20 15
n 5 (5)
o 15
o 6 (6)
8
s 10
d 5 7. Muito Crtico (7)
2 3
e 5 0 1 Sem resposta
0
Programao de computadores (Algoritmia e programao)

1.3 Programao orientada aos objectos

Resposta Contagem Percentagem


1. Pouco Critico (1) 2 2.86%
2 (2) 1 1.43%
3 (3) 2 2.86%
4 (4) 5 7.14%
5 (5) 12 17.14%
6 (6) 23 32.86%
7. Muito Crtico (7) 21 30.00%
Sem resposta 4 5.71%

25 23
21 1. Pouco Critico (1)
N
u 20 2 (2)
A
m 3 (3)
l 15
e 12 4 (4)
u
r
n 5 (5)
o 10
o 6 (6)
5
s 4
d 5 7. Muito Crtico (7)
2 2
e 1 Sem resposta
0
Programao orientada aos objectos

86
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

1.4 Redes de computadores e comunicao de dados

Resposta Contagem Percentagem


1. Pouco Critico (1) 1 1.43%
2 (2) 0 0.00%
3 (3) 3 4.29%
4 (4) 4 5.71%
5 (5) 16 22.86%
6 (6) 25 35.71%
7. Muito Crtico (7) 18 25.71%
Sem resposta 3 4.29%

25
25
1. Pouco Critico (1)
N
20 18 2 (2)
u
A 16
m 3 (3)
l 15
e 4 (4)
u
r
n 5 (5)
o 10
o 6 (6)
s 4
d 5 3 3 7. Muito Crtico (7)
e 1 Sem resposta
0
0
Redes de computadores e comunicao de dados

1.5 Sistemas de informao

Resposta Contagem Percentagem


1. Pouco Critico (1) 3 4.29%
2 (2) 1 1.43%
3 (3) 4 5.71%
4 (4) 15 21.43%
5 (5) 22 31.43%
6 (6) 10 14.29%
7. Muito Crtico (7) 12 17.14%
Sem resposta 3 4.29%

87
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

25 22
1. Pouco Critico (1)
N
u 20 2 (2)
A 15
m 3 (3)
l 15
e 12 4 (4)
u
r 10
n 5 (5)
o 10
o 6 (6)
s 4
d 5 3 3 7. Muito Crtico (7)
e 1 Sem resposta
0
Sistemas de informao

1.6 Multimdia

Resposta Contagem Percentagem


1. Pouco Critico (1) 4 5.71%
2 (2) 4 5.71%
3 (3) 2 2.86%
4 (4) 13 18.57%
5 (5) 20 28.57%
6 (6) 15 21.43%
7. Muito Crtico (7) 10 14.29%
Sem resposta 2 2.86%

20
20
18 1. Pouco Critico (1)
N 15
u 16 2 (2)
A 13
m 14 3 (3)
l 12
e 10
u 4 (4)
r 10
n 5 (5)
o 8
o 6 (6)
6 4 4
s
d 4 2 2 7. Muito Crtico (7)
e 2 Sem resposta
0
Multimdia

88
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

1.7 Base de Dados

Resposta Contagem Percentagem


1. Pouco Critico (1) 2 2.86%
2 (2) 0 0.00%
3 (3) 2 2.86%
4 (4) 6 8.57%
5 (5) 17 24.29%
6 (6) 21 30.00%
7. Muito Crtico (7) 19 27.14%
Sem resposta 3 4.29%

25
N 21
1. Pouco Critico (1)
u 19
A 20 2 (2)
m 17
l
e 3 (3)
u 15
r 4 (4)
n
o
o 5 (5)
10
s 6 6 (6)
d
e 5 3 7. Muito Crtico (7)
2 2
0 Sem resposta
0
Base de Dados

1.8 Engenharia de Software

Resposta Contagem Percentagem


1. Pouco Critico (1) 2 2.86%
2 (2) 1 1.43%
3 (3) 2 2.86%
4 (4) 2 2.86%
5 (5) 10 14.29%
6 (6) 29 41.43%
7. Muito Crtico (7) 22 31.43%
Sem resposta 2 2.86%

89
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

29
30

N 25 1. Pouco Critico (1)


22
u 2 (2)
A
m 20 3 (3)
l
e 4 (4)
u
r 15
n 5 (5)
o 10
o 10 6 (6)
s 7. Muito Crtico (7)
d
e 5 2 2 2 2 Sem resposta
1

0
Engenharia de Software

1.9 Outros. (Por favor, especificar)

Resposta Contagem Percentagem


Resposta 4 5.71%
Sem resposta 66 94.29%

2. Gosta de jogos de computador?

Resposta Contagem Percentagem


Sim (Y) 60 85.71%
No (N) 10 14.29%
Sem resposta 0 0.00%

14% 0%

Sim (Y)
No (N)
86% Sem resposta

90
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

3. Gostava de saber como funcionam (e so programados) os jogos?

Resposta Contagem Percentagem


Sim (Y) 63 90.00%
No (N) 5 7.14%
Sem resposta 2 2.86%

7% 3%

Sim (Y)
No (N)

90% Sem resposta

4. Gostaria de saber criar os seus prprios jogos?

Resposta Contagem Percentagem


Sim (Y) 57 81.43%
No (N) 9 12.86%
Sem resposta 4 5.71%

6%
13%

Sim (Y)
No (N)
81% Sem resposta

5. Considera que os jogos de computador so um factor de motivao para o


ingresso de alunos no ensino superior no ramo da informtica?

Resposta Contagem Percentagem

91
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Sim (Y) 53 75.71%


No (N) 17 24.29%
Sem resposta 0 0.00%

0%
24%

Sim (Y)
No (N)
76%
Sem resposta

6. Acredita que a motivao um factor essencial para o progresso do aluno no


ensino superior?
Resposta Contagem Percentagem
Sim (Y) 67 95.71%
No (N) 2 2.86%
Sem resposta 1 1.43%

3% 1%

Sim (Y)
No (N)

96% Sem resposta

7. O que poder motivar mais o progresso de um aluno?

Resposta Contagem Percentagem


Jogar (1) 7 10.00%
Desenvolver / Programar (2) 49 70.00%
Concepo / Histria do jogo (3) 11 15.71%
Sem resposta 3 4.29%

92
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

4%
Jogar (1)
16% 10%

Desenvolver / Programar
(2)
Concepo / Histria do
70% jogo (3)
Sem resposta

8. Concorda com uma lgica de aprendizagem baseada na programao de jogos


de computador no ensino superior?

Resposta Contagem Percentagem


Sim (Y) 47 67.14%
No (N) 15 21.43%
Sem resposta 8 11.43%

12%

21%
Sim (Y)
67% No (N)
Sem resposta

9. Uma vez feita a opo profissional, de programador de jogos, considera que esta
uma profisso com futuro?
Resposta Contagem Percentagem
Sim (Y) 53 75.71%
No (N) 8 11.43%
Sem resposta 9 12.86%

93
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

13%
11%

Sim (Y)
No (N)
76% Sem resposta

10. Sabendo que a programao de jogos utiliza as linguagens de programao,


considera adequada a utilizao de uma aprendizagem baseada na programao
de jogos para uma disciplina de programao?
Resposta Contagem Percentagem
Sim (Y) 51 72.86%
No (N) 13 18.57%
Sem resposta 6 8.57%

8%
19%
Sim (Y)
No (N)
73%
Sem resposta

11. Sabendo que a programao de jogos necessita de metodologias avanadas de


investigao e desenvolvimento poder ser usada para disciplinas de engenharia
de software ou analise de sistemas?
Resposta Contagem Percentagem
Sim (Y) 52 74.29%
No (N) 4 5.71%
Sem resposta 14 20.00%

94
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

20%

6%
Sim (Y)
No (N)
74%
Sem resposta

12. Em que nvel de educao considera que a programao de jogos, pode ser

inserida

Resposta Contagem Percentagem


Secundrio (10 12 anos de escolaridade) (a) 9 12.86%
Licenciatura (b) 28 40.00%
Mestrado (c) 28 40.00%
Sem resposta 5 7.14%

Secundrio (10 12
anos de escolaridade)
7% 13% (a)
Licenciatura (b)
40%
40%
Mestrado (c)

Sem resposta

13. Que nvel de importncia atribui necessidade de existirem cursos dedicados


programao de jogos

13.1 Novos ramos de desenvolvimento e novas licenciaturas

95
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

Resposta Contagem Percentagem


1. Pouco Critico (1) 2 2.86%
2 (2) 0 0.00%
3 (3) 5 7.14%
4 (4) 17 24.29%
5 (5) 18 25.71%
6 (6) 15 21.43%
7. Muito Crtico (7) 6 8.57%
Sem resposta 7 10.00%

18
16 1. Pouco Critico (1)
N
u 14 2 (2)
A
m 12 3 (3)
l
e 10 4 (4)
u
r
n 8 5 (5)
o
o 6 6 (6)
s 4
d 7. Muito Crtico (7)
e 2 Sem resposta
0
Novos ramos de desenvolvimento e novas licenciaturas

13.2 Criao de cursos superiores mais dedicados programao de jogos

Resposta Contagem Percentagem


1. Pouco Critico (1) 3 4.29%
2 (2) 2 2.86%
3 (3) 5 7.14%
4 (4) 12 17.14%
5 (5) 17 24.29%
6 (6) 16 22.86%
7. Muito Crtico (7) 9 12.86%
Sem resposta 6 8.57%

96
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

17
18 16
16 1. Pouco Critico (1)
N
u 14 12 2 (2)
A
m 12 3 (3)
l
e 9
u 10 4 (4)
r
n 8 6 5 (5)
o 5
o 6 6 (6)
s 3
d 4 2 7. Muito Crtico (7)
e 2 Sem resposta
0
Criao de cursos superiores mais dedicados programao de jogos

13.3 Promover a formao na rea

Resposta Contagem Percentagem


1. Pouco Critico (1) 1 1.43%
2 (2) 0 0.00%
3 (3) 0 0.00%
4 (4) 17 24.29%
5 (5) 14 20.00%
6 (6) 21 30.00%
7. Muito Crtico (7) 11 15.71%
Sem resposta 6 8.57%

25
21
1. Pouco Critico (1)
N
u 20 17 2 (2)
A
m 14 3 (3)
l 15
e 4 (4)
u 11
r
n 5 (5)
o 10
o 6 6 (6)
s
d 5 7. Muito Crtico (7)
e 1 Sem resposta
0 0
0
Promover a formao na rea

97
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

13.4 Aplicar esta tecnologia noutros ambientes e processos de negcio

Resposta Contagem Percentagem


1. Pouco Critico (1) 1 1.43%
2 (2) 0 0.00%
3 (3) 0 0.00%
4 (4) 12 17.14%
5 (5) 19 27.14%
6 (6) 18 25.71%
7. Muito Crtico (7) 13 18.57%
Sem resposta 7 10.00%

19
20 18
18 1. Pouco Critico (1)
N
u 16 2 (2)
A 13
m 14 12 3 (3)
l 12
e 4 (4)
u
r 10
n 7 5 (5)
o 8
o 6 (6)
6
s
d 4 7. Muito Crtico (7)
e 1
2 0 0 Sem resposta
0
Aplicar esta tecnologia noutros ambientes e processos de negcio

13.5 Desenvolver novas caractersticas e competncias para os estudantes

Resposta Contagem Percentagem


1. Pouco Critico (1) 1 1.43%
2 (2) 0 0.00%
3 (3) 0 0.00%
4 (4) 14 20.00%
5 (5) 19 27.14%
6 (6) 14 20.00%
7. Muito Crtico (7) 15 21.43%
Sem resposta 7 10.00%

98
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

19
20
18 1. Pouco Critico (1)
N 15
u 16 14 14 2 (2)
A 14
m 3 (3)
l 12
e 4 (4)
u
r 10
n 7 5 (5)
o 8
o 6 (6)
6
s
d 4 7. Muito Crtico (7)
e 1
2 0 0 Sem resposta
0
Desenvolver novas caractersticas e competncias para os estudantes

13.6 Inovar produtos, procedimentos e servios

Resposta Contagem Percentagem


1. Pouco Critico (1) 2 2.86%
2 (2) 0 0.00%
3 (3) 1 1.43%
4 (4) 10 14.29%
5 (5) 15 21.43%
6 (6) 15 21.43%
7. Muito Crtico (7) 19 27.14%
Sem resposta 8 11.43%

19
20
18 1. Pouco Critico (1)
N 15 15
u 16 2 (2)
A 14
m 3 (3)
l 12
e 10
u 4 (4)
r 10 8
n 5 (5)
o 8
o 6 (6)
6
s
d 4 2 7. Muito Crtico (7)
e 1
2 0 Sem resposta
0
Inovar produtos, procedimentos e servios

99
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

14. Quais so as linguagens de programao de jogos que conhece?

Resposta Contagem Percentagem


14.1 Linguagem C (1) 46 65.71%
14.2 Java (2) 55 78.57%
14.3 Linguagem C++ (3) 26 37.14%
14.4 Unreal Engine (4) 11 15.71%
14.5 Microsoft XNA (5) 33 47.14%
14.6 OpenGL (6) 31 44.29%

60 55

N 50 46
14.1 Linguagem C (1)
u
A 14.2 Java (2)
m 40 33
l 31 14.3 Linguagem C++ (3)
e
u 26
r 30 14.4 Unreal Engine (4)
n
o 14.5 Microsoft XNA (5)
o 20
s 11 14.6 OpenGL (6)
d
10
e

15. Quais so as maiores dificuldades para a definio de cursos superiores


dedicados programao de jogos?

15.1 Aspectos culturais

Resposta Contagem Percentagem


1. Muito difcil (1) 5 7.14%
2 (2) 6 8.57%
3 (3) 9 12.86%
4 (4) 17 24.29%
5 (5) 11 15.71%
6 (6) 4 5.71%
7. Nada difcil (7) 6 8.57%
Sem resposta 12 17.14%

100
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

18 17

16

14 1. Muito difcil (1)


12 2 (2)
12 11
3 (3)
10 9
4 (4)
8
6 6 5 (5)
6 5 6 (6)
4
4 7. Nada difcil (7)

2 Sem resposta

0
Aspectos culturais

15.2 Problemas de comunicao e exposio dos cursos

Resposta Contagem Percentagem


1. Muito difcil (1) 3 4.29%
2 (2) 7 10.00%
3 (3) 9 12.86%
4 (4) 17 24.29%
5 (5) 12 17.14%
6 (6) 8 11.43%
7. Nada difcil (7) 4 5.71%
Sem resposta 10 14.29%

18 17
16
1. Muito difcil (1)
14
12 2 (2)
12
10 3 (3)
10 9
8 4 (4)
8 7
5 (5)
6
4 6 (6)
4 3
7. Nada difcil (7)
2
Sem resposta
0
Problemas de comunicao e exposio dos cursos

101
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

15.3 Aceitao do publico em geral

Resposta Contagem Percentagem


1. Muito difcil (1) 8 11.43%
2 (2) 3 4.29%
3 (3) 12 17.14%
4 (4) 16 22.86%
5 (5) 12 17.14%
6 (6) 7 10.00%
7. Nada difcil (7) 4 5.71%
Sem resposta 8 11.43%

18
16
16
1. Muito difcil (1)
14
12 12 2 (2)
12
3 (3)
10
8 8 4 (4)
8 7
5 (5)
6
4 6 (6)
4 3
7. Nada difcil (7)
2
Sem resposta
0
Aceitao do publico em geral

15.4 Carncia de recursos humanos e competncias na rea

Resposta Contagem Percentagem


1. Muito difcil (1) 5 7.14%
2 (2) 11 15.71%
3 (3) 14 20.00%
4 (4) 16 22.86%
5 (5) 9 12.86%
6 (6) 5 7.14%
7. Nada difcil (7) 2 2.86%
Sem resposta 8 11.43%

102
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

18
16
16
14
14 1. Muito difcil (1)
12 11 2 (2)
3 (3)
10 9
8 4 (4)
8 5 (5)
6 5 5 6 (6)
7. Nada difcil (7)
4
2 Sem resposta
2

0
Carncia de recursos humanos e competncias na rea

15.5 Infra-estruturas tecnolgicas inadequadas

Resposta Contagem Percentagem


1. Muito difcil (1) 6 8.57%
2 (2) 7 10.00%
3 (3) 13 18.57%
4 (4) 13 18.57%
5 (5) 10 14.29%
6 (6) 6 8.57%
7. Nada difcil (7) 6 8.57%
Sem resposta 9 12.86%

14

12
1. Muito difcil (1)
10 2 (2)
3 (3)
8
4 (4)
6 5 (5)

4 6 (6)
7. Nada difcil (7)
2
Sem resposta
0
Infra-estruturas tecnolgicas inadequadas

103
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

15.6 Carncia de recursos financeiros

Resposta Contagem Percentagem


1. Muito difcil (1) 8 11.43%
2 (2) 10 14.29%
3 (3) 9 12.86%
4 (4) 13 18.57%
5 (5) 14 20.00%
6 (6) 3 4.29%
7. Nada difcil (7) 5 7.14%
Sem resposta 8 11.43%

16
14
14 13
1. Muito difcil (1)
12
2 (2)
10
10 9 3 (3)
8 8
8 4 (4)
5 (5)
6 5
6 (6)
4 3
7. Nada difcil (7)
2 Sem resposta
0
Carncia de recursos financeiros

15.7 Tempo disponibilizado pelas partes envolvidas

Resposta Contagem Percentagem


1. Muito difcil (1) 8 11.43%
2 (2) 7 10.00%
3 (3) 15 21.43%
4 (4) 18 25.71%
5 (5) 10 14.29%
6 (6) 2 2.86%
7. Nada difcil (7) 3 4.29%
Sem resposta 7 10.00%

104
Modelo de Engenharia de Software para o Desenvolvimento de Jogos e
Simulaes Interactivas

20
18
16 1. Muito difcil (1)
14 2 (2)
12 3 (3)
10 4 (4)

8 5 (5)

6 6 (6)
7. Nada difcil (7)
4
Sem resposta
2
0
Tempo disponibilizado pelas partes envolvidas

15.8 Outros. (Por favor, especificar)

Resposta Contagem Percentagem


Resposta 2 2.86%
Sem resposta 68 97.14%

105