MAC0499 - Trabalho de Formatura Supervisionado

Victor David Santos

Proposta de Trabalho

Introdução

O trabalho de formatura aqui exposto tem como objetivo o desenvolvimento de dois "produtos", a saber:

  • Um framework para desenvolvimento de jogos de computador, não necessariamente completo, mas fácil de usar e que ofereça facilidades para a programação de jogos de alguns tipos específicos.
  • Um jogo educativo, desenvolvido utilizando o framework supracitado. O público-alvo deste jogo seriam estudantes dos primeiros anos do ensino fundamental, uma vez que os conhecimentos abordados seriam principalmente lógica, matemática básica e língua portuguesa.

A linguagem de programação utilizada será Ruby, uma linguagem de propósito geral, fortemente orientada a objetos e que atende bem ao propósito do trabalho. Para esta linguagem está disponível a biblioteca Gosu, que auxilia nas funcionalidades básicas para criação de jogos (gráficos, som, dispositivos de entrada, etc.), e que será usada como base para o framework.

Motivação e Justificativa

A principal motivação para a escolha deste tema para o trabalho de formatura foi o interesse do aluno por desenvolvimento de jogos eletrônicos. Porém, um jogo comum tem pouco a oferecer para a sociedade, embora já seja um projeto que permita a aplicação de diversos conhecimentos adquiridos ao longo do curso de Ciência da Computação.

Ao se pensar e discutir com diversas pessoas sobre como um jogo poderia ter contribuição social, o tema da educação auxiliada por jogos foi recorrente. De fato, este é também um tema muito interessante e que está relacionado a uma das principais bases da sociedade, a Educação.

A partir daí, foram realizadas várias pesquisas para analisar a viabilidade do projeto. Todos os resultados de pesquisas foram fatores encorajadores do desenvolvimento do tema. Entre outras informações levantadas, pode-se destacar:

  • Há uma concordância geral entre educadores e profissionais da computação de que os jogos são de fato efetivos como complementos aos métodos tradicionais de educação (ver referências no Relatório de Estudo Preliminar).
  • Há pouco material nesse sentido disponibilizado em língua portuguesa do Brasil. Não há participação de grandes empresas, em geral, na criação de jogos educacionais.

Assim, um dos propósitos deste trabalho é disponibilizar para a comunidade um jogo educativo de qualidade, em português do Brasil, e com código completamente aberto. Além disso, também será disponibilizado o framework, constituindo uma contribuição menor, mas ainda válida para a comunidade de desenvolvedores.

Componentes do Trabalho

O trabalho de formatura contemplará dois principais componentes, como citado anteriormente, mas também há uma terceira meta, opcional, que será desenvolvida se o cronograma puder ser acompanhado com precisão. Segue, então, um detalhamento das três metas.

1. Framework para Jogos

O framework deverá oferecer facilidades na programação de jogos em Ruby, mas não há planos para que ofereça suporte completo para desenvolvimento de todos os tipos de jogos, ou para desenvolvimento em outras linguagens.

Em poucas palavras, o framework deverá encurtar o trabalho do programador em tarefas relacionadas aos seguintes aspectos de um jogo:

  • Gerenciamento de recursos (imagem, som, etc.)
  • Manipulação da entrada (teclado, mouse, etc.)
  • Interface de usuário (texto, botões, caixas de texto, etc.)
  • Movimento e checagem de colisão
  • Objetos animados

Toda a parte gráfica, assim como os algoritmos de movimento e colisão, serão restritos a duas dimensões.

A parte de gerenciamento de recursos imporá a organização dos arquivos do jogo numa certa estrutura de diretórios. Porém, essa estrutura terá um certo nível de flexibilidade e estará bem descrita como parte da documentação da biblioteca.

Atualmente, boa parte destas funcionalidades já está desenvolvida, faltando alguns ajustes finos e a criação da documentação.

2. Jogo educativo

A ideia é criar um jogo de aventura, isto é, o jogador terá interação constante com o personagem, controlando seus movimentos por um cenário. A movimentação em si não deverá constituir obstáculo para o usuário, uma vez que os desafios do jogo deverão ser as partes em que algum tipo de conhecimento é cobrado. Porém, o cenário e personagem interativos constituem um fator atrativo e estimulante para o jogador. Também no sentido de envolver mais o jogador, aumentando seu interesse, o jogo terá uma trama, um enredo que conta a história dos personagens e o propósito da "aventura".

A jogabilidade deve ser simples, de modo que as ações do personagem serão limitadas às seguintes:

  • Andar para esquerda ou direita
  • Pular ou subir escadas para alcançar plataformas mais elevadas
  • Conversar com outros personagens do cenário. Enquanto no diálogo, o jogador poderá ter de responder a perguntas.
  • Pegar itens do cenário
  • Utilizar itens previamente pegos no cenário

A aventura será dividida em "cenas" ou "capítulos", e em geral cada capítulo abordará uma área do conhecimento com maior predominância. Ao iniciar o jogo, o jogador poderá escolher qual ou quais cenas ele quer jogar.

O jogo também deverá salvar o progresso do estudante, de modo que ele possa continuar de onde parou após fechar o programa. Além disso, também será armazenado um histórico das pontuações do usuário ao longo de diversas jogadas, permitindo a visualização de estatísticas sobre o progresso no aprendizado do estudante.

Atualmente, o jogo se encontra em suas fases iniciais de desenvolvimento, tendo sido criadas as primeiras artes. Também foi estabelecido o título provisório de "Aventura do Saber".

Marcus e Milena

A arte do jogo será simples, mas o objetivo é que seja agradável ao público infantil.

Cenário

3. Website

Se o tempo permitir, será desenvolvido um site para divulgação, disponibilização de downloads e de espaço para envio de dúvidas, sugestões ou críticas sobre o jogo.

A ideia é ter algum retorno sobre a repercussão do jogo, que tipo de usuários estão baixando e em que localidades. No formulário de dúvidas/sugestões/críticas, o usuário deverá preencher campos como nome, idade, se é um educador ou estudante, dar uma avaliação para o jogo e poderá preencher outras observações.

Cronograma

Segue abaixo um cronograma resumido. Um maior detalhamento das tarefas só será possível com o avanço do desenvolvimento.

  • Até 30/06: finalização dos ajustes no framework (estabilização com o uso no jogo)
  • Entre 01/07 e 31/07: criação da documentação do framework
  • Até 15/07: criação da arquitetura principal do jogo
  • Entre 16/07 e 31/08: criação de arte gráfica e som
  • Entre 01/09 e 31/10: projeto das fases do jogo
  • Até 30/11: desenvolvimento do website
Produzido por Victor David Santos - victordavidsantos@gmail.com