O objetivo do trabalho
é não só avaliar se o aluno assimilou a matéria, mas também estimular a
criatividade do aluno. Por esta razão, o trabalho não será "fechado" mas será
especificado em parte também pelo próprio aluno. Os trabalhos são individuais
e diferentes.
O aluno poderá
escolher um dos dois temas descritos abaixo ou sugerir um terceiro tema. Cada
aluno deverá entregar por escrito uma mini-especificação do trabalho que irá
implementar.
Num vídeo game típico o
jogador tem que enfrentar e destruir adversários, usualmente empregando algum
tipo de arma capaz de disparar projéteis. Muitas variações são possíveis sobre
este tema, desde cenários simples (e.g. Space
Invaders) até jogos que se desenrolam em ambientes complexos e os oponentes
são entidades articuladas tais como robôs, animais ou homens (e.g. Quake). Para este curso, esperamos
apenas a implementação de algo simples como Space
Invaders em 3D.
Sugestão: O usuário comanda uma estação de tiro com um canhão capaz de disparar
um projétil por vez. O canhão está posicionado de tal forma a cobrir um campo
que está sendo invadido por tropas inimigas. Cada soldado inimigo tem como
objetivo atingir sua estação de tiro avançando (lenta mas inexoravelmente) pelo
campo. Obviamente, se algum soldado atingir seu objetivo, o jogador perde.
Uma outra categoria de
jogos de computador são os chamados "quebra-cabeças" onde, ao invés de destruir
inimigos, o objetivo é achar a correta configuração de algum artefato. As
variações são inúmeras sendo que o principal ponto de diferenciação é o
artefato que se manipula. Existem jogos que envolvem baralhos (paciência), figuras recortadas em
pedaços irregulares (os quebra-cabeças propriamente ditos ou, em inglês, jigsaw puzzles) e outros.
Sugestão: Simular um (ou mais) dos quebra-cabeças inspirados no Cubo Mágico de Erno Rubik. A aplicação
deverá permitir ao jogador manipular o artefato tanto para poder examiná-lo de
qualquer ângulo como também para mover as peças.
Critério de Avaliação
Em geral, um projeto
entregue pontualmente e que esteja correto vale conceito A. Considera-se
correto um projeto que resulta numa aplicação "jogável" e no qual todas as funcionalidades
especificadas foram implementadas. Pontos são tirados no caso de:
(a) Impontualidade;
(b) Erros de execução;
(c) Projetos triviais;
(d) Visualização medíocre.